You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/07/02 16:31:13 UTC
svn commit: rev 22477 - in avalon/trunk/planet: cornerstone tutorials tutorials/parameterization tutorials/profiles tutorials/simple-web tutorials/simple-web/conf tutorials/simple-web/src/java tutorials/simple-web/src/main tutorials/simple-web/src/main/tutorial
Author: mcconnell
Date: Fri Jul 2 07:31:12 2004
New Revision: 22477
Added:
avalon/trunk/planet/tutorials/simple-web/build.xml
avalon/trunk/planet/tutorials/simple-web/src/main/
- copied from rev 22276, avalon/trunk/planet/tutorials/simple-web/src/java/
Removed:
avalon/trunk/planet/tutorials/parameterization/copy-all.xsl
avalon/trunk/planet/tutorials/parameterization/index.ent
avalon/trunk/planet/tutorials/parameterization/merlin.properties
avalon/trunk/planet/tutorials/parameterization/project.xml
avalon/trunk/planet/tutorials/profiles/project.xml
avalon/trunk/planet/tutorials/simple-web/conf/
avalon/trunk/planet/tutorials/simple-web/maven.xml
avalon/trunk/planet/tutorials/simple-web/project.properties
avalon/trunk/planet/tutorials/simple-web/project.xml
avalon/trunk/planet/tutorials/simple-web/src/java/
Modified:
avalon/trunk/planet/cornerstone/index.xml
avalon/trunk/planet/tutorials/index.xml
avalon/trunk/planet/tutorials/parameterization/README.txt
avalon/trunk/planet/tutorials/simple-web/src/main/tutorial/SimpleWebServerComponent.java
Log:
Add the simple-web tutorial and the parameterization tutorial. Also made some updates to the web-server to make it parameterizable instead of configurable (we only need a port number). Converted the block to be automatically generated and got rid of related fluff.
Modified: avalon/trunk/planet/cornerstone/index.xml
==============================================================================
--- avalon/trunk/planet/cornerstone/index.xml (original)
+++ avalon/trunk/planet/cornerstone/index.xml Fri Jul 2 07:31:12 2004
@@ -172,6 +172,7 @@
</info>
<dependencies>
<include key="cornerstone-connection-api"/>
+ <include key="cornerstone-threads-impl"/>
<include key="avalon-framework-impl"/>
</dependencies>
<plugins>
@@ -227,7 +228,7 @@
</info>
<dependencies>
<include key="cornerstone-scheduler-api"/>
- <include key="cornerstone-threads-api"/>
+ <include key="cornerstone-threads-impl"/>
<include key="avalon-framework-impl"/>
</dependencies>
<plugins>
Modified: avalon/trunk/planet/tutorials/index.xml
==============================================================================
--- avalon/trunk/planet/tutorials/index.xml (original)
+++ avalon/trunk/planet/tutorials/index.xml Fri Jul 2 07:31:12 2004
@@ -5,6 +5,9 @@
<import index="../../runtime/index.xml"
href="http://svn.apache.org/repos/asf/avalon/trunk/runtime/index.xml"/>
+ <import index="../cornerstone/index.xml"
+ href="http://svn.apache.org/repos/asf/avalon/trunk/planet/cornerstone/index.xml"/>
+
<!--
Hello Tutorial.
-->
@@ -340,6 +343,46 @@
</info>
<dependencies>
<include key="avalon-framework-api"/>
+ </dependencies>
+ <plugins>
+ <include key="avalon-meta-tools"/>
+ </plugins>
+ </project>
+
+ <project basedir="profiles">
+ <info>
+ <group>avalon/tutorial</group>
+ <name>avalon-tutorial-profiles</name>
+ </info>
+ <dependencies>
+ <include key="avalon-framework-api"/>
+ </dependencies>
+ <plugins>
+ <include key="avalon-meta-tools"/>
+ </plugins>
+ </project>
+
+ <project basedir="selection">
+ <info>
+ <group>avalon/tutorial</group>
+ <name>avalon-tutorial-selection</name>
+ </info>
+ <dependencies>
+ <include key="avalon-framework-api"/>
+ </dependencies>
+ <plugins>
+ <include key="avalon-meta-tools"/>
+ </plugins>
+ </project>
+
+ <project basedir="simple-web">
+ <info>
+ <group>avalon/tutorial</group>
+ <name>avalon-tutorial-webserver</name>
+ </info>
+ <dependencies>
+ <include key="cornerstone-sockets-impl"/>
+ <include key="cornerstone-connection-impl"/>
</dependencies>
<plugins>
<include key="avalon-meta-tools"/>
Modified: avalon/trunk/planet/tutorials/parameterization/README.txt
==============================================================================
--- avalon/trunk/planet/tutorials/parameterization/README.txt (original)
+++ avalon/trunk/planet/tutorials/parameterization/README.txt Fri Jul 2 07:31:12 2004
@@ -10,25 +10,11 @@
Build the project using the following command:
-$ maven
-
-The above command triggers the default goal jar:jar which will
-create a jar file under the target directory named
-parameters-1.0.jar. The jar file contains a single
-component, generated .xinfo descriptor, and a bundled block.xml
-deployment descriptor.
+$ ant
Runtime
-------
-To see Merlin in action, execute Merlin and give it either the
-jar file of the target/classes directory as the deployment
-argument.
-
$ merlin target\classes -execute
-
-Or:
-
-$ merlin target\parameters-1.0.jar -execute
Added: avalon/trunk/planet/tutorials/simple-web/build.xml
==============================================================================
--- (empty file)
+++ avalon/trunk/planet/tutorials/simple-web/build.xml Fri Jul 2 07:31:12 2004
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<project name="avalon-tutorial-webserver" default="install" basedir="."
+ xmlns:x="antlib:org.apache.avalon.tools">
+
+ <property name="project.home" value=".."/>
+ <import file="${project.home}/standard.xml"/>
+
+ <target name="build" depends="standard.build">
+ <x:block name="my-web-server" embed="MAIN">
+ <x:component name="thread-manager"
+ class="org.apache.avalon.cornerstone.blocks.threads.DefaultThreadManager"
+ profile="default"/>
+ <x:component name="connection-manager"
+ class="org.apache.avalon.cornerstone.blocks.connection.DefaultConnectionManager" />
+ <x:component name="connection-handler-factory"
+ class="tutorial.SimpleConnectionHandlerFactory" />
+ <x:component name="socket-manager"
+ class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketManager"
+ profile="default"/>
+ <x:component name="simple-web-server"
+ class="tutorial.SimpleWebServerComponent">
+ <x:parameters>
+ <x:parameter name="port" value="9080"/>
+ </x:parameters>
+ </x:component>
+ </x:block>
+ </target>
+
+</project>
+
Modified: avalon/trunk/planet/tutorials/simple-web/src/main/tutorial/SimpleWebServerComponent.java
==============================================================================
--- avalon/trunk/planet/tutorials/simple-web/src/java/tutorial/SimpleWebServerComponent.java (original)
+++ avalon/trunk/planet/tutorials/simple-web/src/main/tutorial/SimpleWebServerComponent.java Fri Jul 2 07:31:12 2004
@@ -19,16 +19,15 @@
import java.net.ServerSocket;
-import org.apache.avalon.cornerstone.services.connection.
- ConnectionHandlerFactory;
+import org.apache.avalon.cornerstone.services.connection.ConnectionHandlerFactory;
import org.apache.avalon.cornerstone.services.connection.ConnectionManager;
import org.apache.avalon.cornerstone.services.sockets.ServerSocketFactory;
import org.apache.avalon.cornerstone.services.sockets.SocketManager;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Executable;
-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.parameters.Parameterizable;
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
@@ -42,10 +41,10 @@
*
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
*
- * @avalon.component version="1.0" name="simple-web-server"
+ * @avalon.component version="1.0" name="simple-web-server" lifestyle="singleton"
*/
public class SimpleWebServerComponent
- implements LogEnabled, Serviceable, Configurable, Executable, Disposable {
+ implements LogEnabled, Serviceable, Parameterizable, Executable, Disposable {
/**
* Internal reference to the logging channel supplied by the container.
*/
@@ -76,8 +75,6 @@
* Supply of a logging channel by the container.
*
* @param logger the logging channel for this component
- *
- * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
*/
public void enableLogging(Logger logger) {
m_logger = logger;
@@ -106,26 +103,14 @@
}
/**
- * Configuration of the component by the container.
- *
- * TODO: Describe the configuration of the component.
- *
- * @param config the component configuration
+ * Parameterization of the component by the container.
+ * @param parameters the component parameters
* @throws ConfigurationException if a configuration error occurs
- *
- * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
- public void configure(Configuration config) throws ConfigurationException {
- getLogger().info("Configuring...");
-
- // Add an HTTP socket listener?
- Configuration httpConfig = config.getChild("http-listener", true);
- if (httpConfig == null) {
- throw new ConfigurationException("port attribute not found!");
- }
- else {
- m_port = httpConfig.getAttributeAsInteger("port", 80);
- }
+ public void parameterize( Parameters params ) throws ParameterException
+ {
+ getLogger().info("Parameterizing...");
+ m_port = params.getParameterAsInteger( "port", 80 );
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org