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

View File

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

View File

@ -33,9 +33,10 @@ import com.silverwrist.venice.security.*;
import com.silverwrist.venice.svc.*; import com.silverwrist.venice.svc.*;
import com.silverwrist.venice.svc.internal.GlobalSite; import com.silverwrist.venice.svc.internal.GlobalSite;
import com.silverwrist.venice.util.MailSend; import com.silverwrist.venice.util.MailSend;
import com.silverwrist.venice.util.ServiceProvider;
import com.silverwrist.venice.util.XMLLoader; 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. * Internal class storing side box information.
@ -527,7 +528,7 @@ public class VeniceEngineImpl implements VeniceEngine, EngineBackend
services_config = app_root + services_config; services_config = app_root + services_config;
// Create the global site. // Create the global site.
globalsite = new GlobalSiteImpl(this,root,app_root); globalsite = new GlobalSiteImpl(this,this,root,app_root);
// Get the <upload/> section. // Get the <upload/> section.
sect = loader.configGetSubSection(root_h,"upload"); sect = loader.configGetSubSection(root_h,"upload");
@ -1337,15 +1338,53 @@ public class VeniceEngineImpl implements VeniceEngine, EngineBackend
} // end useCategories } // 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 public CommunityData getCommunityDataObject(int cid) throws DataException
{ {

View File

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

View File

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