You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2002/03/04 14:17:37 UTC
cvs commit: jakarta-avalon-apps/demo/src/xdocs demo-helloworld.xml demo-soaphelloworld.xml
hammant 02/03/04 05:17:37
Modified: demo build.xml
demo/src/conf avalon-altrmidemo-assembly.xml
avalon-altrmidemo-config.xml
avalon-demo-assembly.xml
avalon-gluedemo-assembly.xml
avalon-rmidemo-assembly.xml
avalon-rmidemo-config.xml
demo/src/manifest altrmihelloworld-demo.mf
helloworld-demo.mf rmihelloworld-demo.mf
soaphelloworld-demo.mf
demo/src/xdocs demo-helloworld.xml demo-soaphelloworld.xml
Added: demo/src/java/org/apache/avalon/apps/demos/altrmihelloworldserver
AltrmiHelloWorldServer.java
AltrmiHelloWorldServerImpl.java
AltrmiHelloWorldServerImpl.xinfo
AltrmiHelloWorldServerTester.java
demo/src/java/org/apache/avalon/apps/demos/helloworldserver
HelloWorldHandler.java HelloWorldServer.java
HelloWorldServerImpl.java
HelloWorldServerImpl.xinfo
demo/src/java/org/apache/avalon/apps/demos/rmihelloworldserver
RMIHelloWorldClient.java RMIHelloWorldServer.java
RMIHelloWorldServerImpl.java
RMIHelloWorldServerImpl.xinfo
demo/src/java/org/apache/avalon/apps/demos/soaphelloworldserver
SOAPHelloWorldServer.java
SOAPHelloWorldServerImpl.java
SOAPHelloWorldServerImpl.xinfo
SOAPHelloWorldServerTester.java
Removed: demo readme.txt
demo/src/java/org/apache/avalon/cornerstone/demos/altrmihelloworldserver
AltrmiHelloWorldServer.java
AltrmiHelloWorldServerImpl.java
AltrmiHelloWorldServerImpl.xinfo
AltrmiHelloWorldServerTester.java
demo/src/java/org/apache/avalon/cornerstone/demos/helloworldserver
HelloWorldHandler.java HelloWorldServer.java
HelloWorldServerImpl.java
HelloWorldServerImpl.xinfo
demo/src/java/org/apache/avalon/cornerstone/demos/rmihelloworldserver
RMIHelloWorldClient.java RMIHelloWorldServer.java
RMIHelloWorldServerImpl.java
RMIHelloWorldServerImpl.xinfo
demo/src/java/org/apache/avalon/cornerstone/demos/soaphelloworldserver
SOAPHelloWorldServer.java
SOAPHelloWorldServerImpl.java
SOAPHelloWorldServerImpl.xinfo
SOAPHelloWorldServerTester.java
Log:
rename from cornerstone package to apps.
Revision Changes Path
1.41 +10 -10 jakarta-avalon-apps/demo/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/build.xml,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- build.xml 28 Feb 2002 20:48:22 -0000 1.40
+++ build.xml 4 Mar 2002 13:17:35 -0000 1.41
@@ -120,19 +120,19 @@
deprecation="${build.deprecation}">
<classpath refid="project.class.path" />
- <exclude name="org/apache/avalon/cornerstone/demos/soaphelloworldserver/**.java"
+ <exclude name="org/apache/avalon/apps/demos/soaphelloworldserver/**.java"
unless="glue.present" />
</javac>
<rmic base="${build.classes}"
- classname="org.apache.avalon.cornerstone.demos.rmihelloworldserver.RMIHelloWorldServerImpl"
+ classname="org.apache.avalon.apps.demos.rmihelloworldserver.RMIHelloWorldServerImpl"
stubVersion="1.2">
<classpath refid="project.class.path"/>
</rmic>
<altrmiinterfaces genname="helloworld" srcgendir="build/genjava"
- classesorinterfaces="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServer"
+ classesorinterfaces="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"
classgendir="build/genclasses">
<classpath>
<pathelement location="lib/commons-altrmi-client-impl.jar"/>
@@ -159,25 +159,25 @@
<jar jarfile="${build.lib}/demo-helloworld.jar"
basedir="${build.classes}"
manifest="${manifest.dir}/helloworld-demo.mf">
- <include name="org/apache/avalon/cornerstone/demos/helloworldserver/*"/>
+ <include name="org/apache/avalon/apps/demos/helloworldserver/*"/>
</jar>
<jar jarfile="${build.lib}/demo-soaphelloworld.jar"
basedir="${build.classes}"
manifest="${manifest.dir}/soaphelloworld-demo.mf">
- <include name="org/apache/avalon/cornerstone/demos/soaphelloworldserver/*"/>
+ <include name="org/apache/avalon/apps/demos/soaphelloworldserver/*"/>
</jar>
<jar jarfile="${build.lib}/demo-rmihelloworld.jar"
basedir="${build.classes}"
manifest="${manifest.dir}/rmihelloworld-demo.mf">
- <include name="org/apache/avalon/cornerstone/demos/rmihelloworldserver/*"/>
+ <include name="org/apache/avalon/apps/demos/rmihelloworldserver/*"/>
</jar>
<jar jarfile="${build.lib}/demo-altrmihelloworld.jar"
manifest="${manifest.dir}/altrmihelloworld-demo.mf">
<fileset dir="${build.classes}">
- <include name="org/apache/avalon/cornerstone/demos/altrmihelloworldserver/*"/>
+ <include name="org/apache/avalon/apps/demos/altrmihelloworldserver/*"/>
</fileset>
</jar>
@@ -305,7 +305,7 @@
<!-- Performs soap related unit tests -->
<target name="check-soap" depends="compile" if="glue.present">
- <java classname="org.apache.avalon.cornerstone.demos.soaphelloworldserver.SOAPHelloWorldServerTester">
+ <java classname="org.apache.avalon.apps.demos.soaphelloworldserver.SOAPHelloWorldServerTester">
<classpath refid="project.class.path" />
</java>
</target>
@@ -315,7 +315,7 @@
<!-- Performs rmi related unit tests -->
<target name="check-rmi" depends="compile">
- <java classname="org.apache.avalon.cornerstone.demos.rmihelloworldserver.RMIHelloWorldClient">
+ <java classname="org.apache.avalon.apps.demos.rmihelloworldserver.RMIHelloWorldClient">
<classpath refid="project.class.path" />
<arg value="localhost" />
<arg value="1099" />
@@ -325,7 +325,7 @@
<!-- Performs Altrmi related unit tests -->
<target name="check-altrmi" depends="compile">
- <java classname="org.apache.avalon.cornerstone.demos.altrmihelloworldserver.AltrmiHelloWorldServerTester">
+ <java classname="org.apache.avalon.apps.demos.altrmihelloworldserver.AltrmiHelloWorldServerTester">
<classpath>
<pathelement location="lib/commons-altrmi-common.jar"/>
<pathelement location="lib/commons-altrmi-client-interfaces.jar"/>
1.6 +3 -3 jakarta-avalon-apps/demo/src/conf/avalon-altrmidemo-assembly.xml
Index: avalon-altrmidemo-assembly.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-altrmidemo-assembly.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- avalon-altrmidemo-assembly.xml 26 Jan 2002 13:53:25 -0000 1.5
+++ avalon-altrmidemo-assembly.xml 4 Mar 2002 13:17:36 -0000 1.6
@@ -42,17 +42,17 @@
<!-- Below this section are the demo blocks -->
<!-- -->
- <block class="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServerImpl"
name="helloworldserver" >
<provide name="sockets" role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
<provide name="connections"
role="org.apache.avalon.cornerstone.services.connection.ConnectionManager" />
</block>
- <block class="org.apache.avalon.cornerstone.demos.altrmihelloworldserver.AltrmiHelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.altrmihelloworldserver.AltrmiHelloWorldServerImpl"
name="altrmihelloworldserver" >
<provide name="helloworldserver"
- role="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServer"/>
+ role="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"/>
<provide name="altrmi-publisher"
role="org.apache.commons.altrmi.server.AltrmiPublisher" />
</block>
1.5 +1 -1 jakarta-avalon-apps/demo/src/conf/avalon-altrmidemo-config.xml
Index: avalon-altrmidemo-config.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-altrmidemo-config.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- avalon-altrmidemo-config.xml 26 Jan 2002 13:53:25 -0000 1.4
+++ avalon-altrmidemo-config.xml 4 Mar 2002 13:17:36 -0000 1.5
@@ -66,7 +66,7 @@
<publisher>altrmi-publisher</publisher>
<publish block="helloworldserver"
- interfaceToPublish="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServer"
+ interfaceToPublish="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"
publishAsName="helloworld"/>
</altrmification-listener>
1.9 +1 -1 jakarta-avalon-apps/demo/src/conf/avalon-demo-assembly.xml
Index: avalon-demo-assembly.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-demo-assembly.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- avalon-demo-assembly.xml 25 Nov 2001 05:52:03 -0000 1.8
+++ avalon-demo-assembly.xml 4 Mar 2002 13:17:36 -0000 1.9
@@ -37,7 +37,7 @@
<!-- Below this section are the demo blocks -->
<!-- -->
- <block class="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServerImpl"
name="helloworldserver" >
<provide name="sockets" role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
<provide name="connections"
1.4 +3 -3 jakarta-avalon-apps/demo/src/conf/avalon-gluedemo-assembly.xml
Index: avalon-gluedemo-assembly.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-gluedemo-assembly.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- avalon-gluedemo-assembly.xml 19 Nov 2001 12:28:39 -0000 1.3
+++ avalon-gluedemo-assembly.xml 4 Mar 2002 13:17:36 -0000 1.4
@@ -21,7 +21,7 @@
<!-- Below this section are the demo blocks -->
<!-- -->
- <block class="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServerImpl"
name="helloworldserver" >
<provide name="sockets" role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
<provide name="connections"
@@ -31,10 +31,10 @@
<block class="org.apache.avalon.cornerstone.blocks.soapification.glue.Glue"
name="glue-soapification" />
- <block class="org.apache.avalon.cornerstone.demos.soaphelloworldserver.SOAPHelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.soaphelloworldserver.SOAPHelloWorldServerImpl"
name="soaphelloworldserver" >
<provide name="helloworldserver"
- role="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServer"/>
+ role="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"/>
<provide name="glue-soapification"
role="org.apache.avalon.cornerstone.services.soapification.SOAPification" />
</block>
1.4 +1 -1 jakarta-avalon-apps/demo/src/conf/avalon-rmidemo-assembly.xml
Index: avalon-rmidemo-assembly.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-rmidemo-assembly.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- avalon-rmidemo-assembly.xml 4 Feb 2002 10:42:30 -0000 1.3
+++ avalon-rmidemo-assembly.xml 4 Mar 2002 13:17:36 -0000 1.4
@@ -5,7 +5,7 @@
<block class="org.apache.avalon.cornerstone.blocks.rmification.DefaultRMIfication"
name="rmification"/>
- <block class="org.apache.avalon.cornerstone.demos.rmihelloworldserver.RMIHelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.rmihelloworldserver.RMIHelloWorldServerImpl"
name="rmihelloworld">
<provide name="rmification" role="org.apache.avalon.cornerstone.services.rmification.RMIfication"/>
</block>
1.4 +1 -1 jakarta-avalon-apps/demo/src/conf/avalon-rmidemo-config.xml
Index: avalon-rmidemo-config.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/conf/avalon-rmidemo-config.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- avalon-rmidemo-config.xml 4 Feb 2002 10:42:30 -0000 1.3
+++ avalon-rmidemo-config.xml 4 Mar 2002 13:17:36 -0000 1.4
@@ -7,7 +7,7 @@
</rmification>
<rmihelloworld>
- <pub-name>org/apache/avalon/cornerstone/demos/rmihelloworldserver/RMIHelloWorldServer</pub-name>
+ <pub-name>org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldServer</pub-name>
</rmihelloworld>
</config>
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/altrmihelloworldserver/AltrmiHelloWorldServer.java
Index: AltrmiHelloWorldServer.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.avalon.apps.demos.altrmihelloworldserver;
/**
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public interface AltrmiHelloWorldServer
{
String ROLE = AltrmiHelloWorldServer.class.getName();
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/altrmihelloworldserver/AltrmiHelloWorldServerImpl.java
Index: AltrmiHelloWorldServerImpl.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.avalon.apps.demos.altrmihelloworldserver;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
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.activity.Initializable;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.phoenix.Block;
import org.apache.avalon.phoenix.BlockContext;
import org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer;
import org.apache.commons.altrmi.server.AltrmiPublisher;
/**
* This demo Server applications shows the use of Altrmi to publish the
* HelloWorld block's API to clients over TCP/IP.
*
* HelloWorld would normally mount as just a HTTP hack showing a HTML
* HelloWorld message to suitably forgiving Browsers. With the
* addition of this block and suitably assembled, the HelloWorld
* application is given more life.
*
************************************************************
************************************************************
*
* This is being phased out in favour of AutoPublisher
*
************************************************************
************************************************************
*
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public class AltrmiHelloWorldServerImpl
extends AbstractLogEnabled
implements Block, AltrmiHelloWorldServer,
Composable, Configurable, Initializable
{
protected HelloWorldServer mHelloWorldServer;
protected AltrmiPublisher mAltrmiPublisher;
protected BlockContext m_context;
protected String publicationName;
public void initialize() throws Exception {
// being phased out.
//mAltrmiPublisher.publish(mHelloWorldServer, publicationName, HelloWorldServer.class);
getLogger().info("HelloWorldServer published as " + publicationName);
// This is only to help newbies.....
System.out.println("AltrmiHelloWorld server running. Use AltrmiHelloWorldTester to connect to it to test it");
}
public void contextualize( final Context context )
{
m_context = (BlockContext)context;
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
publicationName = configuration.getChild("pub-name").getValue();
}
public void compose( final ComponentManager componentManager )
throws ComponentException
{
getLogger().info("SOAPHelloWorldServer.compose()");
mHelloWorldServer = (HelloWorldServer)componentManager.lookup( HelloWorldServer.ROLE );
mAltrmiPublisher = (AltrmiPublisher)componentManager.lookup( AltrmiPublisher.class.getName() );
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/altrmihelloworldserver/AltrmiHelloWorldServerImpl.xinfo
Index: AltrmiHelloWorldServerImpl.xinfo
===================================================================
<?xml version="1.0"?>
<!DOCTYPE blockinfo PUBLIC "-//PHOENIX/Block Info DTD Version 1.0//EN"
"http://jakarta.apache.org/phoenix/blockinfo_1_0.dtd">
<blockinfo>
<!-- section to describe block -->
<block>
<version>1.0</version>
</block>
<!-- services that are offered by this block -->
<services>
<service name="org.apache.avalon.apps.demos.altrmihelloworldserver.AltrmiHelloWorldServer"
version="1.0" />
</services>
<dependencies>
<dependency>
<service name="org.apache.commons.altrmi.server.AltrmiPublisher" version="1.0"/>
</dependency>
<dependency>
<service name="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer" version="1.0"/>
</dependency>
</dependencies>
</blockinfo>
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/altrmihelloworldserver/AltrmiHelloWorldServerTester.java
Index: AltrmiHelloWorldServerTester.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.avalon.apps.demos.altrmihelloworldserver;
import org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer;
import org.apache.commons.altrmi.client.AltrmiHostContext;
import org.apache.commons.altrmi.client.AltrmiFactory;
import org.apache.commons.altrmi.client.impl.socket.SocketObjectStreamHostContext;
import org.apache.commons.altrmi.client.impl.ServerClassAltrmiFactory;
/**
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public class AltrmiHelloWorldServerTester
{
protected HelloWorldServer mHelloWorldServer;
public static void main(String[] args) throws Exception
{
try {
AltrmiHostContext arhc = new SocketObjectStreamHostContext("127.0.0.1", 8666);
ServerClassAltrmiFactory af = new ServerClassAltrmiFactory(false);
af.setHostContext(arhc);
HelloWorldServer hws = (HelloWorldServer) af.lookup("helloworld");
hws.setGreeting("Howdie Partner");
System.out.println( "The greeting on the HelloWorldServer block has been changed. Point your browser to http://localhost:7666 to see it." );
} catch (Throwable t) {
t.printStackTrace();
}
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/helloworldserver/HelloWorldHandler.java
Index: HelloWorldHandler.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.avalon.apps.demos.helloworldserver;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.SocketException;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.apps.services.connection.ConnectionHandler;
/**
* This handles an individual incoming request. It outputs a greeting as html.
* @author Paul Hammant <Pa...@yahoo.com>
* @author Federico Barbieri <sc...@systemy.it>
* @version 1.0
*/
public class HelloWorldHandler
extends AbstractLogEnabled
implements Component, ConnectionHandler
{
protected static int c_counter;
protected String m_greeting;
protected HelloWorldHandler( final String greeting )
{
m_greeting = greeting;
}
/**
* Handle a connection.
* This handler is responsible for processing connections as they occur.
*
* @param socket the connection
* @exception IOException if an error reading from socket occurs
*/
public void handleConnection( final Socket socket )
throws IOException
{
final String remoteHost = socket.getInetAddress().getHostName();
final String remoteIP = socket.getInetAddress().getHostAddress();
final PrintWriter out = new PrintWriter( socket.getOutputStream(), true );
try
{
out.println( "<html><body><b>" + m_greeting + "!</b><br> Requests so far = " +
++c_counter + "<br>" );
out.println( "you are " + remoteHost + " at " + remoteIP + "<br>" );
out.println( "</body></html>" );
socket.close();
}
catch( final SocketException se )
{
getLogger().debug( "Socket to " + remoteHost + " closed remotely in HelloWorld", se );
}
catch( final InterruptedIOException iioe )
{
getLogger().debug( "Socket to " + remoteHost + " timeout in HelloWorld", iioe );
}
catch( final IOException ioe )
{
getLogger().debug( "Exception in HelloWorld handling socket to " + remoteHost ,
ioe );
}
catch( final Exception e )
{
getLogger().debug( "Exception in HelloWorld opening socket", e );
}
finally
{
try { socket.close(); }
catch( final IOException ioe )
{
getLogger().error( "Exception closing socket ", ioe );
}
}
getLogger().info( "Connection from " + remoteHost + " (" + remoteIP + ")" );
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/helloworldserver/HelloWorldServer.java
Index: HelloWorldServer.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.avalon.apps.demos.helloworldserver;
import org.apache.avalon.phoenix.Service;
/**
* @author Paul Hammant <Pa...@yahoo.com>
* @version 1.0
*/
public interface HelloWorldServer
{
String ROLE = HelloWorldServer.class.getName();
void setGreeting( String greeting );
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/helloworldserver/HelloWorldServerImpl.java
Index: HelloWorldServerImpl.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.avalon.apps.demos.helloworldserver;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.UnknownHostException;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
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.Contextualizable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.apps.services.connection.ConnectionHandler;
import org.apache.avalon.apps.services.connection.ConnectionHandlerFactory;
import org.apache.avalon.apps.services.connection.ConnectionManager;
import org.apache.avalon.apps.services.sockets.ServerSocketFactory;
import org.apache.avalon.apps.services.sockets.SocketManager;
import org.apache.avalon.phoenix.Block;
import org.apache.avalon.phoenix.BlockContext;
/**
* @author Paul Hammant <Pa...@yahoo.com>
* @author Federico Barbieri <sc...@pop.systemy.it>
* @version 1.0
*/
public class HelloWorldServerImpl
extends AbstractLogEnabled
implements Block, HelloWorldServer,
Contextualizable, Composable, Configurable, Initializable, ConnectionHandlerFactory
{
protected SocketManager m_socketManager;
protected ConnectionManager m_connectionManager;
protected BlockContext m_context;
protected String m_greeting = "Hello World";
protected InetAddress m_bindTo;
protected int m_port;
public void setGreeting( final String greeting )
{
m_greeting = greeting;
}
public void contextualize( final Context context )
{
m_context = (BlockContext)context;
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
m_port = configuration.getChild("port").getValueAsInteger( 8000 );
try
{
final String bindAddress = configuration.getChild( "bind" ).getValue();
m_bindTo = InetAddress.getByName( bindAddress );
}
catch( final UnknownHostException unhe )
{
throw new ConfigurationException( "Malformed bind parameter", unhe );
}
}
public void compose( final ComponentManager componentManager )
throws ComponentException
{
getLogger().info("HelloWorldServer.compose()");
m_socketManager = (SocketManager)componentManager.lookup( SocketManager.ROLE );
m_connectionManager = (ConnectionManager)componentManager.lookup( ConnectionManager.ROLE );
}
public void initialize()
throws Exception
{
final ServerSocketFactory factory =
m_socketManager.getServerSocketFactory( "plain" );
final ServerSocket serverSocket = factory.createServerSocket( m_port, 5, m_bindTo );
m_connectionManager.connect( "HelloWorldListener", serverSocket, this );
// This is only to help newbies.....
System.out.println("HelloWorld server running. Point your browser to http://localhost:" + m_port + " to see its page");
}
/**
* Construct an appropriate ConnectionHandler.
*
* @return the new ConnectionHandler
* @exception Exception if an error occurs
*/
public ConnectionHandler createConnectionHandler()
throws Exception
{
final HelloWorldHandler handler = new HelloWorldHandler( m_greeting );
setupLogger( handler );
return handler;
}
/**
* Release a previously created ConnectionHandler e.g. for spooling.
*/
public void releaseConnectionHandler(ConnectionHandler connectionHandler)
{
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/helloworldserver/HelloWorldServerImpl.xinfo
Index: HelloWorldServerImpl.xinfo
===================================================================
<?xml version="1.0"?>
<!DOCTYPE blockinfo PUBLIC "-//PHOENIX/Block Info DTD Version 1.0//EN"
"http://jakarta.apache.org/phoenix/blockinfo_1_0.dtd">
<blockinfo>
<!-- section to describe block -->
<block>
<version>1.0</version>
</block>
<!-- services that are offered by this block -->
<services>
<service name="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"
version="1.0" />
</services>
<dependencies>
<dependency>
<service name="org.apache.avalon.cornerstone.services.sockets.SocketManager" version="1.0"/>
</dependency>
<dependency>
<service name="org.apache.avalon.cornerstone.services.connection.ConnectionManager"
version="1.0"/>
</dependency>
</dependencies>
</blockinfo>
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldClient.java
Index: RMIHelloWorldClient.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.avalon.apps.demos.rmihelloworldserver;
import java.rmi.RemoteException;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
/**
* Client for <code>RMIHelloWorldServer</code>.
*
* @author <a href="mailto:colus@apache.org">Eung-ju Park</a>
*/
public class RMIHelloWorldClient
{
public static void main( final String[] args )
throws Exception
{
final String host = args[ 0 ];
final int port = Integer.parseInt( args[ 1 ] );
final String yourName = args[ 2 ];
final Registry registry = LocateRegistry.getRegistry( host, port );
final RMIHelloWorldServer server = (RMIHelloWorldServer)registry.lookup( "org/apache/avalon/cornerstone/demos/rmihelloworldserver/RMIHelloWorldServer" );
System.out.println( "sayHello( " + yourName + " ): " + server.sayHello( yourName) );
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldServer.java
Index: RMIHelloWorldServer.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.avalon.apps.demos.rmihelloworldserver;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* @author <a href="mailto:colus@apache.org">Eung-ju Park</a>
*/
public interface RMIHelloWorldServer
extends Remote
{
String ROLE = RMIHelloWorldServer.class.getName();
/**
* Just say hello.
*/
String sayHello( final String yourName )
throws RemoteException;
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldServerImpl.java
Index: RMIHelloWorldServerImpl.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.avalon.apps.demos.rmihelloworldserver;
import java.rmi.RemoteException;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.activity.Initializable;
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.phoenix.Block;
import org.apache.avalon.apps.services.rmification.RMIfication;
/**
* @author <a href="mailto:colus@apache.org">Eung-ju Park</a>
*/
public class RMIHelloWorldServerImpl
extends AbstractLogEnabled
implements Composable, Configurable, Initializable, RMIHelloWorldServer, Block
{
private RMIfication m_rmification;
private String m_publicationName;
public void compose( final ComponentManager componentManager )
throws ComponentException
{
m_rmification = (RMIfication)componentManager.lookup( RMIfication.ROLE );
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
m_publicationName = configuration.getChild( "pub-name" ).getValue();
}
public void initialize()
throws Exception
{
m_rmification.publish( this, m_publicationName );
}
public void dispose()
{
try
{
m_rmification.unpublish( m_publicationName );
}
catch ( final Exception e )
{
getLogger().error( "Fail to unpublish service", e );
}
}
public String sayHello( final String yourName )
throws RemoteException
{
return "Hello " + yourName + ".";
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldServerImpl.xinfo
Index: RMIHelloWorldServerImpl.xinfo
===================================================================
<?xml version="1.0"?>
<!DOCTYPE blockinfo PUBLIC "-//PHOENIX/Block Info DTD Version 1.0//EN"
"http://jakarta.apache.org/phoenix/blockinfo_1_0.dtd">
<blockinfo>
<!-- section to describe block -->
<block>
<version>1.0</version>
</block>
<!-- services that are offered by this block -->
<services>
<service name="org.apache.avalon.apps.demos.rmihelloworldserver.RMIHelloWorldServer"
version="1.0" />
</services>
<dependencies>
<dependency>
<service name="org.apache.avalon.cornerstone.services.rmification.RMIfication" version="1.0"/>
</dependency>
</dependencies>
</blockinfo>
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/soaphelloworldserver/SOAPHelloWorldServer.java
Index: SOAPHelloWorldServer.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.avalon.apps.demos.soaphelloworldserver;
import org.apache.avalon.phoenix.Service;
/**
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public interface SOAPHelloWorldServer
{
String ROLE = SOAPHelloWorldServer.class.getName();
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.java
Index: SOAPHelloWorldServerImpl.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.avalon.apps.demos.soaphelloworldserver;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
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.activity.Initializable;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.phoenix.Block;
import org.apache.avalon.phoenix.BlockContext;
import org.apache.avalon.apps.services.soapification.SOAPification;
import org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer;
/**
* This demo Server applications shows the use of SOAP to publish the
* HelloWorld block's API to clients over TCP/IP.
*
* HelloWorld would normally mount as just a HTTP hack showing a HTML
* HelloWorld message to suitably forgiving Browsers. With the
* addition of this block and suitably assembled, the HelloWorld
* application is given more life.
*
* All of the following jars from Glue-Standard's download need
* to be inside the lib dir of Cornerstone's root to cause
* SOAPHelloWorldServer and the Glue block to compile, be included in BARs
* and cause the creation of the relevant SARs :-
*
* GLUE-STD.jar
* jndi.jar
* ejb.jar
* servlet.jar
* jcert.jar
* jnet.jar
* jsse.jar
*
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public class SOAPHelloWorldServerImpl
extends AbstractLogEnabled
implements Block, SOAPHelloWorldServer,
Composable, Configurable, Initializable
{
protected HelloWorldServer mHelloWorldServer;
protected SOAPification mSOAPification;
protected BlockContext m_context;
protected String publicationName;
public void initialize() throws Exception {
mSOAPification.publish(mHelloWorldServer, publicationName, HelloWorldServer.class);
getLogger().info("HelloWorldServer published as " + publicationName);
// This is only to help newbies.....
System.out.println("SOAPHelloWorld WSDL server running. Use SOAPHelloWorldTester to connect to URL listed above to test it");
}
public void contextualize( final Context context )
{
m_context = (BlockContext)context;
}
public void configure( final Configuration configuration )
throws ConfigurationException
{
publicationName = configuration.getChild("pub-name").getValue();
}
public void compose( final ComponentManager componentManager )
throws ComponentException
{
getLogger().info("SOAPHelloWorldServer.compose()");
mHelloWorldServer = (HelloWorldServer)componentManager.lookup( HelloWorldServer.ROLE );
mSOAPification = (SOAPification)componentManager.lookup( SOAPification.ROLE );
}
}
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.xinfo
Index: SOAPHelloWorldServerImpl.xinfo
===================================================================
<?xml version="1.0"?>
<!DOCTYPE blockinfo PUBLIC "-//PHOENIX/Block Info DTD Version 1.0//EN"
"http://jakarta.apache.org/phoenix/blockinfo_1_0.dtd">
<blockinfo>
<!-- section to describe block -->
<block>
<version>1.0</version>
</block>
<!-- services that are offered by this block -->
<services>
<service name="org.apache.avalon.apps.demos.soaphelloworldserver.SOAPHelloWorldServer"
version="1.0" />
</services>
<dependencies>
<dependency>
<service name="org.apache.avalon.cornerstone.services.soapification.SOAPification" version="1.0"/>
</dependency>
<dependency>
<service name="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"
version="1.0"/>
</dependency>
</dependencies>
</blockinfo>
1.1 jakarta-avalon-apps/demo/src/java/org/apache/avalon/apps/demos/soaphelloworldserver/SOAPHelloWorldServerTester.java
Index: SOAPHelloWorldServerTester.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.avalon.apps.demos.soaphelloworldserver;
import org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer;
import electric.registry.Registry;
import electric.registry.RegistryException;
/**
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul Hammant</a>
* @version 1.0
*/
public class SOAPHelloWorldServerTester
{
protected HelloWorldServer mHelloWorldServer;
public static void main(String[] args)
{
String url = "http://127.0.0.1:7998/soap/helloworld.wsdl";
HelloWorldServer hws = null;
try
{
hws = (HelloWorldServer) Registry.bind( url, HelloWorldServer.class );
} catch (RegistryException re)
{
System.err.println( "Opps some Glue problem " + re.getMessage());
re.printStackTrace();
}
hws.setGreeting("Howdie Partner");
System.out.println( "The greeting on the HelloWorldServer block has been changed. Point your browser to http://localhost:7999 to see it." );
}
}
1.2 +1 -1 jakarta-avalon-apps/demo/src/manifest/altrmihelloworld-demo.mf
Index: altrmihelloworld-demo.mf
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/manifest/altrmihelloworld-demo.mf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- altrmihelloworld-demo.mf 13 Jan 2002 10:35:17 -0000 1.1
+++ altrmihelloworld-demo.mf 4 Mar 2002 13:17:37 -0000 1.2
@@ -1,5 +1,5 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/avalon/cornerstone/demos/altrmihelloworldserver/AltrmiHelloWorldServerImpl.class
+Name: org/apache/avalon/apps/demos/altrmihelloworldserver/AltrmiHelloWorldServerImpl.class
Avalon-Block: true
1.2 +1 -1 jakarta-avalon-apps/demo/src/manifest/helloworld-demo.mf
Index: helloworld-demo.mf
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/manifest/helloworld-demo.mf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- helloworld-demo.mf 10 Sep 2001 20:12:20 -0000 1.1
+++ helloworld-demo.mf 4 Mar 2002 13:17:37 -0000 1.2
@@ -1,5 +1,5 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/avalon/cornerstone/demos/helloworldserver/HelloWorldServerImpl.class
+Name: org/apache/avalon/apps/demos/helloworldserver/HelloWorldServerImpl.class
Avalon-Block: true
1.2 +1 -1 jakarta-avalon-apps/demo/src/manifest/rmihelloworld-demo.mf
Index: rmihelloworld-demo.mf
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/manifest/rmihelloworld-demo.mf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rmihelloworld-demo.mf 11 Jan 2002 11:22:12 -0000 1.1
+++ rmihelloworld-demo.mf 4 Mar 2002 13:17:37 -0000 1.2
@@ -1,5 +1,5 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/avalon/cornerstone/demos/rmihelloworldserver/RMIHelloWorldServerImpl.class
+Name: org/apache/avalon/apps/demos/rmihelloworldserver/RMIHelloWorldServerImpl.class
Avalon-Block: true
1.2 +1 -1 jakarta-avalon-apps/demo/src/manifest/soaphelloworld-demo.mf
Index: soaphelloworld-demo.mf
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/manifest/soaphelloworld-demo.mf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- soaphelloworld-demo.mf 10 Sep 2001 20:12:20 -0000 1.1
+++ soaphelloworld-demo.mf 4 Mar 2002 13:17:37 -0000 1.2
@@ -1,5 +1,5 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/avalon/cornerstone/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.class
+Name: org/apache/avalon/apps/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.class
Avalon-Block: true
1.5 +4 -4 jakarta-avalon-apps/demo/src/xdocs/demo-helloworld.xml
Index: demo-helloworld.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/xdocs/demo-helloworld.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- demo-helloworld.xml 29 Dec 2001 19:27:55 -0000 1.4
+++ demo-helloworld.xml 4 Mar 2002 13:17:37 -0000 1.5
@@ -29,7 +29,7 @@
</p>
<ol>
<li>
- <strong>org.apache.avalon.cornerstone.demos.helloworldserver package</strong> This package contains the Java source for 'Hello World' and the xinfo block descriptor.
+ <strong>org.apache.avalon.apps.demos.helloworldserver package</strong> This package contains the Java source for 'Hello World' and the xinfo block descriptor.
</li>
<li>
<strong>manifest/helloworld-demo.mf</strong> This contains a manifest for use in the bar file that details what's inside the block archive 'demo-helloworld.bar'
@@ -69,7 +69,7 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/cornerstone/demos/helloworldserver/HelloWorldServerImpl.class
+Name: org/apache/apps/demos/helloworldserver/HelloWorldServerImpl.class
Avalon-Block: true
</source>
</s1>
@@ -79,7 +79,7 @@
</p>
<source>
(text snipped)
- <block class="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServerImpl"
name="helloworldserver" >
<provide name="sockets2" role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
<provide name="connections"
@@ -125,7 +125,7 @@
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
- $Revision: 1.4 $ $Date: 2001/12/29 19:27:55 $
+ $Revision: 1.5 $ $Date: 2002/03/04 13:17:37 $
</legal>
</footer>
</document>
1.5 +6 -6 jakarta-avalon-apps/demo/src/xdocs/demo-soaphelloworld.xml
Index: demo-soaphelloworld.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/demo/src/xdocs/demo-soaphelloworld.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- demo-soaphelloworld.xml 29 Dec 2001 19:27:55 -0000 1.4
+++ demo-soaphelloworld.xml 4 Mar 2002 13:17:37 -0000 1.5
@@ -28,7 +28,7 @@
</p>
<ol>
<li>
- <strong>org.apache.avalon.cornerstone.demos.soaphelloworldserver package</strong> This package contains the Java source for 'SOAP Hello World' and the xinfo block descriptor.
+ <strong>org.apache.avalon.apps.demos.soaphelloworldserver package</strong> This package contains the Java source for 'SOAP Hello World' and the xinfo block descriptor.
</li>
<li>
<strong>manifest/soaphelloworld-demo.mf</strong> This contains a manifest for use in the bar file that details what's inside the block archive 'demo-soaphelloworld.bar'
@@ -73,7 +73,7 @@
Manifest-Version: 1.0
Created-By: Apache Avalon Project
-Name: org/apache/cornerstone/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.class
+Name: org/apache/apps/demos/soaphelloworldserver/SOAPHelloWorldServerImpl.class
Avalon-Block: true
</source>
</s1>
@@ -83,7 +83,7 @@
</p>
<source>
(text snipped)
- <block class="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServerImpl"
name="helloworldserver" >
<provide name="sockets" role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
<provide name="connections"
@@ -94,10 +94,10 @@
name="glue-soapification" >
</block>
- <block class="org.apache.avalon.cornerstone.demos.soaphelloworldserver.SOAPHelloWorldServerImpl"
+ <block class="org.apache.avalon.apps.demos.soaphelloworldserver.SOAPHelloWorldServerImpl"
name="soaphelloworldserver" >
<provide name="helloworldserver"
- role="org.apache.avalon.cornerstone.demos.helloworldserver.HelloWorldServer"/>
+ role="org.apache.avalon.apps.demos.helloworldserver.HelloWorldServer"/>
<provide name="glue-soapification"
role="org.apache.avalon.cornerstone.services.soapification.SOAPification" />
</block>
@@ -150,7 +150,7 @@
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
- $Revision: 1.4 $ $Date: 2001/12/29 19:27:55 $
+ $Revision: 1.5 $ $Date: 2002/03/04 13:17:37 $
</legal>
</footer>
</document>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>