dims 01/09/07 07:30:10
Modified: . database.properties
src/org/apache/cocoon cocoon.roles
webapp cocoon.xconf
Added: lib hsqldb-1.61.jar
src/org/apache/cocoon/components/hsqldb ServerImpl.java
Removed: lib hsqldb.jar
Log:
Ability to run HSQLDB Server as a Cocoon Component. Now we can run Cocoon samples
out of the box with relying on the @install.war@ filter in database.properties file.
Revision Changes Path
1.2 +1 -1 xml-cocoon2/database.properties
Index: database.properties
===================================================================
RCS file: /home/cvs/xml-cocoon2/database.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- database.properties 2001/05/09 20:49:26 1.1
+++ database.properties 2001/09/07 14:30:09 1.2
@@ -2,7 +2,7 @@
database-driver=org.hsqldb.jdbcDriver
# Specify the URL for the Database
-database-url=jdbc:hsqldb:${install.war}/cocoon/WEB-INF/db/cocoondb
+database-url=jdbc:hsqldb:hsql://localhost:9002
# Specify the user id
database-user=sa
1.1 xml-cocoon2/lib/hsqldb-1.61.jar
<<Binary file>>
1.21 +4 -0 xml-cocoon2/src/org/apache/cocoon/cocoon.roles
Index: cocoon.roles
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/cocoon.roles,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- cocoon.roles 2001/09/05 11:56:26 1.20
+++ cocoon.roles 2001/09/07 14:30:10 1.21
@@ -96,6 +96,10 @@
shorthand="store-janitor"
default-class="org.apache.cocoon.components.store.StoreJanitorImpl"/>
+ <role name="org.apache.cocoon.components.hsqldb.Server"
+ shorthand="hsqldb-server"
+ default-class="org.apache.cocoon.components.hsqldb.ServerImpl"/>
+
<role name="org.apache.cocoon.components.profiler.Profiler"
shorthand="profiler"
default-class="org.apache.cocoon.components.profiler.SimpleProfiler"/>
1.1
xml-cocoon2/src/org/apache/cocoon/components/hsqldb/ServerImpl.java
Index: ServerImpl.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.cocoon.components.hsqldb;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.Constants;
import org.hsqldb.Server;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
/**
* This class runs an instance of HSQLDB Server.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
*/
public class ServerImpl extends AbstractLoggable implements Configurable,
Contextualizable,
ThreadSafe,
Runnable {
/** Arguments for running the server */
private String arguments[] = new String[8];
/** Check if the server has already been started */
private boolean started = false;
/**
* Initialize the ServerImpl.
* A few options can be used :
* <UL>
* <LI>port = port where the server is listening</LI>
* <LI>silent = display all queries</LI>
* <LI>trace = print JDBC trace messages</LI>
* </UL>
*/
public void configure(Configuration conf) throws ConfigurationException {
this.getLogger().debug("Configure ServerImpl");
Parameters params = Parameters.fromConfiguration(conf);
arguments[0] = "-port";
arguments[1] = params.getParameter("port","9002");
arguments[2] = "-silent";
arguments[3] = params.getParameter("silent","true");
arguments[4] = "-trace";
arguments[5] = params.getParameter("trace","false");
Thread server = new Thread(this);
this.getLogger().debug("Intializing hsqldb server thread");
server.setPriority(Thread.currentThread().getPriority());
server.setDaemon(true);
server.setName("hsqldb server");
server.start();
}
/** 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);
try {
arguments[6] = "-database";
arguments[7] = new File(ctx.getRealPath("/WEB-INF/db")).getCanonicalPath();
arguments[7] += File.separator + "cocoondb";
getLogger().debug("database is " + arguments[7]);
} catch (MalformedURLException e) {
getLogger().error("MalformedURLException - Could not get database directory
", e);
} catch (IOException e) {
getLogger().error("IOException - Could not get database directory ", e);
}
}
/** Run the server */
public void run() {
if(!started) {
started = true;
getLogger().debug("HSQLDB Server arguments are as follows:");
for(int i=0;i<8;i++)
getLogger().debug(i + " : " + arguments[i]);
Server.main(arguments);
}
}
}
1.32 +12 -0 xml-cocoon2/webapp/cocoon.xconf
Index: cocoon.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/cocoon.xconf,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- cocoon.xconf 2001/09/05 11:56:27 1.31
+++ cocoon.xconf 2001/09/07 14:30:10 1.32
@@ -18,6 +18,18 @@
<parser class="org.apache.cocoon.components.parser.XercesParser"/>
-->
+ <!-- HSQLDB Server for samples. Comment this section out if you don't care about
the samples.
+ port : number port where the server is listening
+ silent : true/false display all queries
+ trace : true/false display JDBC trace messages
+ -->
+ <hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl"
+ pool-max="1" pool-min="1">
+ <parameter name="port" value="9002"/>
+ <parameter name="silent" value="true"/>
+ <parameter name="trace" value="false"/>
+ </hsqldb-server>
+
<!-- Storing:
maxobjects: Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]