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 2002/09/08 16:36:57 UTC
cvs commit: jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service DefaultServiceManagementContext.java InvalidPathException.java ServiceManagementContext.java UnknownServiceException.java
mcconnell 2002/09/08 07:36:57
Modified: assembly/src/etc project.mf
assembly/src/etc/activator server.xml
assembly/src/java/org/apache/excalibur/merlin/container
ContainerHelper.java
assembly/src/java/org/apache/excalibur/merlin/kernel
DefaultKernel.java
assembly/src/java/org/apache/excalibur/merlin/service
DefaultServiceManagementContext.java
InvalidPathException.java
ServiceManagementContext.java
UnknownServiceException.java
Log:
Updated service management resources to take URL based arguments instead of URIs.
Revision Changes Path
1.18 +0 -6 jakarta-avalon-excalibur/assembly/src/etc/project.mf
Index: project.mf
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/etc/project.mf,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- project.mf 7 Sep 2002 19:05:40 -0000 1.17
+++ project.mf 8 Sep 2002 14:36:56 -0000 1.18
@@ -43,9 +43,3 @@
Name: org/apache/excalibur/merlin/kernel/DefaultKernel.class
Avalon: Type
-Name: org/apache/excalibur/merlin/activation/DefaultServiceResolver.class
-Avalon: Type
-
-Name: org/apache/excalibur/merlin/activation/DefaultRemoteResourceFactory.class
-Avalon: Type
-
1.3 +1 -1 jakarta-avalon-excalibur/assembly/src/etc/activator/server.xml
Index: server.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/etc/activator/server.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- server.xml 7 Sep 2002 19:05:41 -0000 1.2
+++ server.xml 8 Sep 2002 14:36:56 -0000 1.3
@@ -63,7 +63,7 @@
</fileset>
</classpath>
- <component name="servant" class="org.apache.excalibur.playground.remote.TestServant">
+ <component name="servant" class="org.apache.excalibur.playground.remote.TestServant" activation="true">
<categories priority="DEBUG"/>
</component>
1.2 +11 -8 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ContainerHelper.java
Index: ContainerHelper.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ContainerHelper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ContainerHelper.java 7 Sep 2002 07:27:11 -0000 1.1
+++ ContainerHelper.java 8 Sep 2002 14:36:56 -0000 1.2
@@ -87,7 +87,7 @@
* container reference instances.
*
* @param manager the context type manager
- * @param logging the logging manager
+ * @param context the service management context
*/
public ContainerHelper(
ContainerManager manager,
@@ -102,7 +102,7 @@
*
* @param manager the context type manager
* @param lifestyles the lifestyle manager
- * @param context the service management context
+ * @param context the parent service management context
* @exception NullPointerException if the manager arguments is null
*/
public ContainerHelper(
@@ -161,6 +161,9 @@
final ContainerManager manager =
m_manager.createContainerManager( descriptor, classpath, m_lifestyles );
+ final ServiceManagementContext registry =
+ m_registry.createChild( name );
+
//
// populate the descriptor with component profiles
//
@@ -192,8 +195,7 @@
//
Map map = new Hashtable();
- ContainerHelper factory = new ContainerHelper(
- manager, m_registry.createChild( descriptor.getName() ) );
+ ContainerHelper factory = new ContainerHelper( manager, registry );
factory.enableLogging( getLogger().getChildLogger( descriptor.getName() ) );
Configuration[] containers = config.getChildren("container");
@@ -205,7 +207,7 @@
descriptor.addContainer( child );
map.put( child, resource );
}
- return createContainerResource( descriptor, manager, map );
+ return createContainerResource( descriptor, manager, map, registry );
}
catch( Throwable e )
@@ -218,7 +220,8 @@
private ContainerResource createContainerResource(
ContainerDescriptor descriptor,
ContainerManager manager,
- Map services ) throws Exception
+ Map services,
+ ServiceManagementContext registry ) throws Exception
{
//
// create the container context
@@ -228,7 +231,7 @@
context.put( Container.MANAGER_KEY, manager );
context.put( Container.DESCRIPTOR_KEY, descriptor );
context.put( Container.SERVICES_KEY, services );
- context.put( Container.REGISTRY_KEY, m_registry );
+ context.put( Container.REGISTRY_KEY, registry );
//
// assemble the descriptor to ensure that all dependecies are
1.49 +4 -31 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultKernel.java
Index: DefaultKernel.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultKernel.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- DefaultKernel.java 7 Sep 2002 07:27:11 -0000 1.48
+++ DefaultKernel.java 8 Sep 2002 14:36:56 -0000 1.49
@@ -187,11 +187,9 @@
*/
private String m_base;
- private ContainerManager m_parent;
-
private File m_baseDirectory;
- private ServiceManagementContext m_registry;
+ private DefaultServiceManagementContext m_registry;
//=======================================================================
// Contextualizable
@@ -299,33 +297,9 @@
// can access.
//
- if( classloader instanceof ContainerManager )
- {
- ContainerManager manager = (ContainerManager) classloader;
-
- m_base = manager.getPath().replace('/','.').substring(1) + "." + name;
- m_logger = getLoggingManager().getLoggerForCategory( m_base );
- m_localLogger = m_logger.getChildLogger("kernel");
-
- ContainerHelper factory = new ContainerHelper( manager, m_registry );
- factory.enableLogging( m_logger );
-
- ContainerResource resource = factory.build( config );
- m_container = (Container) resource.access();
-
- m_initialized = true;
- return;
- }
-
- //
- // Otherwise this is a full root kernel under which we need to establish
- // the singleton logging system, extension, etc.
- //
-
try
{
-
LoggingDescriptor logging =
m_creator.createLoggingDescriptor( m_config.getChild("logging"), name );
c_logging = new DefaultLoggerManager( logging, m_baseDirectory );
@@ -346,8 +320,7 @@
// Create the service management context.
//
- m_registry = new DefaultServiceManagementContext( null, "/" );
- URL.setURLStreamHandlerFactory( new ServiceURLFactory( domain, m_registry ) );
+ m_registry = new DefaultServiceManagementContext( domain );
//
// Set up the ThreadManager that the CommandManager uses
@@ -414,7 +387,7 @@
m_manager.contextualize( ctx );
m_manager.initialize();
- Thread.currentThread().setContextClassLoader( m_manager );
+ //Thread.currentThread().setContextClassLoader( m_manager );
getLogger().info("kernel established: " + name );
//
1.5 +48 -34 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/DefaultServiceManagementContext.java
Index: DefaultServiceManagementContext.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/DefaultServiceManagementContext.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DefaultServiceManagementContext.java 8 Sep 2002 10:46:41 -0000 1.4
+++ DefaultServiceManagementContext.java 8 Sep 2002 14:36:56 -0000 1.5
@@ -7,8 +7,8 @@
*/
package org.apache.excalibur.merlin.service;
-import java.net.URI;
-import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.MalformedURLException;
import java.util.Map;
import java.util.Hashtable;
import java.util.Iterator;
@@ -29,9 +29,9 @@
//=============================================================
/**
- * The context name.
+ * The context url.
*/
- private URI m_base;
+ private URL m_base;
/**
* A parent context.
@@ -60,37 +60,44 @@
* @param name the context name
* @exception NullPointerException if the supplied name is null
*/
+ public DefaultServiceManagementContext( final String domain )
+ throws NullPointerException, MalformedURLException
+ {
+ URL.setURLStreamHandlerFactory( new ServiceURLFactory( domain, this ) );
+ m_base = new URL("service", domain, -1, "/");
+ }
+
+ /**
+ * Creation of a new service management context.
+ *
+ * @param parent a possibly null parent context
+ * @param name the context name
+ * @exception NullPointerException if the supplied name is null
+ */
public DefaultServiceManagementContext( final ServiceManagementContext parent, final String name )
- throws NullPointerException, URISyntaxException
+ throws NullPointerException, MalformedURLException
{
if( name == null )
{
- throw new NullPointerException("name");
+ throw new NullPointerException( "name" );
+ }
+ if( parent == null )
+ {
+ throw new NullPointerException( "parent" );
}
m_parent = parent;
+ URL base = m_parent.getBase();
+ String path = base.getPath();
- if( parent == null )
+
+ if( name.endsWith("/") )
{
- if( name.endsWith("/") )
- {
- m_base = new URI( name );
- }
- else
- {
- m_base = new URI( name + "/" );
- }
+ m_base = new URL( base, path + name );
}
else
{
- if( name.endsWith("/") )
- {
- m_base = m_parent.getBase().resolve( name );
- }
- else
- {
- m_base = m_parent.getBase().resolve( name + "/" );
- }
+ m_base = new URL( base, path + name + "/" );
}
}
@@ -99,11 +106,11 @@
//=============================================================
/**
- * Returns the base context URI.
+ * Returns the base context URL.
*
- * @return the context uri
+ * @return the context url
*/
- public URI getBase()
+ public URL getBase()
{
return m_base;
}
@@ -114,10 +121,11 @@
* @param name the relative name
* @return the service context object
* @exception NullPointerException if the supplied name is null
- * @exception URISyntaxException if the name is invalid
+ * @exception MalformedURLException if the name is invalid
* @exception IllegalArgumentException if the name is already in use
*/
- public ServiceManagementContext createChild( String name ) throws URISyntaxException, IllegalArgumentException
+ public ServiceManagementContext createChild( String name )
+ throws MalformedURLException, IllegalArgumentException
{
if( name == null )
{
@@ -132,9 +140,7 @@
ServiceManagementContext context =
new DefaultServiceManagementContext( this, name );
-
m_children.put( name, context );
-
return context;
}
@@ -180,15 +186,22 @@
/**
* Select a set of service based on a supplied filter. A filter is
- * supplied in the form of a URI. Interpritation of URI path, query,
- * and frasgment are protocol dependent.
+ * supplied in the form of a URI String. Interpritation relative to URI path, query,
+ * and fragment are protocol dependent.
*
* @param uri the service uri
* @exception Exception is an install error occurs
*/
- public Resource locate( URI uri ) throws UnknownServiceException, InvalidPathException
+ public Resource locate( String uri ) throws UnknownServiceException, InvalidPathException
{
+ System.out.println("## uri: '" + uri + "'");
+
+ throw new UnsupportedOperationException();
+
+/*
+
URI path = m_base.relativize( uri );
+ System.out.println("## base: '" + m_base + "'");
System.out.println("## locating: '" + path + "'");
if( path.getPath().indexOf("/") > -1 )
{
@@ -222,6 +235,7 @@
final String error = "Could not locate the requested service.";
throw new UnknownServiceException( uri, error );
}
+*/
}
}
1.4 +9 -9 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/InvalidPathException.java
Index: InvalidPathException.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/InvalidPathException.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- InvalidPathException.java 8 Sep 2002 10:46:41 -0000 1.3
+++ InvalidPathException.java 8 Sep 2002 14:36:56 -0000 1.4
@@ -8,7 +8,7 @@
package org.apache.excalibur.merlin.service;
-import java.net.URI;
+import java.net.URL;
/**
* Exception to indicate that service URI is invalid.
@@ -19,25 +19,25 @@
public final class InvalidPathException
extends Exception
{
- private final URI m_path;
+ private final URL m_path;
/**
* Construct a new <code>InvalidPathException</code> instance.
*
- * @param path The supplied URI path.
+ * @param path The supplied URL path.
* @param message The detail message for this exception.
*/
- public InvalidPathException( final URI path, final String message )
+ public InvalidPathException( final URL path, final String message )
{
super( message );
m_path = path;
}
/**
- * Return the URI path from which the exception was raised.
- * @return the path URI
+ * Return the URL path from which the exception was raised.
+ * @return the path URL
*/
- public URI getPath()
+ public URL getPath()
{
return m_path;
}
@@ -48,7 +48,7 @@
*/
public String getMessage()
{
- return super.getMessage() + " from uri " + getPath();
+ return super.getMessage() + " from the url " + getPath();
}
}
1.4 +13 -11 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/ServiceManagementContext.java
Index: ServiceManagementContext.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/ServiceManagementContext.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ServiceManagementContext.java 8 Sep 2002 10:46:41 -0000 1.3
+++ ServiceManagementContext.java 8 Sep 2002 14:36:56 -0000 1.4
@@ -7,8 +7,8 @@
*/
package org.apache.excalibur.merlin.service;
-import java.net.URI;
-import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.MalformedURLException;
import org.apache.excalibur.merlin.model.Resource;
@@ -21,21 +21,22 @@
public interface ServiceManagementContext
{
/**
- * Returns the base context URI.
+ * Returns the base context URL.
*
- * @return the context uri
+ * @return the context url
*/
- public URI getBase();
+ public URL getBase();
/**
* Creation of a subsidiary service context.
*
* @param name the relative name
* @return the service context object
- * @exception URISyntaxException if the name is invalid
+ * @exception MalformedURLException if the name is invalid
* @exception IllegalArgumentException if the name is already in use
*/
- public ServiceManagementContext createChild( String name ) throws URISyntaxException, IllegalArgumentException;
+ public ServiceManagementContext createChild( String name )
+ throws MalformedURLException, IllegalArgumentException;
/**
* Bind a resource to the naming context.
@@ -51,13 +52,14 @@
/**
* Select a set of service based on a supplied filter. A filter is
- * supplied in the form of a URI. Interpritation of URI path, query,
- * and reference elements are protocol dependent.
+ * supplied in the form of a String. Interpritation of string follows
+ * normal URI semantics (path, query, and reference elements are protocol
+ * dependent).
*
* @param uri the service uri
* @exception Exception is an install error occurs
*/
- Resource locate( URI uri ) throws UnknownServiceException, InvalidPathException;
+ Resource locate( String uri ) throws UnknownServiceException, InvalidPathException;
}
1.4 +9 -9 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/UnknownServiceException.java
Index: UnknownServiceException.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/service/UnknownServiceException.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UnknownServiceException.java 8 Sep 2002 10:46:41 -0000 1.3
+++ UnknownServiceException.java 8 Sep 2002 14:36:56 -0000 1.4
@@ -7,7 +7,7 @@
*/
package org.apache.excalibur.merlin.service;
-import java.net.URI;
+import java.net.URL;
/**
* Exception to indicate that a requested service is unknown.
@@ -18,25 +18,25 @@
public final class UnknownServiceException
extends Exception
{
- private final URI m_path;
+ private final URL m_path;
/**
* Construct a new <code>UnknownServiceException</code> instance.
*
- * @param path The supplied URI path.
+ * @param path The supplied URL path.
* @param message The detail message for this exception.
*/
- public UnknownServiceException( final URI path, final String message )
+ public UnknownServiceException( final URL path, final String message )
{
super( message );
m_path = path;
}
/**
- * Return the URI path from which the exception was raised.
- * @return the path URI
+ * Return the URL path from which the exception was raised.
+ * @return the path URL
*/
- public URI getPath()
+ public URL getPath()
{
return m_path;
}
@@ -47,7 +47,7 @@
*/
public String getMessage()
{
- return super.getMessage() + " from uri " + getPath();
+ return super.getMessage() + " from the url " + getPath();
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>