mcconnell 2002/12/19 02:46:17
Modified: assembly/src/test/config block.xml
assembly/src/test/org/apache/avalon/assembly
TestCaseBase.java
assembly/src/test/org/apache/avalon/assembly/engine
EngineTestCase.java
assembly/src/test/org/apache/avalon/assembly/profile
ProfileManagerTestCase.java
assembly/src/test/org/apache/avalon/assembly/service
DefaultServiceManagerTestCase.java
assembly/src/test/org/apache/avalon/assembly/type
TypeManagerTestCase.java
assembly/src/test/org/apache/avalon/playground
ComplexComponent.java ComplexComponent.xinfo
SimpleComponent.java SimpleComponent.xinfo
TerminalComponent.java TerminalComponent.xinfo
Added: assembly/src/test/org/apache/avalon/playground/basic
BasicComponent.java BasicComponent.xconfig
BasicComponent.xinfo BasicComponent.xprofile
BasicContext.java BasicContextImp.java
BasicService.java BasicService.xservice
Removed: assembly/src/test/org/apache/avalon/playground
BasicComponent.java BasicComponent.xconfig
BasicComponent.xinfo BasicComponent.xprofile
BasicContext.java BasicContextInterface.java
BasicService.java BasicService.xservice
Log:
Putting some structure into the plaground.
Revision Changes Path
1.5 +2 -2 avalon-sandbox/assembly/src/test/config/block.xml
Index: block.xml
===================================================================
RCS file: /home/cvs/avalon-sandbox/assembly/src/test/config/block.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- block.xml 17 Dec 2002 04:49:49 -0000 1.4
+++ block.xml 19 Dec 2002 10:46:16 -0000 1.5
@@ -16,8 +16,8 @@
</configuration>
</component>
- <component name="basic" class="org.apache.avalon.playground.BasicComponent"
activation="startup">
- <context class="org.apache.avalon.playground.BasicContext">
+ <component name="basic"
class="org.apache.avalon.playground.basic.BasicComponent" activation="startup">
+ <context class="org.apache.avalon.playground.basic.BasicContextImp">
<entry key="location">My Place</entry>
<import name="urn:avalon:home" key="home" />
</context>
1.6 +1 -1
avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/TestCaseBase.java
Index: TestCaseBase.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/TestCaseBase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestCaseBase.java 9 Dec 2002 03:04:55 -0000 1.5
+++ TestCaseBase.java 19 Dec 2002 10:46:16 -0000 1.6
@@ -51,7 +51,7 @@
new Category( "logging", "WARN" ) );
DefaultContext context = new DefaultContext();
- context.put( "urn:avalon:home", m_base );
+ context.put( "urn:assembly:home", m_base );
context.put( "urn:assembly:logging.descriptor", logging );
context.makeReadOnly();
1.8 +5 -4
avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/engine/EngineTestCase.java
Index: EngineTestCase.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/engine/EngineTestCase.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- EngineTestCase.java 15 Dec 2002 14:05:50 -0000 1.7
+++ EngineTestCase.java 19 Dec 2002 10:46:16 -0000 1.8
@@ -85,7 +85,7 @@
//
Appliance appliance = null;
- final String servicename = "org.apache.avalon.playground.BasicService";
+ final String servicename =
"org.apache.avalon.playground.basic.BasicService";
DependencyDescriptor dependency =
new DependencyDescriptor( "test", servicename, Version.getVersion( "1.1"
) );
@@ -123,7 +123,7 @@
public void testSimpleComponent() throws Throwable
{
final String complex = "org.apache.avalon.playground.ComplexComponent";
- final String basic = "org.apache.avalon.playground.BasicComponent";
+ final String basic = "org.apache.avalon.playground.basic.BasicComponent";
final String simple = "org.apache.avalon.playground.SimpleComponent";
final String exploiter = "org.apache.avalon.playground.ExploitationManager";
final String demo = "org.apache.avalon.playground.DemoManager";
@@ -218,9 +218,10 @@
}
catch( Throwable e )
{
- System.out.println("failure for create type using : " + classname );
+ String error = ExceptionHelper.packException(
+ "failure for create type using : " + classname, e );
+ getLogger().error( error );
assertTrue( false );
- e.printStackTrace();
}
}
}
1.7 +5 -5
avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/profile/ProfileManagerTestCase.java
Index: ProfileManagerTestCase.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/profile/ProfileManagerTestCase.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ProfileManagerTestCase.java 7 Dec 2002 09:34:29 -0000 1.6
+++ ProfileManagerTestCase.java 19 Dec 2002 10:46:16 -0000 1.7
@@ -51,7 +51,7 @@
public void testPackagedProfileImport()
{
- final String classname = "org.apache.avalon.playground.BasicComponent";
+ final String classname =
"org.apache.avalon.playground.basic.BasicComponent";
try
{
@@ -69,11 +69,11 @@
public void testClassicProfileRegistrationAndRetrival() throws Exception
{
- final String classname = "org.apache.avalon.playground.BasicComponent";
+ final String classname =
"org.apache.avalon.playground.basic.BasicComponent";
ReferenceDescriptor ref =
new ReferenceDescriptor(
- "org.apache.avalon.playground.BasicService",
+ "org.apache.avalon.playground.basic.BasicService",
Version.getVersion( "1.1" ) );
DependencyDescriptor dep =
@@ -130,11 +130,11 @@
public void testServiceProviderSelection() throws Exception
{
- final String classname = "org.apache.avalon.playground.BasicComponent";
+ final String classname =
"org.apache.avalon.playground.basic.BasicComponent";
ReferenceDescriptor ref =
new ReferenceDescriptor(
- "org.apache.avalon.playground.BasicService",
+ "org.apache.avalon.playground.basic.BasicService",
Version.getVersion( "1.1" ) );
DependencyDescriptor dep =
1.4 +2 -2
avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/service/DefaultServiceManagerTestCase.java
Index: DefaultServiceManagerTestCase.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/service/DefaultServiceManagerTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DefaultServiceManagerTestCase.java 7 Dec 2002 09:34:29 -0000 1.3
+++ DefaultServiceManagerTestCase.java 19 Dec 2002 10:46:17 -0000 1.4
@@ -49,7 +49,7 @@
public void testCreateBasicService()
{
- final String classname = "org.apache.avalon.playground.BasicService";
+ final String classname = "org.apache.avalon.playground.basic.BasicService";
try
{
@@ -106,7 +106,7 @@
public void testServiceRegistrationAndRetrival() throws Exception
{
- final String classname = "org.apache.avalon.playground.BasicService";
+ final String classname = "org.apache.avalon.playground.basic.BasicService";
Service service = m_manager.createService( classname );
try
1.4 +2 -2
avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/type/TypeManagerTestCase.java
Index: TypeManagerTestCase.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/assembly/type/TypeManagerTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TypeManagerTestCase.java 7 Dec 2002 09:34:29 -0000 1.3
+++ TypeManagerTestCase.java 19 Dec 2002 10:46:17 -0000 1.4
@@ -48,7 +48,7 @@
public void testBasic()
{
- final String classname = "org.apache.avalon.playground.BasicComponent";
+ final String classname =
"org.apache.avalon.playground.basic.BasicComponent";
try
{
@@ -138,7 +138,7 @@
public void testTypeRegistrationAndRetrival() throws Exception
{
final String complex = "org.apache.avalon.playground.ComplexComponent";
- final String basic = "org.apache.avalon.playground.BasicComponent";
+ final String basic = "org.apache.avalon.playground.basic.BasicComponent";
final String simple = "org.apache.avalon.playground.SimpleComponent";
Type complexType = m_manager.createType( complex );
1.4 +1 -0
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ComplexComponent.java
Index: ComplexComponent.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ComplexComponent.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ComplexComponent.java 17 Dec 2002 05:04:45 -0000 1.3
+++ ComplexComponent.java 19 Dec 2002 10:46:17 -0000 1.4
@@ -62,6 +62,7 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.playground.basic.BasicService;
/**
* This is a demonstration component that declares no interface but
1.5 +1 -1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ComplexComponent.xinfo
Index: ComplexComponent.xinfo
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/ComplexComponent.xinfo,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ComplexComponent.xinfo 17 Dec 2002 09:55:24 -0000 1.4
+++ ComplexComponent.xinfo 19 Dec 2002 10:46:17 -0000 1.5
@@ -28,7 +28,7 @@
</services>
<dependencies>
- <dependency type="org.apache.avalon.playground.BasicService:1.1"
role="basic"/>
+ <dependency type="org.apache.avalon.playground.basic.BasicService:1.1"
role="basic"/>
<dependency type="org.apache.avalon.playground.SimpleService" role="simple"/>
</dependencies>
1.3 +1 -0
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/SimpleComponent.java
Index: SimpleComponent.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/SimpleComponent.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SimpleComponent.java 17 Dec 2002 05:04:45 -0000 1.2
+++ SimpleComponent.java 19 Dec 2002 10:46:17 -0000 1.3
@@ -64,6 +64,7 @@
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.playground.basic.BasicService;
/**
* This is a minimal demonstration component that a dependency on
1.6 +5 -12
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/SimpleComponent.xinfo
Index: SimpleComponent.xinfo
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/SimpleComponent.xinfo,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SimpleComponent.xinfo 17 Dec 2002 09:55:24 -0000 1.5
+++ SimpleComponent.xinfo 19 Dec 2002 10:46:17 -0000 1.6
@@ -20,15 +20,12 @@
<attributes>
<attribute key="urn:assembly:appliance.class"
value="org.apache.avalon.assembly.appliance.DefaultAppliance"/>
- <attribute key="urn:assembly:appliance.factory-version"
- value="2.0"/>
+ <attribute key="urn:assembly:appliance.version" value="2.0"/>
</attributes>
</info>
<services>
- <service>
- <reference type="org.apache.avalon.playground.SimpleService"/>
- </service>
+ <service type="org.apache.avalon.playground.SimpleService"/>
</services>
<dependencies>
@@ -37,7 +34,7 @@
Declaration of the services that this component type is
dependent on.
-->
- <dependency type="org.apache.avalon.playground.BasicService:1.1"
role="basic"/>
+ <dependency type="org.apache.avalon.playground.basic.BasicService:1.1"
role="basic"/>
</dependencies>
@@ -47,12 +44,8 @@
the container has to manage.
-->
<stages>
- <stage>
- <reference type="org.apache.avalon.playground.Exploitable" version="1.0"/>
- </stage>
- <stage>
- <reference type="org.apache.avalon.playground.Demonstratable"/>
- </stage>
+ <stage type="org.apache.avalon.playground.Exploitable" />
+ <stage type="org.apache.avalon.playground.Demonstratable"/>
</stages>
</type>
1.2 +1 -0
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/TerminalComponent.java
Index: TerminalComponent.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/TerminalComponent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TerminalComponent.java 24 Nov 2002 12:50:46 -0000 1.1
+++ TerminalComponent.java 19 Dec 2002 10:46:17 -0000 1.2
@@ -57,6 +57,7 @@
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.playground.basic.BasicService;
/**
* This is a minimal demonstration component that provides BasicService
1.3 +1 -1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/TerminalComponent.xinfo
Index: TerminalComponent.xinfo
===================================================================
RCS file:
/home/cvs/avalon-sandbox/assembly/src/test/org/apache/avalon/playground/TerminalComponent.xinfo,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TerminalComponent.xinfo 15 Dec 2002 17:48:40 -0000 1.2
+++ TerminalComponent.xinfo 19 Dec 2002 10:46:17 -0000 1.3
@@ -11,7 +11,7 @@
<services>
<service>
- <reference type="org.apache.avalon.playground.BasicService" version="1.1"/>
+ <reference type="org.apache.avalon.playground.basic.BasicService"
version="1.1"/>
</service>
</services>
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicComponent.java
Index: BasicComponent.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software
* itself, if and wherever such third-party acknowledgments
* normally appear.
*
* 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"
* must not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.avalon.playground.basic;
import java.io.File;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.activity.Startable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
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.playground.NullService;
/**
* This is a minimal demonstration component that implements the
* <code>BasicService</code> interface and has no dependencies.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
*/
public class BasicComponent extends AbstractLogEnabled
implements Contextualizable, Configurable, Initializable, Startable, Disposable,
BasicService, NullService
{
private String m_location;
private String m_message;
private File m_home;
//=======================================================================
// Contextualizable
//=======================================================================
/**
* Supply of the the component context to the component type.
* @param context the context value
*/
public void contextualize( Context context )
{
BasicContext c = (BasicContext)context;
m_location = c.getLocation();
m_home = c.getWorkingDirectory();
}
//=======================================================================
// Configurable
//=======================================================================
/**
* Supply of the the component configuration to the type.
* @param config the configuration value
*/
public void configure( Configuration config )
{
getLogger().debug( "configure" );
m_message = config.getChild( "message" ).getValue( null );
}
//=======================================================================
// Initializable
//=======================================================================
/**
* Initialization of the component type by its container.
*/
public void initialize()
{
getLogger().debug( "initialize" );
getLogger().debug( "location: " + m_location );
getLogger().debug( "home: " + m_home );
getLogger().debug( "message: " + m_message );
}
//=======================================================================
// Startable
//=======================================================================
/**
* Start the component.
*/
public void start()
{
doPrimeObjective();
}
/**
* Stop the component.
*/
public void stop()
{
getLogger().debug( "stopping" );
}
/**
* Dispose of the component.
*/
public void dispose()
{
getLogger().debug( "dispose" );
}
//=======================================================================
// BasicService
//=======================================================================
/**
* Service interface implementation.
*/
public void doPrimeObjective()
{
getLogger().info( m_message + " from '" + m_location + "'." );
}
}
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicComponent.xconfig
Index: BasicComponent.xconfig
===================================================================
<?xml version="1.0"?>
<!--
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.txt file.
@author Avalon Development Team
@version 1.0 12/03/2001
-->
<!--
The .xconfig file contains the default configuration for the component.
-->
<configuration>
<message>Hello</message>
</configuration>
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicComponent.xinfo
Index: BasicComponent.xinfo
===================================================================
<?xml version="1.0"?>
<!DOCTYPE type
PUBLIC "-//AVALON/Component Type DTD Version 1.0//EN"
"http://jakarta.apache.org/avalon/dtds/meta/type_1_1.dtd" >
<!--
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.txt file.
@author Avalon Development Team
@version 1.0 12/03/2001
-->
<type>
<info>
<name>basic</name>
</info>
<context type="org.apache.avalon.playground.basic.BasicContext">
<attributes>
<attribute key="urn:assembly:lifecycle.context.extension"
value="org.apache.avalon.framework.context.Contextualizable:4.1"/>
</attributes>
<entry key="location"/>
<entry key="home" type="java.io.File"/>
</context>
<services>
<service type="org.apache.avalon.playground.basic.BasicService:1.1"/>
<service type="org.apache.avalon.playground.NullService"/>
</services>
</type>
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicComponent.xprofile
Index: BasicComponent.xprofile
===================================================================
<?xml version="1.0"?>
<!--
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.txt file.
@author Avalon Development Team
@version 1.0 12/03/2001
-->
<profiles>
<!--
A packaged profile is equivalent to a component declaration inside a container,
except that it is provided by a component type. A PACKAGED profiles take priority
over an IMPLICIT profile. An EXPLICIT profile declared inside a container
definition
will take priority over PACKAGED profiles.
-->
<component name="basic">
<context class="org.apache.avalon.playground.basic.BasicContextImp">
<import name="urn:avalon:home" key="home" />
<entry key="location">Paris</entry>
</context>
</component>
</profiles>
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicContext.java
Index: BasicContext.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software
* itself, if and wherever such third-party acknowledgments
* normally appear.
*
* 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"
* must not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.avalon.playground.basic;
import java.io.File;
import org.apache.avalon.framework.context.Context;
/**
* Simple non-standard Context interface to demonstration context
* management at the level of different context types.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
*/
public interface BasicContext extends Context
{
/**
* @return a string containing a location value
*/
String getLocation();
/**
* @return a file representing the working directory
*/
File getWorkingDirectory();
}
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicContextImp.java
Index: BasicContextImp.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software
* itself, if and wherever such third-party acknowledgments
* normally appear.
*
* 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"
* must not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.avalon.playground.basic;
import java.io.File;
import java.util.Map;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.DefaultContext;
/**
* This is example of a custom context class. It is used in the demonsteation
* of a context management fraework to show how a context class can be
* supplied to a component declaring a context interface criteria.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
*/
public class BasicContextImp extends DefaultContext implements BasicContext
{
/**
* Creation of a new custom context instance.
* @param map the context name/value map
* @param parent a possibly parent context
*/
public BasicContextImp( Map map, Context parent )
{
super( map, parent );
}
/**
* @return the location
*/
public String getLocation()
{
try
{
return (String)super.get( "location" );
}
catch( Throwable e )
{
return "Unknown";
}
}
/**
* @return the working directory
*/
public File getWorkingDirectory()
{
try
{
return (File)super.get( "home" );
}
catch( Throwable e )
{
throw new RuntimeException( "context object does not provide required
home entry." );
}
}
}
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicService.java
Index: BasicService.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software
* itself, if and wherever such third-party acknowledgments
* normally appear.
*
* 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"
* must not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.avalon.playground.basic;
/**
* The <code>BasicService</code> executes a prime objective.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
*/
public interface BasicService
{
/**
* Execute the prime objective of this services.
*/
void doPrimeObjective();
}
1.1
avalon-sandbox/assembly/src/test/org/apache/avalon/playground/basic/BasicService.xservice
Index: BasicService.xservice
===================================================================
<?xml version="1.0"?>
<!DOCTYPE type
PUBLIC "-//AVALON/Component Type DTD Version 1.0//EN"
"http://jakarta.apache.org/avalon/dtds/meta/type_1_1.dtd" >
<!--
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.txt file.
@author Avalon Development Team
@version 1.0 12/03/2001
-->
<service>
<version>1.1</version>
<attributes>
<attribute key="urn:avalon:service.name" value="basic"/>
<attribute key="urn:avalon:service.description">
A demonstration service used within the scope of the
Avalon playground package for educational and unit
testing purposes.
</attribute>
</attributes>
</service>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>