Skip to Content.
Sympa Menu

notify-dpml - r926 - in trunk/main: central/src/docs/metro/runtime/controller depot/library/common/etc/test/dpml metro metro/exec/src/main/net/dpml/metro/exec metro/model/src/main/net/dpml/metro/model metro/part/api/src/main/net/dpml/part metro/part/api/src/main/net/dpml/part/local metro/part/api/src/main/net/dpml/part/remote metro/part/content/src/main/net/dpml/part/content metro/part/test/src/test/net/dpml/test/part metro/runtime/src/main/net/dpml/metro/runtime metro/station/api/src/main/net/dpml/station metro/station/console/src/main/net/dpml/station/console metro/station/server/src/main/net/dpml/station/server metro/test/src/main/net/dpml/test/app metro/test/src/main/net/dpml/test/composite metro/test/src/test/net/dpml/metro/runtime/test planet/http/demo/src/test/net/dpml/http

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: mcconnell at BerliOS <mcconnell AT mail.berlios.de>
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: r926 - in trunk/main: central/src/docs/metro/runtime/controller depot/library/common/etc/test/dpml metro metro/exec/src/main/net/dpml/metro/exec metro/model/src/main/net/dpml/metro/model metro/part/api/src/main/net/dpml/part metro/part/api/src/main/net/dpml/part/local metro/part/api/src/main/net/dpml/part/remote metro/part/content/src/main/net/dpml/part/content metro/part/test/src/test/net/dpml/test/part metro/runtime/src/main/net/dpml/metro/runtime metro/station/api/src/main/net/dpml/station metro/station/console/src/main/net/dpml/station/console metro/station/server/src/main/net/dpml/station/server metro/test/src/main/net/dpml/test/app metro/test/src/main/net/dpml/test/composite metro/test/src/test/net/dpml/metro/runtime/test planet/http/demo/src/test/net/dpml/http
  • Date: Sun, 15 Jan 2006 21:01:50 +0100

Author: mcconnell
Date: 2006-01-15 21:01:18 +0100 (Sun, 15 Jan 2006)
New Revision: 926

Added:
trunk/main/metro/part/api/src/main/net/dpml/part/local/Controller.java

trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContext.java

trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextEvent.java

trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextListener.java
trunk/main/metro/part/api/src/main/net/dpml/part/local/Manager.java
trunk/main/metro/part/api/src/main/net/dpml/part/local/PartManager.java
trunk/main/metro/part/api/src/main/net/dpml/part/local/Parts.java

trunk/main/metro/part/api/src/main/net/dpml/part/local/UnknownPartException.java
trunk/main/metro/part/api/src/main/net/dpml/part/local/package.html
trunk/main/metro/part/api/src/main/net/dpml/part/remote/Component.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextEvent.java

trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextListener.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/Model.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelEvent.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelException.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelListener.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/Provider.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/Service.java

trunk/main/metro/part/api/src/main/net/dpml/part/remote/ServiceNotFoundException.java
trunk/main/metro/part/api/src/main/net/dpml/part/remote/package.html

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ControllerNotFoundException.java
Removed:
trunk/main/metro/part/api/src/main/net/dpml/part/Component.java
trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java
trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java
trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java

trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java

trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java

trunk/main/metro/part/api/src/main/net/dpml/part/ControllerNotFoundException.java
trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java
trunk/main/metro/part/api/src/main/net/dpml/part/Model.java
trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java
trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java
trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java
trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java
trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java
trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java
trunk/main/metro/part/api/src/main/net/dpml/part/Service.java

trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java

trunk/main/metro/part/api/src/main/net/dpml/part/UnsupportedPartTypeException.java
Modified:
trunk/main/central/src/docs/metro/runtime/controller/index.xml
trunk/main/depot/library/common/etc/test/dpml/module.xml
trunk/main/metro/exec/src/main/net/dpml/metro/exec/AbstractAdapter.java
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ApplicationHandler.java
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ComponentAdapter.java
trunk/main/metro/model/src/main/net/dpml/metro/model/ComponentModel.java

trunk/main/metro/model/src/main/net/dpml/metro/model/ValidationException.java
trunk/main/metro/module.xml
trunk/main/metro/part/api/src/main/net/dpml/part/Directive.java

trunk/main/metro/part/content/src/main/net/dpml/part/content/PartContentHandler.java

trunk/main/metro/part/test/src/test/net/dpml/test/part/PartLoadingTestCase.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentHandler.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionContext.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultComponentModel.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultContextModel.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultProvider.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultService.java

trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsInvocationHandler.java
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsManager.java
trunk/main/metro/station/api/src/main/net/dpml/station/Application.java
trunk/main/metro/station/api/src/main/net/dpml/station/Callback.java

trunk/main/metro/station/console/src/main/net/dpml/station/console/StationPlugin.java

trunk/main/metro/station/server/src/main/net/dpml/station/server/RemoteApplication.java
trunk/main/metro/test/src/main/net/dpml/test/app/Demo.java
trunk/main/metro/test/src/main/net/dpml/test/composite/PartsComponent.java
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/AppTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CategoriesTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentHandlerTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentModelTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CompositeTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ConfigTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextModelTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/DisposalTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/HardCollectionPolicyTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/LifecycleTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/NullTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ObserverTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ParamsTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/PartsTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ProviderTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/SingletonProviderTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/StateTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/TransientProviderTestCase.java

trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/WeakCollectionPolicyTestCase.java
trunk/main/planet/http/demo/src/test/net/dpml/http/HttpTestCase.java
Log:
first pass on local versus remote separation

Modified: trunk/main/central/src/docs/metro/runtime/controller/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/runtime/controller/index.xml
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/central/src/docs/metro/runtime/controller/index.xml
2006-01-15 20:01:18 UTC (rev 926)
@@ -19,7 +19,7 @@
</p>

<p>A reference to the default controller is resolved using the
- <tt>net.dpml.part.Controller</tt> interface:</p>
+ <tt>net.dpml.part.local.Controller</tt> interface:</p>

<pre>Controller controller = <font
color="darkred">Controller.STANDARD</font>;</pre>


Modified: trunk/main/depot/library/common/etc/test/dpml/module.xml
===================================================================
--- trunk/main/depot/library/common/etc/test/dpml/module.xml 2006-01-15
19:09:57 UTC (rev 925)
+++ trunk/main/depot/library/common/etc/test/dpml/module.xml 2006-01-15
20:01:18 UTC (rev 926)
@@ -151,7 +151,7 @@
<types>
<type id="plugin" alias="true">
<property name="project.plugin.class"
- value="net.dpml.part.PartManager"/>
+ value="net.dpml.part.local.PartManager"/>
</type>
<type id="jar"/>
</types>

Modified:
trunk/main/metro/exec/src/main/net/dpml/metro/exec/AbstractAdapter.java
===================================================================
--- trunk/main/metro/exec/src/main/net/dpml/metro/exec/AbstractAdapter.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/exec/src/main/net/dpml/metro/exec/AbstractAdapter.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -22,11 +22,11 @@
import java.rmi.server.UnicastRemoteObject;
import java.lang.reflect.InvocationTargetException;

-import net.dpml.part.Component;
+import net.dpml.part.remote.Component;
import net.dpml.part.ControlException;
-import net.dpml.part.Provider;
-import net.dpml.part.Service;
-import net.dpml.part.ServiceNotFoundException;
+import net.dpml.part.remote.Provider;
+import net.dpml.part.remote.Service;
+import net.dpml.part.remote.ServiceNotFoundException;

import net.dpml.transit.Logger;


Modified:
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ApplicationHandler.java
===================================================================
---
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ApplicationHandler.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ApplicationHandler.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -26,7 +26,7 @@
import java.util.Iterator;
import java.util.Set;

-import net.dpml.part.Component;
+import net.dpml.part.remote.Component;

import net.dpml.station.Station;
import net.dpml.station.Callback;

Modified:
trunk/main/metro/exec/src/main/net/dpml/metro/exec/ComponentAdapter.java
===================================================================
--- trunk/main/metro/exec/src/main/net/dpml/metro/exec/ComponentAdapter.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/exec/src/main/net/dpml/metro/exec/ComponentAdapter.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -32,13 +32,13 @@
import net.dpml.metro.info.EntryDescriptor;
import net.dpml.metro.data.ValueDirective;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
import net.dpml.part.ControlException;
-import net.dpml.part.Provider;
-import net.dpml.part.Model;
-import net.dpml.part.Service;
-import net.dpml.part.ServiceNotFoundException;
+import net.dpml.part.remote.Provider;
+import net.dpml.part.remote.Model;
+import net.dpml.part.remote.Service;
+import net.dpml.part.remote.ServiceNotFoundException;
import net.dpml.metro.model.MutableComponentModel;
import net.dpml.metro.model.MutableContextModel;


Modified:
trunk/main/metro/model/src/main/net/dpml/metro/model/ComponentModel.java
===================================================================
--- trunk/main/metro/model/src/main/net/dpml/metro/model/ComponentModel.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/model/src/main/net/dpml/metro/model/ComponentModel.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -25,8 +25,9 @@
import net.dpml.metro.info.CollectionPolicy;
import net.dpml.metro.data.ClassLoaderDirective;
import net.dpml.metro.data.CategoryDirective;
-import net.dpml.part.Model;

+import net.dpml.part.remote.Model;
+
import net.dpml.configuration.Configuration;

import net.dpml.parameters.Parameters;

Modified:
trunk/main/metro/model/src/main/net/dpml/metro/model/ValidationException.java
===================================================================
---
trunk/main/metro/model/src/main/net/dpml/metro/model/ValidationException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/model/src/main/net/dpml/metro/model/ValidationException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -21,7 +21,7 @@
import java.io.Serializable;
import java.net.URI;

-import net.dpml.part.ModelException;
+import net.dpml.part.remote.ModelException;

/**
* Exception that describes a series of validation issues.

Modified: trunk/main/metro/module.xml
===================================================================
--- trunk/main/metro/module.xml 2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/module.xml 2006-01-15 20:01:18 UTC (rev 926)
@@ -30,7 +30,7 @@
<!--
<type id="plugin" alias="true">
<property name="project.plugin.class"
- value="net.dpml.part.PartManager"/>
+ value="net.dpml.part.local.PartManager"/>
</type>
-->
<type id="jar"/>

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Component.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Component.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Component.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * The Component represents a remote interface to a runtime component type.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Component extends Remote
-{
- /**
- * Return a handler capable of supporting the requested service.
- * @param service the service descriptor
- * @return a component matching the requested service
- * @exception ServiceNotFoundException if no component could found
- * @exception RemoteException if a remote I/O occurs
- */
- Component lookup( Service service ) throws ServiceNotFoundException,
RemoteException;
-
- /**
- * Return true if this handler is a candidate for the supplied service
definition.
- * @param service the service descriptor
- * @return true if this is a candidate
- * @exception RemoteException if a remote exception occurs
- */
- boolean isaCandidate( Service service ) throws RemoteException;
-
- /**
- * Initiate activation of a runtime handler.
- * @exception ControlException if an activation error occurs
- * @exception InvocationTargetException if the component declares
activation on startup
- * and a implementation source exception occured
- * @exception RemoteException if a remote exception occurs
- */
- void activate() throws ControlException, InvocationTargetException,
RemoteException;
-
- /**
- * Returns the active status of the handler.
- * @return TRUE if the handler has been activated otherwise FALSE
- * @exception RemoteException if a remote exception occurs
- */
- boolean isActive() throws RemoteException;
-
- /**
- * Return the number of instances currently under management.
- * @return the instance count.
- * @exception RemoteException if a remote exception occurs
- */
- int size() throws RemoteException;
-
- /**
- * Return a reference to a instance of the component handled by the
handler.
- * @return the instance holder
- * @exception InvocationTargetException if the component instantiation
process
- * is on demand and an target invocation error occurs
- * @exception ControlException if the component could not be established
due to a controller
- * related error
- * @exception RemoteException if a remote exception occurs
- */
- Provider getProvider() throws ControlException,
InvocationTargetException, RemoteException;
-
- /**
- * Deactivate the handler.
- * @exception RemoteException if a remote exception occurs
- */
- void deactivate() throws RemoteException;
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,93 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.util.EventObject;
-
-/**
- * Event triggered as a result of change to the value of a context entry.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class ContextEvent extends EventObject
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private final String m_key;
- private final Object m_from;
- private final Object m_to;
-
- /**
- * Construct a new <code>ContextEvent</code>.
- *
- * @param source the source provider
- * @param key the context entry key
- * @param from the original value
- * @param to the new value
- */
- public ContextEvent( final Provider source, String key, Object from,
Object to )
- {
- super( source );
-
- m_key = key;
- m_from = from;
- m_to = to;
- }
-
- /**
- * Return the feature name.
- * @return the name of the modified feature
- */
- public String getKey()
- {
- return m_key;
- }
-
- /**
- * Return the old value.
- * @return the original value
- */
- public Object getOldValue()
- {
- return m_from;
- }
-
- /**
- * Return the new value.
- * @return the new current value
- */
- public Object getNewValue()
- {
- return m_to;
- }
-
- /**
- * Return the component model that initiating the event.
- * @return the source model
- */
- public Provider getProvider()
- {
- return (Provider) super.getSource();
- }
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.util.EventListener;
-
-/**
- * Interface implementated by local listeners to context entry changes.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface ContextListener extends EventListener, Remote
-{
- /**
- * Notify the listener of a change to a context entry.
- *
- * @param event the context change event
- * @exception RemoteException if a remote transport error occurs
- */
- void entryChanged( final ContextEvent event ) throws RemoteException;
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.io.IOException;
-import java.net.URI;
-
-/**
- * The Controller interface defines the a contract for an object that
provides generalized
- * part loading.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Controller
-{
- /**
- * Static default controller.
- */
- static final Controller STANDARD = PartManager.CONTROLLER;
-
- /**
- * Returns the identity of the object implementing this interface.
- * @return a uri identifying the object
- */
- URI getURI();
-
- /**
- * Load a directive from serialized form.
- *
- * @param uri the directive uri
- * @return the directive
- * @exception ControlException if a direction construction error ocurrs
- * @exception IOException if an I/O error occurs
- */
- Directive loadDirective( URI uri ) throws ControlException, IOException;
-
- /**
- * Create and return a new management context using the supplied part
- * as the inital management state.
- *
- * @param directive the part data structure
- * @return the management context
- * @exception ControlException if a part related error occurs
- */
- Model createModel( Directive directive ) throws ControlException;
-
- /**
- * Create and return a new management context using the supplied
directive uri.
- *
- * @param uri a uri identifying a deployment directive
- * @return the management context model
- * @exception ControlException if an error occurs
- * @exception IOException if an I/O error occurs
- */
- Model createModel( URI uri ) throws ControlException, IOException;
-
- /**
- * Create and return a remote reference to a component handler.
- * @param uri a uri identifying a deployment directive
- * @return the component handler
- * @exception Exception if an error occurs
- */
- Component createComponent( URI uri ) throws Exception;
-
- /**
- * Create and return a remote reference to a component handler.
- * @param model the management context
- * @return the component handler
- * @exception Exception if a component construction error occurs
- */
- Component createComponent( Model model ) throws Exception;
-
- /**
- * Create a classloader using the supplied anchor classloader and
- * component directive.
- *
- * @param anchor the anchor classloader
- * @param model a component model
- * @return the classloader
- * @exception ControlException if a part related error occurs
- */
- ClassLoader createClassLoader( ClassLoader anchor, Model model ) throws
ControlException;
-
-}

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.io.File;
-
-import net.dpml.transit.Logger;
-
-/**
- * The ControllerContext declares the runtime context that a controller
- * is established within. Controller implementations will typically receive

- * be bsupplied with a context object as a constructor argument.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface ControllerContext
-{
- /**
- * Return the assigned logging channel.
- *
- * @return the logging channel
- */
- Logger getLogger();
-
- /**
- * Return the root working directory.
- *
- * @return directory representing the root of the working directory
hierachy
- */
- File getWorkingDirectory();
-
- /**
- * Return the root temporary directory.
- *
- * @return directory representing the root of the temporary directory
hierachy.
- */
- File getTempDirectory();
-
- /**
- * Add the supplied controller context listener to the controller
context. A
- * controller implementation should not maintain strong references to
supplied
- * listeners.
- *
- * @param listener the controller context listener to add
- */
- void addControllerContextListener( ControllerContextListener listener );
-
- /**
- * Remove the supplied controller context listener from the controller
context.
- *
- * @param listener the controller context listener to remove
- */
- void removeControllerContextListener( ControllerContextListener listener
);
-
-}

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.io.File;
-import java.util.EventObject;
-
-/**
- * The ControllerContextEvent is an abstract base class for working and
- * temporty directory change notification events.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public abstract class ControllerContextEvent extends EventObject
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private ControllerContext m_context;
- private File m_old;
- private File m_new;
-
- /**
- * Creation of a new controller context event object.
- *
- * @param source the controller context initiating the event
- * @param oldDir the original directory value
- * @param newDir the new directory value
- */
- public ControllerContextEvent( ControllerContext source, File oldDir,
File newDir )
- {
- super( source );
- m_context = source;
- m_old = oldDir;
- m_new = newDir;
- }
-
- /**
- * Return the controller context that this event is related to.
- * @return the controller context
- */
- public ControllerContext getContext()
- {
- return m_context;
- }
-
- /**
- * Return the old directory value.
- * @return the directory
- */
- public File getOldDirectory()
- {
- return m_old;
- }
-
- /**
- * Return the new directory value.
- * @return the directory
- */
- public File getNewDirectory()
- {
- return m_new;
- }
-}

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.util.EventListener;
-
-/**
- * An interface implementation by controller concerned with or responsible
- * for handling changes in a local runtime directory context.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface ControllerContextListener extends EventListener
-{
- /**
- * Notify the listener that the working directory has changed.
- *
- * @param event the change event
- */
- void workingDirectoryChanged( ControllerContextEvent event );
-
- /**
- * Notify the listener that the temporary directory has changed.
- *
- * @param event the change event
- */
- void tempDirectoryChanged( ControllerContextEvent event );
-
-}

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerNotFoundException.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerNotFoundException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerNotFoundException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.net.URI;
-
-/**
- * Exception thrown when an attempt is made to reference an unknown
- * or unresolvable controller.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class ControllerNotFoundException extends ControlException
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private final URI m_target;
-
- /**
- * Creation of a new <tt>ControllerNotFoundException</tt>.
- * @param uri the uri of the controller raising the exception
- * @param target the uri of the target controller
- */
- public ControllerNotFoundException( URI uri, URI target )
- {
- this( uri, target, null );
- }
-
- /**
- * Creation of a new <tt>ControllerNotFoundException</tt>.
- * @param uri the uri of the controller raising the exception
- * @param target the uri of the target controller
- * @param cause the causal exception
- */
- public ControllerNotFoundException( URI uri, URI target, Throwable cause
)
- {
- super( uri, createMessage( uri ), cause );
- m_target = target;
- }
-
- /**
- * Return the uri of the target controller.
- * @return the target controller uri
- */
- public URI getTargetURI()
- {
- return m_target;
- }
-
- private static String createMessage( URI target )
- {
- return "Unable to locate the target controller [" + target + "].";
- }
-}
-

Modified: trunk/main/metro/part/api/src/main/net/dpml/part/Directive.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Directive.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Directive.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -18,12 +18,14 @@

package net.dpml.part;

+import java.io.Serializable;
+
/**
* Interface implemented by top-level directives.
*
* @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
* @version @PROJECT-VERSION@
*/
-public interface Directive
+public interface Directive extends Serializable
{
}

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,50 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Map;
-
-/**
- * Local interface through which a component implementation may
- * interact with subsidary parts.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Manager
-{
- /**
- * Return a mutible context map.
- *
- * @return the context map
- */
- Map getContextMap();
-
- /**
- * Return a reference to a managed provider.
- * @return the service provider
- * @exception InvocationTargetException if the component instantiation
process
- * is on demand and an target invocation error occurs
- * @exception ControlException if the component could not be established
due to a controller
- * related error
- */
- Provider getProvider() throws ControlException,
InvocationTargetException;
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Model.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Model.java 2006-01-15
19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Model.java 2006-01-15
20:01:18 UTC (rev 926)
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.RemoteException;
-
-/**
- * The Model interfaces is used mark a object as manageable context used in
- * the creation of a runtime handler.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Model
-{
- /**
- * The constant partition separator.
- */
- final String PARTITION_SEPARATOR = "/";
-
- /**
- * Return the path identifying the model. A path commences with the
- * PARTITION_SEPARATOR character and is followed by a model name. If the
- * model exposed nested models, the path is composed of model names
- * seaprated by the PARTITION_SEPARATOR as in "/main/web/handler".
- *
- * @return the context path
- * @exception RemoteException if a remote exception occurs
- */
- String getContextPath() throws RemoteException;
-
- /**
- * Get the activation policy. If the activation policy is STARTUP, an
implementation
- * a handler shall immidiately activation a runtime instance. If the
policy is on DEMAND
- * an implementation shall defer activiation until an explicit request is
received. If
- * the policy if SYSTEM activation may occur at the discretion of an
implementation.
- *
- * @return the activation policy
- * @exception RemoteException if a remote exception occurs
- * @see ActivationPolicy#SYSTEM
- * @see ActivationPolicy#STARTUP
- * @see ActivationPolicy#DEMAND
- */
- ActivationPolicy getActivationPolicy() throws RemoteException;
-
- /**
- * Add a listener to the component model.
- * @param listener the model listener
- * @exception RemoteException if a remote exception occurs
- */
- void addModelListener( ModelListener listener ) throws RemoteException;
-
- /**
- * Remove a listener from the component model.
- * @param listener the model listener
- * @exception RemoteException if a remote exception occurs
- */
- void removeModelListener( ModelListener listener ) throws
RemoteException;
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,93 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.util.EventObject;
-
-/**
- * Event triggered as a result of a model change.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class ModelEvent extends EventObject
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private final String m_feature;
- private final Object m_from;
- private final Object m_to;
-
- /**
- * Construct a new <code>ModelEvent</code>.
- *
- * @param source the source component model
- * @param feature the name of the model feature
- * @param from the original value
- * @param to the new value
- */
- public ModelEvent( final Model source, String feature, Object from,
Object to )
- {
- super( source );
-
- m_feature = feature;
- m_from = from;
- m_to = to;
- }
-
- /**
- * Return the feature name.
- * @return the name of the modified feature
- */
- public String getFeature()
- {
- return m_feature;
- }
-
- /**
- * Return the old value.
- * @return the original value
- */
- public Object getOldValue()
- {
- return m_from;
- }
-
- /**
- * Return the new value.
- * @return the new current value
- */
- public Object getNewValue()
- {
- return m_to;
- }
-
- /**
- * Return the component model that initiating the event.
- * @return the source model
- */
- public Model getSourceModel()
- {
- return (Model) super.getSource();
- }
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.net.URI;
-
-/**
- * General exception thrown by a context model.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class ModelException extends ControlException
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- /**
- * Creation of a new <tt>ModelException</tt>.
- * @param uri the controller uri
- * @param message the exception message
- */
- public ModelException( URI uri, String message )
- {
- super( uri, message );
- }
-
- /**
- * Creation of a new <tt>ModelException</tt>.
- * @param uri the controller uri
- * @param message the exception message
- * @param cause the causal exception
- */
- public ModelException( URI uri, String message, Throwable cause )
- {
- super( uri, message, cause );
- }
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.util.EventListener;
-
-/**
- * Interface implementated by remote listeners to model change events.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface ModelListener extends EventListener, Remote
-{
- /**
- * Notify the listener of a model change.
- *
- * @param event the model change event
- * @exception RemoteException if a remote transport error occurs
- */
- void modelChanged( final ModelEvent event ) throws RemoteException;
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,103 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.net.URI;
-import java.lang.reflect.Constructor;
-import java.util.Date;
-
-import net.dpml.transit.Transit;
-import net.dpml.transit.Logger;
-import net.dpml.transit.monitor.LoggingAdapter;
-import net.dpml.transit.Repository;
-
-/**
- * Utility class through which the default controller is established. The
- * default controller is loaded using the System property
"dpml.part.controller.uri".
- * If undefined the default controller implementation plugin
"@PART-HANDLER-URI@"
- * will be selected.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class PartManager // extends ContentHandler
-{
- /**
- * Static reference to the default controller.
- */
- public static final Controller CONTROLLER = newController( new
LoggingAdapter( "" ) );
-
- /**
- * Construct a controller.
- * @param logger the assigned logging channel
- * @return the controller
- */
- public static Controller newController( final Logger logger )
- {
- if( null == logger )
- {
- throw new NullPointerException( "logger" );
- }
- try
- {
- long now = new Date().getTime();
- ClassLoader classloader = PartManager.class.getClassLoader();
- URI uri = getControllerURI();
- Repository repository = Transit.getInstance().getRepository();
- Class c = repository.getPluginClass( classloader, uri );
- Constructor constructor = c.getConstructor( new
Class[]{Logger.class} );
- Controller handler = (Controller) constructor.newInstance( new
Object[]{logger} );
- return handler;
- }
- catch( Throwable e )
- {
- final String error =
- "Internal error while attempting to establish the default part
handler.";
- throw new RuntimeException( error, e );
- }
- }
-
- private final Logger m_logger;
- private final Controller m_handler;
-
- /**
- * Creation of a new <tt>PartManager</tt>.
- * @param logger the assigned logging channel
- */
- public PartManager( Logger logger )
- {
- m_logger = logger;
- m_handler = newController( logger );
- }
-
- /**
- * Return the default part controller.
- * @return the part controller
- */
- public Controller getController()
- {
- return m_handler;
- }
-
- private static URI getControllerURI() throws Exception
- {
- String spec = System.getProperty( "dpml.part.controller.uri",
"@PART-HANDLER-URI@" );
- return new URI( spec );
- }
-}

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java 2006-01-15
19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java 2006-01-15
20:01:18 UTC (rev 926)
@@ -1,61 +0,0 @@
-/*
- * Copyright 2005 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-/**
- * Local interface through which a component implementation may
- * interact with subsidary parts.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Parts
-{
- /**
- * Return the array of keys used to idenetity internal parts.
- * @return the part key array
- */
- String[] getKeys();
-
- /**
- * Return a component manager.
- * @param key the internal part key
- * @return the local component manager
- * @exception UnknownPartException the key is not recognized
- */
- Manager getManager( String key ) throws UnknownPartException;
-
- /**
- * Return the commissioned state of the part collection.
- * @return true if commissioned else false
- */
- boolean isCommissioned();
-
- /**
- * Initiate the oprdered activation of all internal parts.
- * @exception ControlException if an activation error occurs
- */
- void commission() throws ControlException;
-
- /**
- * Initiate deactivation of all internal parts.
- */
- void decommission();
-}
-

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,96 +0,0 @@
-/*
- * Copyright 2004 Stephen J. McConnell.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.lang.reflect.InvocationTargetException;
-
-import net.dpml.state.State;
-import net.dpml.state.StateListener;
-import net.dpml.state.UnknownOperationException;
-import net.dpml.state.UnknownTransitionException;
-
-/**
- * Provider holder.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Provider extends Remote
-{
- //-------------------------------------------------------------------
- // implementation
- //-------------------------------------------------------------------
-
- /**
- * Returns the current state of the control.
- * @return the current runtime state
- * @exception RemoteException if a remote I/O error occurs
- */
- State getState() throws RemoteException;
-
- /**
- * Add a state listener to the control.
- * @param listener the state listener
- * @exception RemoteException if a remote I/O error occurs
- */
- void addStateListener( StateListener listener ) throws RemoteException;
-
- /**
- * Remove a state listener from the control.
- * @param listener the state listener
- * @exception RemoteException if a remote I/O error occurs
- */
- void removeStateListener( StateListener listener ) throws
RemoteException;
-
- /**
- * Return the runtime value associated with this instance.
- * @param isolate if TRUE the value returned is a proxy exposing the
- * service interfaces declared by the component type otherwise
- * the instance value is returned.
- * @return the value
- * @exception RemoteException if a remote I/O error occurs
- */
- Object getValue( boolean isolate ) throws RemoteException;
-
- /**
- * Apply a transition to the instance.
- * @param key the transition name
- * @return the state established as a result of applying the transition
- * @exception UnknownTransitionException if the supplied key does not map
to an available transition
- * @exception InvocationTargetException if an invocation error occurs
- * @exception RemoteException if a remote I/O error occurs
- */
- State apply( String key )
- throws UnknownTransitionException, InvocationTargetException,
RemoteException;
-
- /**
- * Invoke an operation on the instance.
- * @param name the operation name
- * @param args operation arguments
- * @return the result of the operation invocation
- * @exception UnknownOperationException if the supplied key does not map
to an available operation
- * @exception InvocationTargetException if an invocation error occurs
- * @exception RemoteException if a remote I/O error occurs
- */
- Object exec( String name, Object[] args )
- throws UnknownOperationException, InvocationTargetException,
RemoteException;
-
-}

Deleted: trunk/main/metro/part/api/src/main/net/dpml/part/Service.java
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Service.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/Service.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-
-/**
- * The Component interface is implemented by objects that handle the runtime
- * state of a component instance.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public interface Service extends Remote
-{
- /**
- * Return the service class.
- * @return the service class
- * @exception RemoteException if a remoting I/O error occurs
- */
- Class getServiceClass() throws RemoteException;
-
- /**
- * Return the service version.
- * @return the version
- * @exception RemoteException if a remoting I/O error occurs
- */
- Version getVersion() throws RemoteException;
-
-}
-

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.net.URI;
-
-/**
- * Exception thrown by a handler in response to a request for an unknown
service.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class ServiceNotFoundException extends ControlException
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- /**
- * Creation of a new <tt>ServiceNotFoundException</tt>.
- * @param uri the controller uri
- * @param classname the service classname
- */
- public ServiceNotFoundException( URI uri, String classname )
- {
- super( uri, classname );
- }
-}
-

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-/**
- * Exception thrown when a component request an unknown part.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class UnknownPartException extends IllegalArgumentException
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private String m_type;
-
- /**
- * Creation of a new <tt>UnknownPartException</tt>.
- * @param key the part key
- */
- public UnknownPartException( String key )
- {
- super( key );
- }
-}
-
-

Deleted:
trunk/main/metro/part/api/src/main/net/dpml/part/UnsupportedPartTypeException.java
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/UnsupportedPartTypeException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/UnsupportedPartTypeException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2005 Stephen J. McConnell
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.dpml.part;
-
-import java.net.URI;
-
-/**
- * Exception thrown when an strategy handler attempts to handle an
- * incompatible type.
- *
- * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
- * @version @PROJECT-VERSION@
- */
-public class UnsupportedPartTypeException extends ControlRuntimeException
-{
- /**
- * Serial version identifier.
- */
- static final long serialVersionUID = 1L;
-
- private String m_type;
-
- /**
- * Creation of a new <tt>UnsupportedPartTypeException</tt>.
- * @param uri the uri identifying the part controller
- * @param classname the unsupport part classname
- * @param message the exception message
- */
- public UnsupportedPartTypeException( URI uri, String classname, String
message )
- {
- super( uri, message );
- m_type = classname;
- }
-
- /**
- * Return the unsupported part classname.
- * @return the classname
- */
- public String getClassname()
- {
- return m_type;
- }
-}
-
-

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/Controller.java (from
rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Controller.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/local/Controller.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.io.IOException;
+import java.net.URI;
+
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Model;
+
+import net.dpml.part.Directive;
+import net.dpml.part.ControlException;
+
+/**
+ * The Controller interface defines the a contract for an object that
provides generalized
+ * part loading.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Controller
+{
+ /**
+ * Static default controller.
+ */
+ static final Controller STANDARD = PartManager.CONTROLLER;
+
+ /**
+ * Returns the identity of the object implementing this interface.
+ * @return a uri identifying the object
+ */
+ URI getURI();
+
+ /**
+ * Load a directive from serialized form.
+ *
+ * @param uri the directive uri
+ * @return the directive
+ * @exception ControlException if a direction construction error ocurrs
+ * @exception IOException if an I/O error occurs
+ */
+ Directive loadDirective( URI uri ) throws ControlException, IOException;
+
+ /**
+ * Create and return a new management context using the supplied part
+ * as the inital management state.
+ *
+ * @param directive the part data structure
+ * @return the management context
+ * @exception ControlException if a part related error occurs
+ */
+ Model createModel( Directive directive ) throws ControlException;
+
+ /**
+ * Create and return a new management context using the supplied
directive uri.
+ *
+ * @param uri a uri identifying a deployment directive
+ * @return the management context model
+ * @exception ControlException if an error occurs
+ * @exception IOException if an I/O error occurs
+ */
+ Model createModel( URI uri ) throws ControlException, IOException;
+
+ /**
+ * Create and return a remote reference to a component handler.
+ * @param uri a uri identifying a deployment directive
+ * @return the component handler
+ * @exception Exception if an error occurs
+ */
+ Component createComponent( URI uri ) throws Exception;
+
+ /**
+ * Create and return a remote reference to a component handler.
+ * @param model the management context
+ * @return the component handler
+ * @exception Exception if a component construction error occurs
+ */
+ Component createComponent( Model model ) throws Exception;
+
+ /**
+ * Create a classloader using the supplied anchor classloader and
+ * component directive.
+ *
+ * @param anchor the anchor classloader
+ * @param model a component model
+ * @return the classloader
+ * @exception ControlException if a part related error occurs
+ */
+ ClassLoader createClassLoader( ClassLoader anchor, Model model ) throws
ControlException;
+
+}

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContext.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContext.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContext.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.io.File;
+
+import net.dpml.transit.Logger;
+
+/**
+ * The ControllerContext declares the runtime context that a controller
+ * is established within. Controller implementations will typically receive

+ * be bsupplied with a context object as a constructor argument.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface ControllerContext
+{
+ /**
+ * Return the assigned logging channel.
+ *
+ * @return the logging channel
+ */
+ Logger getLogger();
+
+ /**
+ * Return the root working directory.
+ *
+ * @return directory representing the root of the working directory
hierachy
+ */
+ File getWorkingDirectory();
+
+ /**
+ * Return the root temporary directory.
+ *
+ * @return directory representing the root of the temporary directory
hierachy.
+ */
+ File getTempDirectory();
+
+ /**
+ * Add the supplied controller context listener to the controller
context. A
+ * controller implementation should not maintain strong references to
supplied
+ * listeners.
+ *
+ * @param listener the controller context listener to add
+ */
+ void addControllerContextListener( ControllerContextListener listener );
+
+ /**
+ * Remove the supplied controller context listener from the controller
context.
+ *
+ * @param listener the controller context listener to remove
+ */
+ void removeControllerContextListener( ControllerContextListener listener
);
+
+}

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextEvent.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java)
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextEvent.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.io.File;
+import java.util.EventObject;
+
+/**
+ * The ControllerContextEvent is an abstract base class for working and
+ * temporty directory change notification events.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public abstract class ControllerContextEvent extends EventObject
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ private ControllerContext m_context;
+ private File m_old;
+ private File m_new;
+
+ /**
+ * Creation of a new controller context event object.
+ *
+ * @param source the controller context initiating the event
+ * @param oldDir the original directory value
+ * @param newDir the new directory value
+ */
+ public ControllerContextEvent( ControllerContext source, File oldDir,
File newDir )
+ {
+ super( source );
+ m_context = source;
+ m_old = oldDir;
+ m_new = newDir;
+ }
+
+ /**
+ * Return the controller context that this event is related to.
+ * @return the controller context
+ */
+ public ControllerContext getContext()
+ {
+ return m_context;
+ }
+
+ /**
+ * Return the old directory value.
+ * @return the directory
+ */
+ public File getOldDirectory()
+ {
+ return m_old;
+ }
+
+ /**
+ * Return the new directory value.
+ * @return the directory
+ */
+ public File getNewDirectory()
+ {
+ return m_new;
+ }
+}

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextListener.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java)
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ControllerContextListener.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/local/ControllerContextListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.util.EventListener;
+
+/**
+ * An interface implementation by controller concerned with or responsible
+ * for handling changes in a local runtime directory context.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface ControllerContextListener extends EventListener
+{
+ /**
+ * Notify the listener that the working directory has changed.
+ *
+ * @param event the change event
+ */
+ void workingDirectoryChanged( ControllerContextEvent event );
+
+ /**
+ * Notify the listener that the temporary directory has changed.
+ *
+ * @param event the change event
+ */
+ void tempDirectoryChanged( ControllerContextEvent event );
+
+}

Copied: trunk/main/metro/part/api/src/main/net/dpml/part/local/Manager.java
(from rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Manager.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/local/Manager.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
+
+import net.dpml.part.ControlException;
+
+import net.dpml.part.remote.Provider;
+
+/**
+ * Local interface through which a component implementation may
+ * interact with subsidary parts.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Manager
+{
+ /**
+ * Return a mutible context map.
+ *
+ * @return the context map
+ */
+ Map getContextMap();
+
+ /**
+ * Return a reference to a managed provider.
+ * @return the service provider
+ * @exception InvocationTargetException if the component instantiation
process
+ * is on demand and an target invocation error occurs
+ * @exception ControlException if the component could not be established
due to a controller
+ * related error
+ */
+ Provider getProvider() throws ControlException,
InvocationTargetException;
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/PartManager.java (from
rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/PartManager.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/local/PartManager.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import java.net.URI;
+import java.lang.reflect.Constructor;
+import java.util.Date;
+
+import net.dpml.transit.Transit;
+import net.dpml.transit.Logger;
+import net.dpml.transit.monitor.LoggingAdapter;
+import net.dpml.transit.Repository;
+
+/**
+ * Utility class through which the default controller is established. The
+ * default controller is loaded using the System property
"dpml.part.controller.uri".
+ * If undefined the default controller implementation plugin
"@PART-HANDLER-URI@"
+ * will be selected.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class PartManager
+{
+ /**
+ * Static reference to the default controller.
+ */
+ public static final Controller CONTROLLER = newController( new
LoggingAdapter( "" ) );
+
+ /**
+ * Construct a controller.
+ * @param logger the assigned logging channel
+ * @return the controller
+ */
+ public static Controller newController( final Logger logger )
+ {
+ if( null == logger )
+ {
+ throw new NullPointerException( "logger" );
+ }
+ try
+ {
+ long now = new Date().getTime();
+ ClassLoader classloader = PartManager.class.getClassLoader();
+ URI uri = getControllerURI();
+ Repository repository = Transit.getInstance().getRepository();
+ Class c = repository.getPluginClass( classloader, uri );
+ Constructor constructor = c.getConstructor( new
Class[]{Logger.class} );
+ Controller handler = (Controller) constructor.newInstance( new
Object[]{logger} );
+ return handler;
+ }
+ catch( Throwable e )
+ {
+ final String error =
+ "Internal error while attempting to establish the default part
handler.";
+ throw new RuntimeException( error, e );
+ }
+ }
+
+ private final Logger m_logger;
+ private final Controller m_handler;
+
+ /**
+ * Creation of a new <tt>PartManager</tt>.
+ * @param logger the assigned logging channel
+ */
+ public PartManager( Logger logger )
+ {
+ m_logger = logger;
+ m_handler = newController( logger );
+ }
+
+ /**
+ * Return the default part controller.
+ * @return the part controller
+ */
+ public Controller getController()
+ {
+ return m_handler;
+ }
+
+ private static URI getControllerURI() throws Exception
+ {
+ String spec = System.getProperty( "dpml.part.controller.uri",
"@PART-HANDLER-URI@" );
+ return new URI( spec );
+ }
+}

Copied: trunk/main/metro/part/api/src/main/net/dpml/part/local/Parts.java
(from rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Parts.java 2006-01-15
17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/local/Parts.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+import net.dpml.part.ControlException;
+
+import net.dpml.lang.UnknownKeyException;
+
+/**
+ * Local interface through which a component implementation may
+ * interact with subsidary parts.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Parts
+{
+ /**
+ * Return the array of keys used to idenetity internal parts.
+ * @return the part key array
+ */
+ String[] getKeys();
+
+ /**
+ * Return a component manager.
+ * @param key the internal part key
+ * @return the local component manager
+ * @exception UnknownPartException the key is not recognized
+ */
+ Manager getManager( String key ) throws UnknownKeyException;
+
+ /**
+ * Return the commissioned state of the part collection.
+ * @return true if commissioned else false
+ */
+ boolean isCommissioned();
+
+ /**
+ * Initiate the oprdered activation of all internal parts.
+ * @exception ControlException if an activation error occurs
+ */
+ void commission() throws ControlException;
+
+ /**
+ * Initiate deactivation of all internal parts.
+ */
+ void decommission();
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/local/UnknownPartException.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java)
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/UnknownPartException.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/local/UnknownPartException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.local;
+
+/**
+ * Exception thrown when a component request an unknown part.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class UnknownPartException extends IllegalArgumentException
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ private String m_type;
+
+ /**
+ * Creation of a new <tt>UnknownPartException</tt>.
+ * @param key the part key
+ */
+ public UnknownPartException( String key )
+ {
+ super( key );
+ }
+}
+
+

Added: trunk/main/metro/part/api/src/main/net/dpml/part/local/package.html
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/local/package.html
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/local/package.html
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,8 @@
+
+<body>
+
+<p>
+Local interfaces dealing with controllers, component managers and internal
parts.
+</p>
+
+</body>

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/Component.java (from
rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Component.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Component.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/Component.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.lang.reflect.InvocationTargetException;
+
+import net.dpml.part.ControlException;
+
+/**
+ * The Component represents a remote interface to a runtime component type.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Component extends Remote
+{
+ /**
+ * Return a handler capable of supporting the requested service.
+ * @param service the service descriptor
+ * @return a component matching the requested service
+ * @exception ServiceNotFoundException if no component could found
+ * @exception RemoteException if a remote I/O occurs
+ */
+ Component lookup( Service service ) throws ServiceNotFoundException,
RemoteException;
+
+ /**
+ * Return true if this handler is a candidate for the supplied service
definition.
+ * @param service the service descriptor
+ * @return true if this is a candidate
+ * @exception RemoteException if a remote exception occurs
+ */
+ boolean isaCandidate( Service service ) throws RemoteException;
+
+ /**
+ * Initiate activation of a runtime handler.
+ * @exception ControlException if an activation error occurs
+ * @exception InvocationTargetException if the component declares
activation on startup
+ * and a implementation source exception occured
+ * @exception RemoteException if a remote exception occurs
+ */
+ void activate() throws ControlException, InvocationTargetException,
RemoteException;
+
+ /**
+ * Returns the active status of the handler.
+ * @return TRUE if the handler has been activated otherwise FALSE
+ * @exception RemoteException if a remote exception occurs
+ */
+ boolean isActive() throws RemoteException;
+
+ /**
+ * Return the number of instances currently under management.
+ * @return the instance count.
+ * @exception RemoteException if a remote exception occurs
+ */
+ int size() throws RemoteException;
+
+ /**
+ * Return a reference to a instance of the component handled by the
handler.
+ * @return the instance holder
+ * @exception InvocationTargetException if the component instantiation
process
+ * is on demand and an target invocation error occurs
+ * @exception ControlException if the component could not be established
due to a controller
+ * related error
+ * @exception RemoteException if a remote exception occurs
+ */
+ Provider getProvider() throws ControlException,
InvocationTargetException, RemoteException;
+
+ /**
+ * Deactivate the handler.
+ * @exception RemoteException if a remote exception occurs
+ */
+ void deactivate() throws RemoteException;
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextEvent.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ContextEvent.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.util.EventObject;
+
+/**
+ * Event triggered as a result of change to the value of a context entry.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class ContextEvent extends EventObject
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ private final String m_key;
+ private final Object m_from;
+ private final Object m_to;
+
+ /**
+ * Construct a new <code>ContextEvent</code>.
+ *
+ * @param source the source provider
+ * @param key the context entry key
+ * @param from the original value
+ * @param to the new value
+ */
+ public ContextEvent( final Provider source, String key, Object from,
Object to )
+ {
+ super( source );
+
+ m_key = key;
+ m_from = from;
+ m_to = to;
+ }
+
+ /**
+ * Return the feature name.
+ * @return the name of the modified feature
+ */
+ public String getKey()
+ {
+ return m_key;
+ }
+
+ /**
+ * Return the old value.
+ * @return the original value
+ */
+ public Object getOldValue()
+ {
+ return m_from;
+ }
+
+ /**
+ * Return the new value.
+ * @return the new current value
+ */
+ public Object getNewValue()
+ {
+ return m_to;
+ }
+
+ /**
+ * Return the component model that initiating the event.
+ * @return the source model
+ */
+ public Provider getProvider()
+ {
+ return (Provider) super.getSource();
+ }
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextListener.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ContextListener.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ContextListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.util.EventListener;
+
+/**
+ * Interface implementated by local listeners to context entry changes.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface ContextListener extends EventListener, Remote
+{
+ /**
+ * Notify the listener of a change to a context entry.
+ *
+ * @param event the context change event
+ * @exception RemoteException if a remote transport error occurs
+ */
+ void entryChanged( final ContextEvent event ) throws RemoteException;
+}
+

Copied: trunk/main/metro/part/api/src/main/net/dpml/part/remote/Model.java
(from rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Model.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Model.java 2006-01-15
17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/Model.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.RemoteException;
+
+import net.dpml.part.ActivationPolicy;
+
+/**
+ * The Model interfaces is used mark a object as manageable context used in
+ * the creation of a runtime handler.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Model
+{
+ /**
+ * The constant partition separator.
+ */
+ final String PARTITION_SEPARATOR = "/";
+
+ /**
+ * Return the path identifying the model. A path commences with the
+ * PARTITION_SEPARATOR character and is followed by a model name. If the
+ * model exposed nested models, the path is composed of model names
+ * seaprated by the PARTITION_SEPARATOR as in "/main/web/handler".
+ *
+ * @return the context path
+ * @exception RemoteException if a remote exception occurs
+ */
+ String getContextPath() throws RemoteException;
+
+ /**
+ * Get the activation policy. If the activation policy is STARTUP, an
implementation
+ * a handler shall immidiately activation a runtime instance. If the
policy is on DEMAND
+ * an implementation shall defer activiation until an explicit request is
received. If
+ * the policy if SYSTEM activation may occur at the discretion of an
implementation.
+ *
+ * @return the activation policy
+ * @exception RemoteException if a remote exception occurs
+ * @see ActivationPolicy#SYSTEM
+ * @see ActivationPolicy#STARTUP
+ * @see ActivationPolicy#DEMAND
+ */
+ ActivationPolicy getActivationPolicy() throws RemoteException;
+
+ /**
+ * Add a listener to the component model.
+ * @param listener the model listener
+ * @exception RemoteException if a remote exception occurs
+ */
+ void addModelListener( ModelListener listener ) throws RemoteException;
+
+ /**
+ * Remove a listener from the component model.
+ * @param listener the model listener
+ * @exception RemoteException if a remote exception occurs
+ */
+ void removeModelListener( ModelListener listener ) throws
RemoteException;
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelEvent.java (from
rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelEvent.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelEvent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.util.EventObject;
+
+/**
+ * Event triggered as a result of a model change.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class ModelEvent extends EventObject
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ private final String m_feature;
+ private final Object m_from;
+ private final Object m_to;
+
+ /**
+ * Construct a new <code>ModelEvent</code>.
+ *
+ * @param source the source component model
+ * @param feature the name of the model feature
+ * @param from the original value
+ * @param to the new value
+ */
+ public ModelEvent( final Model source, String feature, Object from,
Object to )
+ {
+ super( source );
+
+ m_feature = feature;
+ m_from = from;
+ m_to = to;
+ }
+
+ /**
+ * Return the feature name.
+ * @return the name of the modified feature
+ */
+ public String getFeature()
+ {
+ return m_feature;
+ }
+
+ /**
+ * Return the old value.
+ * @return the original value
+ */
+ public Object getOldValue()
+ {
+ return m_from;
+ }
+
+ /**
+ * Return the new value.
+ * @return the new current value
+ */
+ public Object getNewValue()
+ {
+ return m_to;
+ }
+
+ /**
+ * Return the component model that initiating the event.
+ * @return the source model
+ */
+ public Model getSourceModel()
+ {
+ return (Model) super.getSource();
+ }
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelException.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelException.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.net.URI;
+
+import net.dpml.part.ControlException;
+
+/**
+ * General exception thrown by a context model.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class ModelException extends ControlException
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ /**
+ * Creation of a new <tt>ModelException</tt>.
+ * @param uri the controller uri
+ * @param message the exception message
+ */
+ public ModelException( URI uri, String message )
+ {
+ super( uri, message );
+ }
+
+ /**
+ * Creation of a new <tt>ModelException</tt>.
+ * @param uri the controller uri
+ * @param message the exception message
+ * @param cause the causal exception
+ */
+ public ModelException( URI uri, String message, Throwable cause )
+ {
+ super( uri, message, cause );
+ }
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelListener.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/ModelListener.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ModelListener.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.util.EventListener;
+
+/**
+ * Interface implementated by remote listeners to model change events.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface ModelListener extends EventListener, Remote
+{
+ /**
+ * Notify the listener of a model change.
+ *
+ * @param event the model change event
+ * @exception RemoteException if a remote transport error occurs
+ */
+ void modelChanged( final ModelEvent event ) throws RemoteException;
+}
+

Copied: trunk/main/metro/part/api/src/main/net/dpml/part/remote/Provider.java
(from rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Provider.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/Provider.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2004 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.lang.reflect.InvocationTargetException;
+
+import net.dpml.state.State;
+import net.dpml.state.StateListener;
+import net.dpml.state.UnknownOperationException;
+import net.dpml.state.UnknownTransitionException;
+
+/**
+ * Provider holder.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Provider extends Remote
+{
+ //-------------------------------------------------------------------
+ // implementation
+ //-------------------------------------------------------------------
+
+ /**
+ * Returns the current state of the control.
+ * @return the current runtime state
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ State getState() throws RemoteException;
+
+ /**
+ * Add a state listener to the control.
+ * @param listener the state listener
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ void addStateListener( StateListener listener ) throws RemoteException;
+
+ /**
+ * Remove a state listener from the control.
+ * @param listener the state listener
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ void removeStateListener( StateListener listener ) throws
RemoteException;
+
+ /**
+ * Return the runtime value associated with this instance.
+ * @param isolate if TRUE the value returned is a proxy exposing the
+ * service interfaces declared by the component type otherwise
+ * the instance value is returned.
+ * @return the value
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ Object getValue( boolean isolate ) throws RemoteException;
+
+ /**
+ * Apply a transition to the instance.
+ * @param key the transition name
+ * @return the state established as a result of applying the transition
+ * @exception UnknownTransitionException if the supplied key does not map
to an available transition
+ * @exception InvocationTargetException if an invocation error occurs
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ State apply( String key )
+ throws UnknownTransitionException, InvocationTargetException,
RemoteException;
+
+ /**
+ * Invoke an operation on the instance.
+ * @param name the operation name
+ * @param args operation arguments
+ * @return the result of the operation invocation
+ * @exception UnknownOperationException if the supplied key does not map
to an available operation
+ * @exception InvocationTargetException if an invocation error occurs
+ * @exception RemoteException if a remote I/O error occurs
+ */
+ Object exec( String name, Object[] args )
+ throws UnknownOperationException, InvocationTargetException,
RemoteException;
+
+}

Copied: trunk/main/metro/part/api/src/main/net/dpml/part/remote/Service.java
(from rev 922, trunk/main/metro/part/api/src/main/net/dpml/part/Service.java)
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/Service.java
2006-01-15 17:39:34 UTC (rev 922)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/Service.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+import net.dpml.part.Version;
+
+
+/**
+ * The Component interface is implemented by objects that handle the runtime
+ * state of a component instance.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public interface Service extends Remote
+{
+ /**
+ * Return the service class.
+ * @return the service class
+ * @exception RemoteException if a remoting I/O error occurs
+ */
+ Class getServiceClass() throws RemoteException;
+
+ /**
+ * Return the service version.
+ * @return the version
+ * @exception RemoteException if a remoting I/O error occurs
+ */
+ Version getVersion() throws RemoteException;
+
+}
+

Copied:
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ServiceNotFoundException.java
(from rev 922,
trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java)
===================================================================
---
trunk/main/metro/part/api/src/main/net/dpml/part/ServiceNotFoundException.java
2006-01-15 17:39:34 UTC (rev 922)
+++
trunk/main/metro/part/api/src/main/net/dpml/part/remote/ServiceNotFoundException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.part.remote;
+
+import java.net.URI;
+
+import net.dpml.part.ControlException;
+
+/**
+ * Exception thrown by a handler in response to a request for an unknown
service.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class ServiceNotFoundException extends ControlException
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ /**
+ * Creation of a new <tt>ServiceNotFoundException</tt>.
+ * @param uri the controller uri
+ * @param classname the service classname
+ */
+ public ServiceNotFoundException( URI uri, String classname )
+ {
+ super( uri, classname );
+ }
+}
+

Added: trunk/main/metro/part/api/src/main/net/dpml/part/remote/package.html
===================================================================
--- trunk/main/metro/part/api/src/main/net/dpml/part/remote/package.html
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/part/api/src/main/net/dpml/part/remote/package.html
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,8 @@
+
+<body>
+
+<p>
+Interfaces dealing with remotely accessible aspects of the component model.
+</p>
+
+</body>

Modified:
trunk/main/metro/part/content/src/main/net/dpml/part/content/PartContentHandler.java
===================================================================
---
trunk/main/metro/part/content/src/main/net/dpml/part/content/PartContentHandler.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/content/src/main/net/dpml/part/content/PartContentHandler.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -26,12 +26,12 @@

import net.dpml.transit.Logger;

-import net.dpml.part.Controller;
import net.dpml.part.Directive;
-import net.dpml.part.Model;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
-import net.dpml.part.PartManager;
+import net.dpml.part.local.Controller;
+import net.dpml.part.local.PartManager;
+import net.dpml.part.remote.Model;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

/**
* URL content handler support the part datatype.

Modified:
trunk/main/metro/part/test/src/test/net/dpml/test/part/PartLoadingTestCase.java
===================================================================
---
trunk/main/metro/part/test/src/test/net/dpml/test/part/PartLoadingTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/part/test/src/test/net/dpml/test/part/PartLoadingTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,7 +24,7 @@
import junit.framework.TestCase;

import net.dpml.part.Directive;
-import net.dpml.part.Controller;
+import net.dpml.part.local.Controller;

/**
* Testcase validating part loading from a uri.

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -45,12 +45,12 @@

import net.dpml.parameters.Parameters;

-import net.dpml.part.Parts;
+import net.dpml.part.local.Parts;
import net.dpml.part.Directive;
-import net.dpml.part.Component;
-import net.dpml.part.Model;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Model;
import net.dpml.part.ControlException;
-import net.dpml.part.ServiceNotFoundException;
+import net.dpml.part.remote.ServiceNotFoundException;
import net.dpml.part.Version;

import net.dpml.transit.Category;

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentHandler.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentHandler.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentHandler.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -43,18 +43,19 @@
import net.dpml.logging.Logger;

import net.dpml.part.ActivationPolicy;
-import net.dpml.part.Component;
+import net.dpml.part.remote.Component;
import net.dpml.part.ControlException;
import net.dpml.part.Disposable;
-import net.dpml.part.Provider;
-import net.dpml.part.Service;
-import net.dpml.part.ServiceNotFoundException;
+import net.dpml.part.remote.Provider;
+import net.dpml.part.remote.Service;
+import net.dpml.part.remote.ServiceNotFoundException;
import net.dpml.part.Version;
-import net.dpml.part.Manager;
-import net.dpml.part.ModelEvent;
-import net.dpml.part.ModelListener;
-import net.dpml.part.UnknownPartException;
+import net.dpml.part.local.Manager;
+import net.dpml.part.remote.ModelEvent;
+import net.dpml.part.remote.ModelListener;

+import net.dpml.lang.UnknownKeyException;
+
import net.dpml.state.State;

/**
@@ -615,7 +616,7 @@
* @exception UnknownKeyException if the key does not match
* any of the internal components managed by this component
*/
- Component getPartHandler( String key ) throws UnknownPartException
+ Component getPartHandler( String key ) throws UnknownKeyException
{
return (Component) m_parts.getManager( key );


Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionContext.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionContext.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionContext.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -22,9 +22,9 @@
import java.util.EventObject;
import java.util.EventListener;

-import net.dpml.part.ControllerContext;
-import net.dpml.part.ControllerContextListener;
-import net.dpml.part.ControllerContextEvent;
+import net.dpml.part.local.ControllerContext;
+import net.dpml.part.local.ControllerContextListener;
+import net.dpml.part.local.ControllerContextEvent;

import net.dpml.transit.Logger;


Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -28,12 +28,11 @@
import net.dpml.metro.data.ComponentDirective;
import net.dpml.metro.model.ComponentModel;

-import net.dpml.part.ControllerContext;
-import net.dpml.part.Model;
-import net.dpml.part.Component;
-import net.dpml.part.Controller;
+import net.dpml.part.local.ControllerContext;
+import net.dpml.part.remote.Model;
+import net.dpml.part.remote.Component;
+import net.dpml.part.local.Controller;
import net.dpml.part.ControlException;
-import net.dpml.part.ControllerNotFoundException;
import net.dpml.part.DelegationException;
import net.dpml.part.Directive;
import net.dpml.part.Part;

Added:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ControllerNotFoundException.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ControllerNotFoundException.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ControllerNotFoundException.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2005 Stephen J. McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.metro.runtime;
+
+import java.net.URI;
+
+import net.dpml.part.ControlException;
+
+/**
+ * Exception thrown when an attempt is made to reference an unknown
+ * or unresolvable controller.
+ *
+ * @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
+ * @version @PROJECT-VERSION@
+ */
+public class ControllerNotFoundException extends ControlException
+{
+ /**
+ * Serial version identifier.
+ */
+ static final long serialVersionUID = 1L;
+
+ private final URI m_target;
+
+ /**
+ * Creation of a new <tt>ControllerNotFoundException</tt>.
+ * @param uri the uri of the controller raising the exception
+ * @param target the uri of the target controller
+ */
+ public ControllerNotFoundException( URI uri, URI target )
+ {
+ this( uri, target, null );
+ }
+
+ /**
+ * Creation of a new <tt>ControllerNotFoundException</tt>.
+ * @param uri the uri of the controller raising the exception
+ * @param target the uri of the target controller
+ * @param cause the causal exception
+ */
+ public ControllerNotFoundException( URI uri, URI target, Throwable cause
)
+ {
+ super( uri, createMessage( uri ), cause );
+ m_target = target;
+ }
+
+ /**
+ * Return the uri of the target controller.
+ * @return the target controller uri
+ */
+ public URI getTargetURI()
+ {
+ return m_target;
+ }
+
+ private static String createMessage( URI target )
+ {
+ return "Unable to locate the target controller [" + target + "].";
+ }
+}
+

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultComponentModel.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultComponentModel.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultComponentModel.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -39,8 +39,8 @@
import net.dpml.part.Directive;
import net.dpml.part.ActivationPolicy;
import net.dpml.part.ControlException;
-import net.dpml.part.ModelListener;
-import net.dpml.part.ModelEvent;
+import net.dpml.part.remote.ModelListener;
+import net.dpml.part.remote.ModelEvent;

import net.dpml.configuration.Configuration;
import net.dpml.configuration.Configurable;

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultContextModel.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultContextModel.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultContextModel.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -38,9 +38,9 @@
import net.dpml.logging.Logger;

import net.dpml.part.Directive;
-import net.dpml.part.ModelException;
-import net.dpml.part.ModelListener;
-import net.dpml.part.ModelEvent;
+import net.dpml.part.remote.ModelException;
+import net.dpml.part.remote.ModelListener;
+import net.dpml.part.remote.ModelEvent;

import net.dpml.lang.UnknownKeyException;


Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultProvider.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultProvider.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultProvider.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -29,7 +29,7 @@

import net.dpml.logging.Logger;

-import net.dpml.part.Provider;
+import net.dpml.part.remote.Provider;
import net.dpml.part.ControlException;

import net.dpml.state.State;

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultService.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultService.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/DefaultService.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -18,7 +18,7 @@

package net.dpml.metro.runtime;

-import net.dpml.part.Service;
+import net.dpml.part.remote.Service;
import net.dpml.part.Version;

/**

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsInvocationHandler.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsInvocationHandler.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsInvocationHandler.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -22,9 +22,9 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

-import net.dpml.part.Manager;
-import net.dpml.part.Component;
-import net.dpml.part.Parts;
+import net.dpml.part.local.Manager;
+import net.dpml.part.remote.Component;
+import net.dpml.part.local.Parts;

/**
* Invoication handler for the Context inner class. The invocation handler
is

Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsManager.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsManager.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/PartsManager.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -27,11 +27,10 @@

import net.dpml.metro.model.ComponentModel;

-import net.dpml.part.Component;
import net.dpml.part.ControlException;
-import net.dpml.part.Parts;
-import net.dpml.part.Manager;
-import net.dpml.part.UnknownPartException;
+import net.dpml.part.remote.Component;
+import net.dpml.part.local.Parts;
+import net.dpml.part.local.Manager;

import net.dpml.lang.UnknownKeyException;

@@ -137,7 +136,7 @@
* Return a component manager.
* @return the local component manager
*/
- public synchronized Manager getManager( String key ) throws
UnknownPartException
+ public synchronized Manager getManager( String key ) throws
UnknownKeyException
{
if( m_handlers.containsKey( key ) )
{
@@ -145,7 +144,7 @@
}
else
{
- throw new UnknownPartException( key );
+ throw new UnknownKeyException( key );
}
}


Modified:
trunk/main/metro/station/api/src/main/net/dpml/station/Application.java
===================================================================
--- trunk/main/metro/station/api/src/main/net/dpml/station/Application.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/station/api/src/main/net/dpml/station/Application.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -21,7 +21,7 @@
import java.rmi.Remote;
import java.rmi.RemoteException;

-import net.dpml.part.Provider;
+import net.dpml.part.remote.Provider;

import net.dpml.transit.PID;


Modified: trunk/main/metro/station/api/src/main/net/dpml/station/Callback.java
===================================================================
--- trunk/main/metro/station/api/src/main/net/dpml/station/Callback.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/metro/station/api/src/main/net/dpml/station/Callback.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -21,7 +21,7 @@
import java.rmi.Remote;
import java.rmi.RemoteException;

-import net.dpml.part.Component;
+import net.dpml.part.remote.Component;

import net.dpml.transit.PID;


Modified:
trunk/main/metro/station/console/src/main/net/dpml/station/console/StationPlugin.java
===================================================================
---
trunk/main/metro/station/console/src/main/net/dpml/station/console/StationPlugin.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/station/console/src/main/net/dpml/station/console/StationPlugin.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -44,7 +44,7 @@
import net.dpml.station.info.ApplicationDescriptor;
import net.dpml.station.server.RemoteApplicationRegistry;

-import net.dpml.part.Provider;
+import net.dpml.part.remote.Provider;
import net.dpml.state.State;
import net.dpml.state.Operation;
import net.dpml.state.Transition;

Modified:
trunk/main/metro/station/server/src/main/net/dpml/station/server/RemoteApplication.java
===================================================================
---
trunk/main/metro/station/server/src/main/net/dpml/station/server/RemoteApplication.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/station/server/src/main/net/dpml/station/server/RemoteApplication.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -34,8 +34,8 @@
import net.dpml.station.info.StartupPolicy;
import net.dpml.station.info.ApplicationDescriptor;

-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.station.Callback;
import net.dpml.station.ProcessState;

Modified: trunk/main/metro/test/src/main/net/dpml/test/app/Demo.java
===================================================================
--- trunk/main/metro/test/src/main/net/dpml/test/app/Demo.java 2006-01-15
19:09:57 UTC (rev 925)
+++ trunk/main/metro/test/src/main/net/dpml/test/app/Demo.java 2006-01-15
20:01:18 UTC (rev 926)
@@ -20,8 +20,8 @@

import net.dpml.logging.Logger;

-import net.dpml.part.Parts;
-import net.dpml.part.Manager;
+import net.dpml.part.local.Parts;
+import net.dpml.part.local.Manager;

/**
* The demo class is used to aggregate a collection of components and

Modified:
trunk/main/metro/test/src/main/net/dpml/test/composite/PartsComponent.java
===================================================================
---
trunk/main/metro/test/src/main/net/dpml/test/composite/PartsComponent.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/main/net/dpml/test/composite/PartsComponent.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -25,9 +25,11 @@

import net.dpml.test.ColorManager;

-import net.dpml.part.Parts;
-import net.dpml.part.Manager;
+import net.dpml.part.local.Parts;
+import net.dpml.part.local.Manager;

+import net.dpml.lang.UnknownKeyException;
+
/**
* This component declares an inner Parts interface through which
* it accesses a map of the context infomation of a subsidiary component
@@ -84,7 +86,7 @@
* @param context a context implementation
* @param parts the parts manager
*/
- public PartsComponent( final Logger logger, final Context context, final
Parts parts )
+ public PartsComponent( final Logger logger, final Context context, final
Parts parts ) throws UnknownKeyException
{
logger.debug( "instantiation" );


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/AppTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/AppTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/AppTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.app.Demo;


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CategoriesTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CategoriesTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CategoriesTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.categories.CategoriesComponent;


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentHandlerTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentHandlerTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentHandlerTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;


/**

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentModelTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentModelTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ComponentModelTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,7 +23,7 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
+import net.dpml.part.local.Controller;
import net.dpml.part.ActivationPolicy;
import net.dpml.metro.info.LifestylePolicy;
import net.dpml.metro.info.CollectionPolicy;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CompositeTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CompositeTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/CompositeTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,10 +24,10 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
-import net.dpml.part.Manager;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;
+import net.dpml.part.local.Manager;

import net.dpml.test.composite.ChildComponent;
import net.dpml.test.composite.CompositeComponent;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ConfigTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ConfigTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ConfigTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.config.ConfigurableComponent;


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextModelTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextModelTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextModelTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,7 +24,7 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
+import net.dpml.part.local.Controller;
import net.dpml.metro.data.ValueDirective;
import net.dpml.metro.info.EntryDescriptor;
import net.dpml.metro.model.ComponentModel;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ContextTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,9 +24,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.ContextTestComponent;
import net.dpml.test.ContextTestComponent.Context;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/DisposalTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/DisposalTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/DisposalTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,8 +23,8 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
import net.dpml.part.Disposable;

/**

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/HardCollectionPolicyTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/HardCollectionPolicyTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/HardCollectionPolicyTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

/**
* Test HARD collection policy semantics.

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/LifecycleTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/LifecycleTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/LifecycleTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.lifecycle.StartableComponent;


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/NullTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/NullTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/NullTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -20,7 +20,7 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
+import net.dpml.part.local.Controller;

/**
* Testing load launch time.

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ObserverTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ObserverTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ObserverTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,9 +24,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Component;
-import net.dpml.part.Controller;
-import net.dpml.part.Provider;
+import net.dpml.part.remote.Component;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Provider;
import net.dpml.metro.data.ValueDirective;
import net.dpml.metro.model.ComponentModel;
import net.dpml.metro.model.MutableContextModel;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ParamsTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ParamsTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ParamsTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.params.ParameterizableComponent;


Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/PartsTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/PartsTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/PartsTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,9 +24,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.composite.ChildComponent;
import net.dpml.test.composite.PartsComponent;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ProviderTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ProviderTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/ProviderTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -27,9 +27,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;
import net.dpml.state.State;
import net.dpml.state.StateListener;
import net.dpml.state.impl.DefaultStateListener;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/SingletonProviderTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/SingletonProviderTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/SingletonProviderTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

/**
* Test singleton semantics.

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/StateTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/StateTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/StateTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

import net.dpml.test.state.Service;
import net.dpml.test.state.ManagedComponent.Monitor;

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/TransientProviderTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/TransientProviderTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/TransientProviderTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

/**
* Test transient semantics.

Modified:
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/WeakCollectionPolicyTestCase.java
===================================================================
---
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/WeakCollectionPolicyTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++
trunk/main/metro/test/src/test/net/dpml/metro/runtime/test/WeakCollectionPolicyTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -23,9 +23,9 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
-import net.dpml.part.Provider;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
+import net.dpml.part.remote.Provider;

/**
* Test WEAK collection semantics.

Modified: trunk/main/planet/http/demo/src/test/net/dpml/http/HttpTestCase.java
===================================================================
--- trunk/main/planet/http/demo/src/test/net/dpml/http/HttpTestCase.java
2006-01-15 19:09:57 UTC (rev 925)
+++ trunk/main/planet/http/demo/src/test/net/dpml/http/HttpTestCase.java
2006-01-15 20:01:18 UTC (rev 926)
@@ -24,8 +24,8 @@

import junit.framework.TestCase;

-import net.dpml.part.Controller;
-import net.dpml.part.Component;
+import net.dpml.part.local.Controller;
+import net.dpml.part.remote.Component;
import net.dpml.part.ControlException;

import net.dpml.http.demo.Demo;




  • r926 - in trunk/main: central/src/docs/metro/runtime/controller depot/library/common/etc/test/dpml metro metro/exec/src/main/net/dpml/metro/exec metro/model/src/main/net/dpml/metro/model metro/part/api/src/main/net/dpml/part metro/part/api/src/main/net/dpml/part/local metro/part/api/src/main/net/dpml/part/remote metro/part/content/src/main/net/dpml/part/content metro/part/test/src/test/net/dpml/test/part metro/runtime/src/main/net/dpml/metro/runtime metro/station/api/src/main/net/dpml/station metro/station/console/src/main/net/dpml/station/console metro/station/server/src/main/net/dpml/station/server metro/test/src/main/net/dpml/test/app metro/test/src/main/net/dpml/test/composite metro/test/src/test/net/dpml/metro/runtime/test planet/http/demo/src/test/net/dpml/http, mcconnell at BerliOS, 01/15/2006

Archive powered by MHonArc 2.6.24.

Top of Page