You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2005/01/31 12:52:12 UTC
svn commit: r149243 - in cocoon/trunk/src/blocks/hsqldb:
WEB-INF/xconf/cocoon-hsqldb.xconf
java/org/apache/cocoon/components/hsqldb/ServerImpl.java
Author: reinhard
Date: Mon Jan 31 03:52:09 2005
New Revision: 149243
URL: http://svn.apache.org/viewcvs?view=rev&rev=149243
Log:
make path to HSQLDB and name of it parameterizable
Modified:
cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf
cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/ServerImpl.java
Modified: cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf?view=diff&r1=149242&r2=149243
==============================================================================
--- cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf (original)
+++ cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf Mon Jan 31 03:52:09 2005
@@ -32,6 +32,8 @@
| port : number port where the server is listening
| silent : true/false display all queries
| trace : true/false display JDBC trace messages
+ | name : string name of the HSQL-DB
+ | path : string path to the database - context-protocol is resolved
+-->
<hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl"
logger="core.hsqldb-server"
@@ -40,6 +42,8 @@
<parameter name="silent" value="true"/>
<parameter name="trace" value="false"/>
<parameter name="thread-pool-name" value="daemon"/>
+ <parameter name="name" value="cocoondb"/>
+ <parameter name="path" value="context://WEB-INF/db"/>
</hsqldb-server>
</components>
Modified: cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/ServerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/ServerImpl.java?view=diff&r1=149242&r2=149243
==============================================================================
--- cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/ServerImpl.java (original)
+++ cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/ServerImpl.java Mon Jan 31 03:52:09 2005
@@ -55,6 +55,16 @@
Serviceable,
Startable {
+ private static final String DEFAULT_TRACE = "false";
+ private static final String DEFAULT_SILENT = "true";
+ private static final String DEFAULT_PORT = "9002";
+ private static final String CONTEXT_PROTOCOL = "context:/";
+ private static final String DEFAULT_DB_NAME = "cocoondb";
+ private static final String DEFAULT_DB_PATH = "context://WEB-INF/db";
+
+ /** Cocoon context **/
+ private org.apache.cocoon.environment.Context cocoonContext;
+
/** Port which HSQLDB server will listen to */
private String port;
@@ -69,7 +79,7 @@
/** The {@link ServiceManager} instance */
private ServiceManager m_serviceManager;
-
+
/**
* Initialize the ServerImpl.
* A few options can be used :
@@ -83,35 +93,34 @@
this.getLogger().debug("Parameterize ServerImpl");
arguments[0] = "-port";
- arguments[1] = this.port = params.getParameter("port", "9002");
+ arguments[1] = this.port = params.getParameter("port", DEFAULT_PORT);
arguments[2] = "-silent";
- arguments[3] = params.getParameter("silent", "true");
+ arguments[3] = params.getParameter("silent", DEFAULT_SILENT);
arguments[4] = "-trace";
- arguments[5] = params.getParameter("trace", "false");
+ arguments[5] = params.getParameter("trace", DEFAULT_TRACE);
arguments[6] = "-no_system_exit";
- arguments[7] = "true";
+ arguments[7] = DEFAULT_SILENT;
if (this.getLogger().isDebugEnabled()) {
this.getLogger().debug("Configure ServerImpl with port: " + arguments[1]
+ ", silent: " + arguments[3]
+ ", trace: " +arguments[5]);
}
m_daemonThreadPoolName = params.getParameter( "thread-pool-name", m_daemonThreadPoolName );
- }
- /** Contextualize this class */
- public void contextualize(Context context) throws ContextException {
- org.apache.cocoon.environment.Context ctx =
- (org.apache.cocoon.environment.Context) context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
+ String dbPath = params.getParameter("path", DEFAULT_DB_PATH);
+
// test if we are running inside a WAR file
- final String dbPath = ctx.getRealPath("/WEB-INF/db");
+ if(dbPath.startsWith(ServerImpl.CONTEXT_PROTOCOL)) {
+ dbPath = this.cocoonContext.getRealPath(dbPath.substring(ServerImpl.CONTEXT_PROTOCOL.length()));
+ }
if (dbPath == null) {
- throw new ContextException("The hsqldb cannot be used inside a WAR file.");
- }
-
+ throw new RuntimeException("The hsqldb cannot be used inside a WAR file.");
+ }
+
try {
arguments[8] = "-database.0";
arguments[9] = new File(dbPath).getCanonicalPath();
- arguments[9] += File.separator + "cocoondb";
+ arguments[9] += File.separator + params.getParameter("name", DEFAULT_DB_NAME);
if (getLogger().isDebugEnabled()) {
getLogger().debug("database is " + arguments[9]);
}
@@ -119,7 +128,13 @@
getLogger().error("MalformedURLException - Could not get database directory ", e);
} catch (IOException e) {
getLogger().error("IOException - Could not get database directory ", e);
- }
+ }
+
+ }
+
+ /** Contextualize this class */
+ public void contextualize(Context context) throws ContextException {
+ cocoonContext = (org.apache.cocoon.environment.Context) context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
}
/**
* @param serviceManager The <@link ServiceManager} instance