minor updates to AdminOptions, removed getSelf() from EngineBackend

This commit is contained in:
Eric J. Bowersox 2002-06-08 23:26:57 +00:00
parent 39944e49cd
commit 9a7d507e13
5 changed files with 64 additions and 19 deletions

View File

@ -26,6 +26,7 @@ import com.silverwrist.venice.db.*;
import com.silverwrist.venice.except.*;
import com.silverwrist.venice.security.AuditRecord;
import com.silverwrist.venice.security.Role;
import com.silverwrist.venice.svc.internal.GlobalSite;
class AdminOperationsImpl implements AdminOperations
{
@ -41,6 +42,7 @@ class AdminOperationsImpl implements AdminOperations
*--------------------------------------------------------------------------------
*/
private GlobalSite globalsite; // global site
private EnvUser env; // the execution environment
/*--------------------------------------------------------------------------------
@ -48,8 +50,9 @@ class AdminOperationsImpl implements AdminOperations
*--------------------------------------------------------------------------------
*/
AdminOperationsImpl(EnvUser env)
AdminOperationsImpl(GlobalSite globalsite, EnvUser env)
{
this.globalsite = globalsite;
this.env = env;
} // end constructor
@ -61,7 +64,8 @@ class AdminOperationsImpl implements AdminOperations
public SecurityInfo getSecurityInfo()
{
return env.getEngine().getSelf().getSecurityInfo();
VeniceEngine engine = (VeniceEngine)(globalsite.queryService(VeniceEngine.class));
return engine.getSecurityInfo();
} // end getSecurityInfo
@ -81,7 +85,7 @@ class AdminOperationsImpl implements AdminOperations
try
{ // retrieve a connection from the data pool and get the audit records
conn = env.getConnection();
conn = globalsite.getConnection(null);
rc = AuditRecord.getAuditRecords(conn,-1,offset,count);
} // end try
@ -108,7 +112,7 @@ class AdminOperationsImpl implements AdminOperations
try
{ // retrieve a connection from the data pool and get the audit records
conn = env.getConnection();
conn = globalsite.getConnection(null);
rc = AuditRecord.getAuditRecordCount(conn,-1);
} // end try
@ -181,7 +185,7 @@ class AdminOperationsImpl implements AdminOperations
if (auto_join)
{ // Need to create a normal user context here for just a minute to autojoin the communities.
UserContextImpl rc = new UserContextImpl(env.getGlobalSite(),env);
UserContextImpl rc = new UserContextImpl(globalsite,env);
rc.loadNewUser("0.0.0.0",rnu.getUserID(),base_role.getLevel(),username,0,rnu.getCreationDate(),
rnu.getCreationDate());
rc.autoJoinCommunities();

View File

@ -1130,7 +1130,7 @@ class UserContextImpl implements UserContext, ServiceProvider, PropertyProvider
public AdminOperations getAdminInterface() throws AccessError
{
env.testPermission(EnvUser.PERM_SYSADMINACCESS,"You are not permitted to administer the server.");
return new AdminOperationsImpl(env);
return new AdminOperationsImpl(globalsite,env);
} // end getAdminInterface

View File

@ -33,9 +33,10 @@ import com.silverwrist.venice.security.*;
import com.silverwrist.venice.svc.*;
import com.silverwrist.venice.svc.internal.GlobalSite;
import com.silverwrist.venice.util.MailSend;
import com.silverwrist.venice.util.ServiceProvider;
import com.silverwrist.venice.util.XMLLoader;
public class VeniceEngineImpl implements VeniceEngine, EngineBackend
public class VeniceEngineImpl implements VeniceEngine, ServiceProvider, EngineBackend
{
/*--------------------------------------------------------------------------------
* Internal class storing side box information.
@ -527,7 +528,7 @@ public class VeniceEngineImpl implements VeniceEngine, EngineBackend
services_config = app_root + services_config;
// Create the global site.
globalsite = new GlobalSiteImpl(this,root,app_root);
globalsite = new GlobalSiteImpl(this,this,root,app_root);
// Get the <upload/> section.
sect = loader.configGetSubSection(root_h,"upload");
@ -1337,15 +1338,53 @@ public class VeniceEngineImpl implements VeniceEngine, EngineBackend
} // end useCategories
/*--------------------------------------------------------------------------------
* Implementations from interface EngineBackend
* Implementations from interface ServiceProvider
*--------------------------------------------------------------------------------
*/
public VeniceEngine getSelf()
/**
* Queries this object for a specified service.
*
* @param klass The class of the object that should be returned as a service.
* @return A service object. The service object is guaranteed to be of the class
* specified by <CODE>klass</CODE>; that is, if <CODE>queryService(klass)</CODE>
* yields some object <CODE>x</CODE>, then the expression <CODE>klass.isInstance(x)</CODE>
* is true.
* @exception com.silverwrist.venice.except.NoSuchServiceException If no service is available in
* the specified class.
*/
public Object queryService(Class klass)
{
return this;
if (klass==VeniceEngine.class)
return ((VeniceEngine)this);
if (klass==EngineBackend.class)
return ((EngineBackend)this);
throw new NoSuchServiceException("VeniceEngine",klass);
} // end getSelf
} // end queryService
/**
* Queries this object for a specified service.
*
* @param klass The class of the object that should be returned as a service.
* @param serviceid ID for the service to be requested, to further discriminate between requests.
* @return A service object. The service object is guaranteed to be of the class
* specified by <CODE>klass</CODE>; that is, if <CODE>queryService(klass)</CODE>
* yields some object <CODE>x</CODE>, then the expression <CODE>klass.isInstance(x)</CODE>
* is true.
* @exception com.silverwrist.venice.except.NoSuchServiceException If no service is available in
* the specified class.
*/
public Object queryService(Class klass, String serviceid)
{
return queryService(klass); // defer to no service ID
} // end queryService
/*--------------------------------------------------------------------------------
* Implementations from interface EngineBackend
*--------------------------------------------------------------------------------
*/
public CommunityData getCommunityDataObject(int cid) throws DataException
{

View File

@ -46,8 +46,6 @@ public interface EngineBackend
// role parameter indexes
public static final int ROLEP_CREATECOMMUNITY = 0;
public abstract VeniceEngine getSelf();
public abstract CommunityData getCommunityDataObject(int cid) throws DataException;
public abstract void detachCommunityDataObject(int cid);

View File

@ -22,6 +22,7 @@ import java.util.*;
import org.apache.log4j.*;
import org.w3c.dom.*;
import com.silverwrist.util.*;
import com.silverwrist.venice.core.VeniceEngine;
import com.silverwrist.venice.db.*;
import com.silverwrist.venice.except.*;
import com.silverwrist.venice.htmlcheck.*;
@ -48,7 +49,7 @@ public class GlobalSiteImpl implements GlobalSite
*--------------------------------------------------------------------------------
*/
private EngineBackend engine = null; // the engine back end
private ServiceProvider engine_svc = null; // ServiceProvider for the VeniceEngine
private DataPool datapool = null; // the database pool
private Properties email_props = null; // email properties
private javax.mail.Session mailsession = null; // email session object
@ -61,9 +62,10 @@ public class GlobalSiteImpl implements GlobalSite
*--------------------------------------------------------------------------------
*/
public GlobalSiteImpl(EngineBackend engine, Element config, String application_root) throws ConfigException
public GlobalSiteImpl(ServiceProvider engine_svc, Element config, String application_root)
throws ConfigException
{
this.engine = engine;
this.engine_svc = engine_svc;
XMLLoader loader = XMLLoader.get();
// Get the <database/> section.
@ -387,6 +389,8 @@ public class GlobalSiteImpl implements GlobalSite
return sm_env;
if (klass==SecurityMonitor.class)
return sm_env.getMonitor("Global");
if (klass==VeniceEngine.class)
return engine_svc.queryService(klass);
throw new NoSuchServiceException("GlobalSite",klass);
} // end queryService
@ -435,7 +439,7 @@ public class GlobalSiteImpl implements GlobalSite
} // end if
return this.queryService(klass);
return queryService(klass);
} // end queryService
@ -464,7 +468,7 @@ public class GlobalSiteImpl implements GlobalSite
public void shutdown()
{
engine = null;
engine_svc = null;
if (datapool!=null)
datapool.closeAllConnections();
datapool = null;