You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-commits@ws.apache.org by da...@apache.org on 2007/03/24 14:09:38 UTC

svn commit: r522015 [2/5] - in /webservices/muse/trunk/modules/muse-core: schemas/ src/org/apache/muse/core/ src/org/apache/muse/core/descriptor/ src/org/apache/muse/core/platform/ src/org/apache/muse/core/proxy/ src/org/apache/muse/core/routing/ src/o...

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManager.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManager.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManager.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManager.java Sat Mar 24 06:09:36 2007
@@ -1,243 +1,247 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
- *
- *  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 org.apache.muse.core;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.muse.ws.addressing.EndpointReference;
-import org.apache.muse.ws.addressing.soap.SoapFault;
-
-/**
- * 
- * ResourceManager defines the interface for creating and storing resources 
- * that can be targeted by other resources (internal and external to a 
- * Muse-derived application). The resources' endpoint references (EPRs) are 
- * used to differentiate between resources in concrete implementations. This 
- * is the <em>implied resource pattern</em> required by WS-Addressing.
- * <br><br>
- * Note that ResourceManager does not initiate any lifecycle events - the 
- * addResource() method does not create a resource, and the removeResource() 
- * method does not destroy a resource. Other components can use the 
- * createResource() method to instantiate a resource and addResource() to make 
- * it visible to remote clients.
- * 
- * @author Dan Jemiolo (danj)
- * 
- * @see Resource#shutdown()
- * 
- */
-
-public interface ResourceManager extends Initialization, Shutdown
-{
-    /**
-     * 
-     * @param listener
-     *        A listener that will be fired whenever a resource is added 
-     *        or removed from the resource. 
-     *
-     */
-    void addListener(ResourceManagerListener listener);
-    
-    /**
-     * 
-     * Add a resource to the manager, associated with the given EPR.
-     * 
-     * @param epr
-     *        The unique EPR identifying the resource instance.
-     *        
-     * @param resource
-     *  
-     * @throws SoapFault
-     *         <ul>
-     *         <li>If there is already a resource with the same EPR.</li>
-     *         </ul>
-     * 
-     * @see #getResource(EndpointReference)
-     * 
-     */
-    void addResource(EndpointReference epr, Resource resource)
-        throws SoapFault;
-    
-    /**
-     * 
-     * @param definitions
-     *        The ResourceDefinition objects that will be used to generate new 
-     *        resource instances.
-     * 
-     */
-    void addResourceDefinitions(Collection definitions);
-    
-    /**
-     * 
-     * Finds the resource type definition associated with the given context 
-     * path (defined in muse.xml), instantiates an instance of the resource 
-     * class, and sets the basic values (EPR, initialization parameters, etc.) 
-     * and Muse components (Environment, log file, etc.) that it needs to 
-     * operate.
-     * <br><br>
-     * The Resource object returned by this method has <b>not</b> been initialized 
-     * yet. Once the Resource.initialize() method has been called, the resource 
-     * should be added to the ResourceManager with the addResource() method.
-     *
-     * @param contextPath
-     *        The context path for the resource type that is to be instantiated.
-     *        This value is specified with the <em>context-path</em> element in 
-     *        muse.xml.
-     *        
-     * @return An instance of the resource class. It will have a proper EPR, 
-     *         all of its capabilities, and references to all of the basic 
-     *         Muse components (Environment, log file, etc.). Calling code may 
-     *         further modify the resource before calling initialize() and 
-     *         making it available to clients.
-     * 
-     * @throws SoapFault
-     *
-     */
-    Resource createResource(String contextPath)
-        throws SoapFault;
-    
-    /**
-     * 
-     * @return The manager's access point for things such as the 
-     *         WS-Addressing context, file system resources, and more.
-     *
-     */
-    Environment getEnvironment();
-    
-    /**
-     *
-     * @return The number of resource instances stored by the manager.
-     *
-     */
-    int getNumberOfResources();
-    
-    /**
-     * 
-     * @param epr
-     *        The unique EPR that is associated with the desired resource.
-     * 
-     * @return The resource associated with the given EPR, or null if no 
-     *         such resource exists.
-     *
-     */
-    Resource getResource(EndpointReference epr);
-    
-    /**
-     * 
-     * This method allows you to find a resource type's endpoint URI given 
-     * the Java interface or concrete class of one of its capabilities.
-     * 
-     * @param capabilityClass
-     *        An interface or concrete class for one of the capabilities in 
-     *        the application's resource types. This value may be defined in 
-     *        <em>resource-type/capability/java-capability-class</em> in muse.xml.
-     * 
-     * @return A unique URL for the resource type that is partially-defined by 
-     *         the given capability's interface or class, or null if no such 
-     *         type exists.
-     *
-     */
-    String getResourceContextPath(Class capabilityClass);
-    
-    /**
-     * 
-     * @return A collection containing the context paths for all resource 
-     *         types specified in muse.xml. The collection may be empty.
-     *
-     */
-    Collection getResourceContextPaths();
-
-    /**
-     * 
-     * This method is just like getResourceContextPath(Class) except that 
-     * it returns multiple endpoints that use the capability.
-     *
-     */
-    Collection getResourceContextPaths(Class capabilityClass);
-    
-    /**
-     *
-     * @return An iterator over the collection of resource EPRs.
-     *
-     */
-    Iterator getResourceEPRs();
-    
-    /**
-     * 
-     * This method allows you to search for the EPRs for all instances 
-     * of a given resource type (where each resource type has a unique 
-     * context path).
-     * 
-     * @param contextPath
-     * 
-     * @return An iterator over the collection of resource EPRs 
-     *         whose wsa:Address includes the given context path. 
-     *
-     */
-    Iterator getResourceEPRs(String contextPath);
-    
-    /**
-     * 
-     * @param contextPath
-     * 
-     * @return True if the resource type was specified with the 
-     *         <em>use-router-persistence</em> flag set to 'true' in muse.xml.
-     *
-     */
-    boolean isUsingPersistence(String contextPath);
-    
-    /**
-     * 
-     * Stops the given listener from receiving notifications about the 
-     * addition and removal of resource instances.
-     *
-     * @param listener
-     *
-     */
-    void removeListener(ResourceManagerListener listener);
-
-    /**
-     * 
-     * Removes the EPR-resource pair from the manager. This does <b>not</b> 
-     * destroy the resource - it merely removes it from the external view.
-     *
-     * @param epr
-     *        The unique EPR that maps to the resource being removed.
-     * 
-     * @throws SoapFault
-     *         <ul>
-     *         <li>If the EPR does not map to a resource.</li>
-     *         </ul>
-     *
-     */
-    void removeResource(EndpointReference epr)
-        throws SoapFault;
-
-    /**
-     * 
-     * Removes each ResourceDefinition in the given Collection. After this method 
-     * has returned, the application will no longer service requests for the 
-     * given resource types. It will be as though they were never deployed.
-     * 
-     * @param definitions
-     *
-     */
-    void removeResourceDefinitions(Collection definitions);
-
-    void setEnvironment(Environment env);
-}
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.muse.core;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.muse.ws.addressing.EndpointReference;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+
+/**
+ * 
+ * ResourceManager defines the interface for creating and storing resources 
+ * that can be targeted by other resources (internal and external to a 
+ * Muse-derived application). The resources' endpoint references (EPRs) are 
+ * used to differentiate between resources in concrete implementations. This 
+ * is the <em>implied resource pattern</em> required by WS-Addressing.
+ * <br><br>
+ * Note that ResourceManager does not initiate any lifecycle events - the 
+ * addResource() method does not create a resource, and the removeResource() 
+ * method does not destroy a resource. Other components can use the 
+ * createResource() method to instantiate a resource and addResource() to make 
+ * it visible to remote clients.
+ * 
+ * @author Dan Jemiolo (danj)
+ * 
+ * @see Resource#shutdown()
+ * 
+ */
+
+public interface ResourceManager extends Initialization, Shutdown
+{
+    /**
+     * 
+     * @param listener
+     *        A listener that will be fired whenever a resource is added 
+     *        or removed from the resource. 
+     *
+     */
+    void addListener(ResourceManagerListener listener);
+    
+    /**
+     * 
+     * Add a resource to the manager, associated with the given EPR.
+     * 
+     * @param epr
+     *        The unique EPR identifying the resource instance.
+     *        
+     * @param resource
+     *  
+     * @throws SoapFault
+     *         <ul>
+     *         <li>If there is already a resource with the same EPR.</li>
+     *         </ul>
+     * 
+     * @see #getResource(EndpointReference)
+     * 
+     */
+    void addResource(EndpointReference epr, Resource resource)
+        throws SoapFault;
+    
+    /**
+     * 
+     * @param definitions
+     *        The ResourceDefinition objects that will be used to generate new 
+     *        resource instances.
+     * 
+     */
+    void addResourceDefinitions(Collection definitions);
+    
+    /**
+     * 
+     * Finds the resource type definition associated with the given context 
+     * path (defined in muse.xml), instantiates an instance of the resource 
+     * class, and sets the basic values (EPR, initialization parameters, etc.) 
+     * and Muse components (Environment, log file, etc.) that it needs to 
+     * operate.
+     * <br><br>
+     * The Resource object returned by this method has <b>not</b> been initialized 
+     * yet. Once the Resource.initialize() method has been called, the resource 
+     * should be added to the ResourceManager with the addResource() method.
+     *
+     * @param contextPath
+     *        The context path for the resource type that is to be instantiated.
+     *        This value is specified with the <em>context-path</em> element in 
+     *        muse.xml.
+     *        
+     * @return An instance of the resource class. It will have a proper EPR, 
+     *         all of its capabilities, and references to all of the basic 
+     *         Muse components (Environment, log file, etc.). Calling code may 
+     *         further modify the resource before calling initialize() and 
+     *         making it available to clients.
+     * 
+     * @throws SoapFault
+     *
+     */
+    Resource createResource(String contextPath)
+        throws SoapFault;
+    
+    /**
+     * 
+     * @return The manager's access point for things such as the 
+     *         WS-Addressing context, file system resources, and more.
+     *
+     */
+    Environment getEnvironment();
+    
+    /**
+     *
+     * @return The number of resource instances stored by the manager.
+     *
+     */
+    int getNumberOfResources();
+    
+    /**
+     * 
+     * @param epr
+     *        The unique EPR that is associated with the desired resource.
+     * 
+     * @return The resource associated with the given EPR, or null if no 
+     *         such resource exists.
+     *
+     */
+    Resource getResource(EndpointReference epr);
+    
+    /**
+     * 
+     * This method allows you to find a resource type's endpoint URI given 
+     * the Java interface or concrete class of one of its capabilities.
+     * 
+     * @param capabilityClass
+     *        An interface or concrete class for one of the capabilities in 
+     *        the application's resource types. This value may be defined in 
+     *        <em>resource-type/capability/java-capability-class</em> in muse.xml.
+     * 
+     * @return A unique URL for the resource type that is partially-defined by 
+     *         the given capability's interface or class, or null if no such 
+     *         type exists.
+     *
+     */
+    String getResourceContextPath(Class capabilityClass);
+    
+    /**
+     * 
+     * @return A collection containing the context paths for all resource 
+     *         types specified in muse.xml. The collection may be empty.
+     *
+     */
+    Collection getResourceContextPaths();
+
+    /**
+     * 
+     * This method is just like getResourceContextPath(Class) except that 
+     * it returns multiple endpoints that use the capability.
+     *
+     */
+    Collection getResourceContextPaths(Class capabilityClass);
+    
+    /**
+     *
+     * @return An iterator over the collection of resource EPRs.
+     *
+     */
+    Iterator getResourceEPRs();
+    
+    /**
+     * 
+     * This method allows you to search for the EPRs for all instances 
+     * of a given resource type (where each resource type has a unique 
+     * context path).
+     * 
+     * @param contextPath
+     * 
+     * @return An iterator over the collection of resource EPRs 
+     *         whose wsa:Address includes the given context path. 
+     *
+     */
+    Iterator getResourceEPRs(String contextPath);
+    
+    /**
+     * 
+     * @param contextPath
+     * 
+     * @return True if the resource type was specified with the 
+     *         <em>use-router-persistence</em> flag set to 'true' in muse.xml.
+     *
+     */
+    boolean isUsingPersistence(String contextPath);
+    
+    /**
+     * 
+     * Stops the given listener from receiving notifications about the 
+     * addition and removal of resource instances.
+     *
+     * @param listener
+     *
+     */
+    void removeListener(ResourceManagerListener listener);
+
+    /**
+     * 
+     * Removes the EPR-resource pair from the manager. This does <b>not</b> 
+     * destroy the resource - it merely removes it from the external view.
+     *
+     * @param epr
+     *        The unique EPR that maps to the resource being removed.
+     * 
+     * @throws SoapFault
+     *         <ul>
+     *         <li>If the EPR does not map to a resource.</li>
+     *         </ul>
+     *
+     */
+    void removeResource(EndpointReference epr)
+        throws SoapFault;
+
+    /**
+     * 
+     * Removes each ResourceDefinition in the given Collection. After this method 
+     * has returned, the application will no longer service requests for the 
+     * given resource types. It will be as though they were never deployed.
+     * 
+     * @param definitions
+     *
+     */
+    void removeResourceDefinitions(Collection definitions);
+
+    void setEnvironment(Environment env);
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManagerListener.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManagerListener.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManagerListener.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/ResourceManagerListener.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/Shutdown.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/Shutdown.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/Shutdown.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/Shutdown.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResource.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResource.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResource.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResource.java Sat Mar 24 06:09:36 2007
@@ -1,581 +1,585 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
- *
- *  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 org.apache.muse.core;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import javax.xml.namespace.QName;
-
-import org.w3c.dom.Element;
-
-import org.apache.muse.core.routing.MessageHandler;
-import org.apache.muse.util.LoggingUtils;
-import org.apache.muse.util.messages.Messages;
-import org.apache.muse.util.messages.MessagesFactory;
-import org.apache.muse.util.xml.XmlUtils;
-import org.apache.muse.ws.addressing.EndpointReference;
-import org.apache.muse.ws.addressing.MessageHeaders;
-import org.apache.muse.ws.addressing.WsaConstants;
-import org.apache.muse.ws.addressing.soap.SoapConstants;
-import org.apache.muse.ws.addressing.soap.SoapFault;
-import org.apache.muse.ws.addressing.soap.SoapUtils;
-
-/**
- * 
- * SimpleResource is Muse's default implementation of the core resource 
- * type component. It provides all the code needed to collect capabilities 
- * and delegate request to them, as well as a central place for them to 
- * find and contact each other.
- * 
- * @author Dan Jemiolo (danj)
- * 
- */
-
-public class SimpleResource implements Resource
-{
-    //
-    // Used to lookup all exception messages
-    //
-    private static Messages _MESSAGES = MessagesFactory.get(SimpleResource.class);
-    
-    //
-    // WS-A Action -> Capability that defines the operation for the action
-    //
-    private Map _capabilitiesByAction = new HashMap();
-    
-    //
-    // Unique capability URI -> Capability
-    //
-    private Map _capabilitiesByURI = new LinkedHashMap();
-    
-    private String _contextPath = null;
-    
-    private Environment _environment = null;
-    
-    //
-    // The EPR for this resource instance
-    //
-    private EndpointReference _epr = null;
-    
-    private boolean _hasBeenInitialized = false;
-    
-    private boolean _hasBeenShutdown = false;
-    
-    private Logger _log = null;
-    
-    private ResourceManager _manager = null;
-    
-    //
-    // initialization parameters from the deployment descriptor
-    //
-    private Map _parameters = Collections.EMPTY_MAP;
-    
-    private String _wsdlPath = null;
-    
-    private QName _wsdlPortType = null;
-    
-    public void addCapability(Capability capability)
-    {
-        if (capability == null)
-            throw new RuntimeException(_MESSAGES.get("NullCapability"));
-        
-        //
-        // the capability inherits some basic components from the resource
-        //
-        capability.setResource(this);
-        capability.setLog(getLog());
-        capability.setEnvironment(getEnvironment());
-
-        String uri = capability.getCapabilityURI();
-        
-        //
-        // make sure we don't already have this capability
-        //
-        if (_capabilitiesByURI.containsKey(uri))
-        {
-            Object[] filler = { getContextPath(), uri };
-            throw new RuntimeException(_MESSAGES.get("DuplicateCapabilityURI", filler));
-        }
-        
-        _capabilitiesByURI.put(uri, capability);
-        
-        Iterator i = capability.getActions().iterator();
-        
-        while (i.hasNext())
-        {
-            String action = (String)i.next();
-            
-            //
-            // make sure some other capability isn't already using this action 
-            // URI for one of its operations
-            //
-            if (_capabilitiesByAction.containsKey(action))
-            {
-                Capability duplicate = (Capability)_capabilitiesByAction.get(action);
-                Object[] filler = { getContextPath(), action, duplicate.getCapabilityURI() };
-                throw new RuntimeException(_MESSAGES.get("DuplicateAction", filler));
-            }
-            
-            _capabilitiesByAction.put(action, capability);
-        }
-    }
-    
-    public final Capability getCapability(String capabilityURI)
-    {
-        return (Capability)_capabilitiesByURI.get(capabilityURI);
-    }
-    
-    /**
-     * 
-     * @return All of the WS-A Action URIs supported by this resource.
-     *
-     */
-    protected Collection getCapabilityActions()
-    {
-        return Collections.unmodifiableSet(_capabilitiesByAction.keySet());
-    }
-    
-    /**
-     * 
-     * @param action
-     *        A WS-A Action URI.
-     *        
-     * @return The Capability object with the method that maps to the 
-     *         given WS-A Action URI.
-     *
-     */
-    protected Capability getCapabilityForAction(String action)
-    {
-        return (Capability)_capabilitiesByAction.get(action);
-    }
-    
-    /**
-     * 
-     * @return A collection with all of the capabilities' URIs.
-     *
-     */
-    public final Collection getCapabilityURIs()
-    {
-        return Collections.unmodifiableSet(_capabilitiesByURI.keySet());
-    }
-    
-    public final String getContextPath()
-    {
-        return _contextPath;
-    }
-    
-    public EndpointReference getEndpointReference()
-    {
-        return _epr;
-    }
-    
-    public final Environment getEnvironment()
-    {
-        return _environment;
-    }
-    
-    public final String getInitializationParameter(String name)
-    {
-        return (String)getInitializationParameters().get(name);
-    }
-    
-    public final Map getInitializationParameters()
-    {
-        return _parameters;
-    }
-    
-    public final Logger getLog()
-    {
-        return _log;
-    }
-    
-    public ResourceManager getResourceManager()
-    {
-        return _manager;
-    }
-    
-    public final String getWsdlPath()
-    {
-        return _wsdlPath;
-    }
-    
-    public final QName getWsdlPortType()
-    {
-        return _wsdlPortType;
-    }
-    
-    public final boolean hasBeenInitialized()
-    {
-        return _hasBeenInitialized;
-    }
-    
-    public final boolean hasBeenShutdown()
-    {
-        return _hasBeenShutdown;
-    }
-    
-    public final boolean hasCapability(String capabilityURI)
-    {
-        return getCapability(capabilityURI) != null;
-    }
-    
-    public void initialize()
-        throws SoapFault
-    {
-        if (getLog() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoLogger"));
-        
-        if (getEnvironment() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoEnvironment"));
-        
-        if (getResourceManager() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoResourceManager"));
-        
-        if (getContextPath() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoContextPath"));
-        
-        if (getWsdlPath() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoWSDLPath"));
-        
-        if (getWsdlPortType() == null)
-            throw new IllegalStateException(_MESSAGES.get("NoWSDLPortType"));
-        
-        initializeCapabilities();
-        
-        //
-        // we made it! log confirmation message
-        //
-        Object[] filler = { getContextPath() };
-        String message = _MESSAGES.get("ResourceInitialized", filler);
-        getLog().info(message);
-        
-        _hasBeenInitialized = true;
-    }
-    
-    /**
-     * 
-     * This method can be overridden to provide additional capability 
-     * initialization logic that applies generally to all capabilities. 
-     * Capability-specific initialization logic should be provided by 
-     * overriding Capability.initialize().
-     * 
-     */
-    protected void initializeCapabilities()
-        throws SoapFault
-    {
-        String contextPath = getContextPath();
-        Logger log = getLog();
-
-        Iterator i = getCapabilityURIs().iterator();
-        
-        //
-        // first create and initialize() all capabilities
-        //
-        while (i.hasNext())
-        {
-            String nextURI = (String)i.next();
-            Capability next = getCapability(nextURI);
-            next.initialize();
-            
-            Object[] filler = { contextPath, nextURI };
-            log.fine(_MESSAGES.get("CapabilityInitialized", filler));
-        }
-        
-        i = getCapabilityURIs().iterator();
-        
-        //
-        // then call initializeCompleted() for post-initialize tasks
-        //
-        while (i.hasNext())
-        {
-            String nextURI = (String)i.next();
-            Capability next = getCapability(nextURI);
-            next.initializeCompleted();
-            
-            Object[] filler = { contextPath, nextURI };
-            log.fine(_MESSAGES.get("CapabilityInitializationComplete", filler));
-        }
-    }
-    
-    public Element invoke(Element soapBody)
-    {
-        //
-        // get WS-A action, which maps to a Capability's operation
-        //
-        MessageHeaders wsa = getEnvironment().getAddressingContext();
-        String action = wsa.getAction();
-        
-        //
-        // get the capability that owns this operation so we can 
-        // delegate the request
-        //
-        Capability capability = getCapabilityForAction(action);
-        
-        if (capability == null)
-        {
-            //
-            // create and return WS-A ActionNotSupported fault
-            //
-            Object[] filler = { getContextPath(), action };
-            SoapFault wsaFault = new SoapFault(_MESSAGES.get("ActionNotSupported", filler));
-            wsaFault.setCode(SoapConstants.SENDER_QNAME);
-            wsaFault.setSubCode(WsaConstants.ACTION_NOT_SUPPORTED_FAULT_QNAME);
-            
-            Element detail = XmlUtils.createElement(WsaConstants.PROBLEM_ACTION_QNAME);
-            XmlUtils.setElement(detail, WsaConstants.ACTION_QNAME, action);
-            wsaFault.setDetail(detail);
-            
-            return wsaFault.toXML();
-        }
-        
-        MessageHandler handler = capability.getMessageHandler(action);
-        Method method = handler.getMethod();
-        
-        Object[] parameters = null;
-        
-        try
-        {
-            //
-            // translate from XML -> POJO. the reflection call will take 
-            // care of casting the generic Object references to the actual 
-            // method parameter types
-            // 
-            parameters = handler.fromXML(soapBody);
-            
-            //
-            // invoke operation and translate result to XML
-            //
-            Object result = method.invoke(capability, parameters);
-            
-            return handler.toXML(result);
-        }
-        
-        catch (Throwable error)
-        {
-            //
-            // the exception is the generic reflection error, and useless 
-            // to the programmer - we want to report on the REAL cause
-            //
-            Throwable cause = error.getCause();
-            
-            if (cause != null)  // sanity check
-                error = cause;
-            
-            Logger log = getLog();
-            
-            //
-            // log the details of de-serialization and reflection
-            //
-            if (parameters != null)
-                LoggingUtils.logCall(log, method, parameters);
-            
-            LoggingUtils.logError(log, error);
-            
-            SoapFault response = SoapUtils.convertToFault(error);
-            return response.toXML();
-        }
-    }
-    
-    public final void setContextPath(String contextPath)
-    {
-        if (contextPath == null)
-            throw new NullPointerException(_MESSAGES.get("NullContextPath"));
-        
-        _contextPath = contextPath;
-    }
-    
-    public final void setEndpointReference(EndpointReference epr)
-    {
-        if (_epr != null && hasBeenInitialized())
-            throw new RuntimeException(_MESSAGES.get("ExistingResourceEPR"));
-        
-        _epr = epr;
-    }
-    
-    public final void setEnvironment(Environment environment)
-    {
-        if (environment == null)
-            throw new NullPointerException(_MESSAGES.get("NullEnvironment"));
-
-        _environment = environment;
-    }
-    
-    public final void setInitializationParameters(Map parameters)
-    {
-        if (parameters == null)
-            parameters = Collections.EMPTY_MAP;
-        
-        _parameters = parameters;
-    }
-    
-    public final void setLog(Logger log)
-    {
-        if (log == null)
-            throw new NullPointerException(_MESSAGES.get("NullLogger"));
-
-        _log = log;
-    }
-    
-    public void setResourceManager(ResourceManager manager)
-    {
-        if (manager == null)
-            throw new NullPointerException(_MESSAGES.get("NullResourceManager"));
-        
-        _manager = manager;
-    }
-    
-    public final void setWsdlPath(String wsdlPath)
-    {
-        if (wsdlPath == null)
-            throw new NullPointerException(_MESSAGES.get("NullWsdlPath"));
-        
-        _wsdlPath = wsdlPath;
-    }
-    
-    public final void setWsdlPortType(QName wsdlPortType)
-    {
-        if (wsdlPortType == null)
-            throw new NullPointerException(_MESSAGES.get("NullWsdlPortType"));
-        
-        _wsdlPortType = wsdlPortType;
-    }
-        
-    /**
-     * 
-     * {@inheritDoc}
-     * <br><br>
-     * This implementation double-checks to make sure the resource hasn't 
-     * already been destroyed and then nulls-out all references to internal 
-     * data structures (this will highlight bugs caused by stale references 
-     * and prevent "undefined behavior").
-     *
-     */
-    public synchronized void shutdown() 
-        throws SoapFault
-    {
-        //
-        // error - we've already been here
-        //
-        if (hasBeenShutdown())
-            throw new SoapFault(_MESSAGES.get("ResourceAlreadyDestroyed"));
-        
-        //
-        // error - never initialized, why are we shutting down?
-        //
-        if (!hasBeenInitialized())
-            throw new SoapFault(_MESSAGES.get("ResourceNotInitialized"));
-
-        //
-        // set this flag early so that code that is invoked because of 
-        // capability shutdown tasks knows that the resource is dying
-        //
-        _hasBeenShutdown = true;
-        
-        //
-        // shutdown actual resource function (in capabilities)
-        //
-        shutdownCapabilities();
-                
-        ResourceManager manager = getResourceManager();
-
-        //
-        // remove resource visibility
-        // 
-        // sanity check: make sure the resource was put in manager. this may 
-        // not be the case for internal resources
-        //
-        if (manager.getResource(_epr) != null)
-            manager.removeResource(_epr);
-        
-        //
-        // sanity check: nullify fields to make sure resource isn't being 
-        // used afterwards. if it IS being used, the code will throw an NPE 
-        // instead of performing undefined behavior.
-        //
-        _epr = null;
-        _environment = null;
-        
-        //
-        // log confirmation message, then drop the log reference
-        //
-        _log.info(_MESSAGES.get("ResourceDestroyed", new Object[]{ _contextPath }));
-        _contextPath = null;
-        _log = null;
-    }
-    
-    /**
-     * 
-     * This method can be overridden to provide additional capability 
-     * shutdown logic that applies generally to all capabilities. 
-     * Capability-specific shutdown logic should be provided by 
-     * overriding Capability.shutdown().
-     * 
-     */
-    protected void shutdownCapabilities()
-        throws SoapFault
-    {
-        String contextPath = getContextPath();
-        Logger log = getLog();
-
-        Iterator i = getCapabilityURIs().iterator();
-        
-        //
-        // first warn all capabilities of pending shutdown
-        //
-        while (i.hasNext())
-        {
-            String nextURI = (String)i.next();
-            Capability next = getCapability(nextURI);
-            next.prepareShutdown();
-            
-            Object[] filler = { contextPath, nextURI };
-            log.fine(_MESSAGES.get("CapabilityPreparedForShutdown", filler));
-        }
-        
-        i = getCapabilityURIs().iterator();
-        
-        //
-        // then call shutdown() for internal capability tasks
-        //
-        while (i.hasNext())
-        {
-            String nextURI = (String)i.next();
-            Capability next = getCapability(nextURI);
-            next.shutdown();
-            
-            Object[] filler = { contextPath, nextURI };
-            log.fine(_MESSAGES.get("CapabilityShutdown", filler));
-        }
-    }
-    
-    /**
-     * 
-     * @return The resource's EPR, in string form.
-     *
-     */
-    public String toString()
-    {
-        return getEndpointReference().toString();
-    } 
-}
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.muse.core;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import org.apache.muse.core.routing.MessageHandler;
+import org.apache.muse.util.LoggingUtils;
+import org.apache.muse.util.messages.Messages;
+import org.apache.muse.util.messages.MessagesFactory;
+import org.apache.muse.util.xml.XmlUtils;
+import org.apache.muse.ws.addressing.EndpointReference;
+import org.apache.muse.ws.addressing.MessageHeaders;
+import org.apache.muse.ws.addressing.WsaConstants;
+import org.apache.muse.ws.addressing.soap.SoapConstants;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+import org.apache.muse.ws.addressing.soap.SoapUtils;
+
+/**
+ * 
+ * SimpleResource is Muse's default implementation of the core resource 
+ * type component. It provides all the code needed to collect capabilities 
+ * and delegate request to them, as well as a central place for them to 
+ * find and contact each other.
+ * 
+ * @author Dan Jemiolo (danj)
+ * 
+ */
+
+public class SimpleResource implements Resource
+{
+    //
+    // Used to lookup all exception messages
+    //
+    private static Messages _MESSAGES = MessagesFactory.get(SimpleResource.class);
+    
+    //
+    // WS-A Action -> Capability that defines the operation for the action
+    //
+    private Map _capabilitiesByAction = new HashMap();
+    
+    //
+    // Unique capability URI -> Capability
+    //
+    private Map _capabilitiesByURI = new LinkedHashMap();
+    
+    private String _contextPath = null;
+    
+    private Environment _environment = null;
+    
+    //
+    // The EPR for this resource instance
+    //
+    private EndpointReference _epr = null;
+    
+    private boolean _hasBeenInitialized = false;
+    
+    private boolean _hasBeenShutdown = false;
+    
+    private Logger _log = null;
+    
+    private ResourceManager _manager = null;
+    
+    //
+    // initialization parameters from the deployment descriptor
+    //
+    private Map _parameters = Collections.EMPTY_MAP;
+    
+    private String _wsdlPath = null;
+    
+    private QName _wsdlPortType = null;
+    
+    public void addCapability(Capability capability)
+    {
+        if (capability == null)
+            throw new RuntimeException(_MESSAGES.get("NullCapability"));
+        
+        //
+        // the capability inherits some basic components from the resource
+        //
+        capability.setResource(this);
+        capability.setLog(getLog());
+        capability.setEnvironment(getEnvironment());
+
+        String uri = capability.getCapabilityURI();
+        
+        //
+        // make sure we don't already have this capability
+        //
+        if (_capabilitiesByURI.containsKey(uri))
+        {
+            Object[] filler = { getContextPath(), uri };
+            throw new RuntimeException(_MESSAGES.get("DuplicateCapabilityURI", filler));
+        }
+        
+        _capabilitiesByURI.put(uri, capability);
+        
+        Iterator i = capability.getActions().iterator();
+        
+        while (i.hasNext())
+        {
+            String action = (String)i.next();
+            
+            //
+            // make sure some other capability isn't already using this action 
+            // URI for one of its operations
+            //
+            if (_capabilitiesByAction.containsKey(action))
+            {
+                Capability duplicate = (Capability)_capabilitiesByAction.get(action);
+                Object[] filler = { getContextPath(), action, duplicate.getCapabilityURI() };
+                throw new RuntimeException(_MESSAGES.get("DuplicateAction", filler));
+            }
+            
+            _capabilitiesByAction.put(action, capability);
+        }
+    }
+    
+    public final Capability getCapability(String capabilityURI)
+    {
+        return (Capability)_capabilitiesByURI.get(capabilityURI);
+    }
+    
+    /**
+     * 
+     * @return All of the WS-A Action URIs supported by this resource.
+     *
+     */
+    protected Collection getCapabilityActions()
+    {
+        return Collections.unmodifiableSet(_capabilitiesByAction.keySet());
+    }
+    
+    /**
+     * 
+     * @param action
+     *        A WS-A Action URI.
+     *        
+     * @return The Capability object with the method that maps to the 
+     *         given WS-A Action URI.
+     *
+     */
+    protected Capability getCapabilityForAction(String action)
+    {
+        return (Capability)_capabilitiesByAction.get(action);
+    }
+    
+    /**
+     * 
+     * @return A collection with all of the capabilities' URIs.
+     *
+     */
+    public final Collection getCapabilityURIs()
+    {
+        return Collections.unmodifiableSet(_capabilitiesByURI.keySet());
+    }
+    
+    public final String getContextPath()
+    {
+        return _contextPath;
+    }
+    
+    public EndpointReference getEndpointReference()
+    {
+        return _epr;
+    }
+    
+    public final Environment getEnvironment()
+    {
+        return _environment;
+    }
+    
+    public final String getInitializationParameter(String name)
+    {
+        return (String)getInitializationParameters().get(name);
+    }
+    
+    public final Map getInitializationParameters()
+    {
+        return _parameters;
+    }
+    
+    public final Logger getLog()
+    {
+        return _log;
+    }
+    
+    public ResourceManager getResourceManager()
+    {
+        return _manager;
+    }
+    
+    public final String getWsdlPath()
+    {
+        return _wsdlPath;
+    }
+    
+    public final QName getWsdlPortType()
+    {
+        return _wsdlPortType;
+    }
+    
+    public final boolean hasBeenInitialized()
+    {
+        return _hasBeenInitialized;
+    }
+    
+    public final boolean hasBeenShutdown()
+    {
+        return _hasBeenShutdown;
+    }
+    
+    public final boolean hasCapability(String capabilityURI)
+    {
+        return getCapability(capabilityURI) != null;
+    }
+    
+    public void initialize()
+        throws SoapFault
+    {
+        if (getLog() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoLogger"));
+        
+        if (getEnvironment() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoEnvironment"));
+        
+        if (getResourceManager() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoResourceManager"));
+        
+        if (getContextPath() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoContextPath"));
+        
+        if (getWsdlPath() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoWSDLPath"));
+        
+        if (getWsdlPortType() == null)
+            throw new IllegalStateException(_MESSAGES.get("NoWSDLPortType"));
+        
+        initializeCapabilities();
+        
+        //
+        // we made it! log confirmation message
+        //
+        Object[] filler = { getContextPath() };
+        String message = _MESSAGES.get("ResourceInitialized", filler);
+        getLog().info(message);
+        
+        _hasBeenInitialized = true;
+    }
+    
+    /**
+     * 
+     * This method can be overridden to provide additional capability 
+     * initialization logic that applies generally to all capabilities. 
+     * Capability-specific initialization logic should be provided by 
+     * overriding Capability.initialize().
+     * 
+     */
+    protected void initializeCapabilities()
+        throws SoapFault
+    {
+        String contextPath = getContextPath();
+        Logger log = getLog();
+
+        Iterator i = getCapabilityURIs().iterator();
+        
+        //
+        // first create and initialize() all capabilities
+        //
+        while (i.hasNext())
+        {
+            String nextURI = (String)i.next();
+            Capability next = getCapability(nextURI);
+            next.initialize();
+            
+            Object[] filler = { contextPath, nextURI };
+            log.fine(_MESSAGES.get("CapabilityInitialized", filler));
+        }
+        
+        i = getCapabilityURIs().iterator();
+        
+        //
+        // then call initializeCompleted() for post-initialize tasks
+        //
+        while (i.hasNext())
+        {
+            String nextURI = (String)i.next();
+            Capability next = getCapability(nextURI);
+            next.initializeCompleted();
+            
+            Object[] filler = { contextPath, nextURI };
+            log.fine(_MESSAGES.get("CapabilityInitializationComplete", filler));
+        }
+    }
+    
+    public Element invoke(Element soapBody)
+    {
+        //
+        // get WS-A action, which maps to a Capability's operation
+        //
+        MessageHeaders wsa = getEnvironment().getAddressingContext();
+        String action = wsa.getAction();
+        
+        //
+        // get the capability that owns this operation so we can 
+        // delegate the request
+        //
+        Capability capability = getCapabilityForAction(action);
+        
+        if (capability == null)
+        {
+            //
+            // create and return WS-A ActionNotSupported fault
+            //
+            Object[] filler = { getContextPath(), action };
+            SoapFault wsaFault = new SoapFault(_MESSAGES.get("ActionNotSupported", filler));
+            wsaFault.setCode(SoapConstants.SENDER_QNAME);
+            wsaFault.setSubCode(WsaConstants.ACTION_NOT_SUPPORTED_FAULT_QNAME);
+            
+            Element detail = XmlUtils.createElement(WsaConstants.PROBLEM_ACTION_QNAME);
+            XmlUtils.setElement(detail, WsaConstants.ACTION_QNAME, action);
+            wsaFault.setDetail(detail);
+            
+            return wsaFault.toXML();
+        }
+        
+        MessageHandler handler = capability.getMessageHandler(action);
+        Method method = handler.getMethod();
+        
+        Object[] parameters = null;
+        
+        try
+        {
+            //
+            // translate from XML -> POJO. the reflection call will take 
+            // care of casting the generic Object references to the actual 
+            // method parameter types
+            // 
+            parameters = handler.fromXML(soapBody);
+            
+            //
+            // invoke operation and translate result to XML
+            //
+            Object result = method.invoke(capability, parameters);
+            
+            return handler.toXML(result);
+        }
+        
+        catch (Throwable error)
+        {
+            //
+            // the exception is the generic reflection error, and useless 
+            // to the programmer - we want to report on the REAL cause
+            //
+            Throwable cause = error.getCause();
+            
+            if (cause != null)  // sanity check
+                error = cause;
+            
+            Logger log = getLog();
+            
+            //
+            // log the details of de-serialization and reflection
+            //
+            if (parameters != null)
+                LoggingUtils.logCall(log, method, parameters);
+            
+            LoggingUtils.logError(log, error);
+            
+            SoapFault response = SoapUtils.convertToFault(error);
+            return response.toXML();
+        }
+    }
+    
+    public final void setContextPath(String contextPath)
+    {
+        if (contextPath == null)
+            throw new NullPointerException(_MESSAGES.get("NullContextPath"));
+        
+        _contextPath = contextPath;
+    }
+    
+    public final void setEndpointReference(EndpointReference epr)
+    {
+        if (_epr != null && hasBeenInitialized())
+            throw new RuntimeException(_MESSAGES.get("ExistingResourceEPR"));
+        
+        _epr = epr;
+    }
+    
+    public final void setEnvironment(Environment environment)
+    {
+        if (environment == null)
+            throw new NullPointerException(_MESSAGES.get("NullEnvironment"));
+
+        _environment = environment;
+    }
+    
+    public final void setInitializationParameters(Map parameters)
+    {
+        if (parameters == null)
+            parameters = Collections.EMPTY_MAP;
+        
+        _parameters = parameters;
+    }
+    
+    public final void setLog(Logger log)
+    {
+        if (log == null)
+            throw new NullPointerException(_MESSAGES.get("NullLogger"));
+
+        _log = log;
+    }
+    
+    public void setResourceManager(ResourceManager manager)
+    {
+        if (manager == null)
+            throw new NullPointerException(_MESSAGES.get("NullResourceManager"));
+        
+        _manager = manager;
+    }
+    
+    public final void setWsdlPath(String wsdlPath)
+    {
+        if (wsdlPath == null)
+            throw new NullPointerException(_MESSAGES.get("NullWsdlPath"));
+        
+        _wsdlPath = wsdlPath;
+    }
+    
+    public final void setWsdlPortType(QName wsdlPortType)
+    {
+        if (wsdlPortType == null)
+            throw new NullPointerException(_MESSAGES.get("NullWsdlPortType"));
+        
+        _wsdlPortType = wsdlPortType;
+    }
+        
+    /**
+     * 
+     * {@inheritDoc}
+     * <br><br>
+     * This implementation double-checks to make sure the resource hasn't 
+     * already been destroyed and then nulls-out all references to internal 
+     * data structures (this will highlight bugs caused by stale references 
+     * and prevent "undefined behavior").
+     *
+     */
+    public synchronized void shutdown() 
+        throws SoapFault
+    {
+        //
+        // error - we've already been here
+        //
+        if (hasBeenShutdown())
+            throw new SoapFault(_MESSAGES.get("ResourceAlreadyDestroyed"));
+        
+        //
+        // error - never initialized, why are we shutting down?
+        //
+        if (!hasBeenInitialized())
+            throw new SoapFault(_MESSAGES.get("ResourceNotInitialized"));
+
+        //
+        // set this flag early so that code that is invoked because of 
+        // capability shutdown tasks knows that the resource is dying
+        //
+        _hasBeenShutdown = true;
+        
+        //
+        // shutdown actual resource function (in capabilities)
+        //
+        shutdownCapabilities();
+                
+        ResourceManager manager = getResourceManager();
+
+        //
+        // remove resource visibility
+        // 
+        // sanity check: make sure the resource was put in manager. this may 
+        // not be the case for internal resources
+        //
+        if (manager.getResource(_epr) != null)
+            manager.removeResource(_epr);
+        
+        //
+        // sanity check: nullify fields to make sure resource isn't being 
+        // used afterwards. if it IS being used, the code will throw an NPE 
+        // instead of performing undefined behavior.
+        //
+        _epr = null;
+        _environment = null;
+        
+        //
+        // log confirmation message, then drop the log reference
+        //
+        _log.info(_MESSAGES.get("ResourceDestroyed", new Object[]{ _contextPath }));
+        _contextPath = null;
+        _log = null;
+    }
+    
+    /**
+     * 
+     * This method can be overridden to provide additional capability 
+     * shutdown logic that applies generally to all capabilities. 
+     * Capability-specific shutdown logic should be provided by 
+     * overriding Capability.shutdown().
+     * 
+     */
+    protected void shutdownCapabilities()
+        throws SoapFault
+    {
+        String contextPath = getContextPath();
+        Logger log = getLog();
+
+        Iterator i = getCapabilityURIs().iterator();
+        
+        //
+        // first warn all capabilities of pending shutdown
+        //
+        while (i.hasNext())
+        {
+            String nextURI = (String)i.next();
+            Capability next = getCapability(nextURI);
+            next.prepareShutdown();
+            
+            Object[] filler = { contextPath, nextURI };
+            log.fine(_MESSAGES.get("CapabilityPreparedForShutdown", filler));
+        }
+        
+        i = getCapabilityURIs().iterator();
+        
+        //
+        // then call shutdown() for internal capability tasks
+        //
+        while (i.hasNext())
+        {
+            String nextURI = (String)i.next();
+            Capability next = getCapability(nextURI);
+            next.shutdown();
+            
+            Object[] filler = { contextPath, nextURI };
+            log.fine(_MESSAGES.get("CapabilityShutdown", filler));
+        }
+    }
+    
+    /**
+     * 
+     * @return The resource's EPR, in string form.
+     *
+     */
+    public String toString()
+    {
+        return getEndpointReference().toString();
+    } 
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResourceManager.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResourceManager.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResourceManager.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/SimpleResourceManager.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDefinition.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDefinition.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDefinition.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDefinition.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDescriptor.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDescriptor.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DeploymentDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DeploymentDescriptor.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DeploymentDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DeploymentDescriptor.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DescriptorConstants.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DescriptorConstants.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DescriptorConstants.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DescriptorConstants.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/InitParamDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/InitParamDescriptor.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/InitParamDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/InitParamDescriptor.java Sat Mar 24 06:09:36 2007
@@ -1,53 +1,57 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
- *
- *  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 org.apache.muse.core.descriptor;
-
-import java.util.Map;
-
-import org.w3c.dom.Element;
-
-import org.apache.muse.util.xml.XmlSerializable;
-import org.apache.muse.ws.addressing.soap.SoapFault;
-
-/**
- * 
- * InitParamDescriptor defines a sub-section of the Muse deployment descriptor 
- * that may be used in multiple places - the sequence of initialization 
- * parameters. This mini-descriptor can be used to load the name-value pairs 
- * found in <em>init-param</em> elements and read them as a java.util.Map.
- *
- * @author Dan Jemiolo (danj)
- *
- */
-
-public interface InitParamDescriptor extends XmlSerializable
-{
-    Map getInitializationParameters();
-    
-    /**
-     * 
-     * @param elementContainingInitParams
-     *        The element that contains zero or more child elements named 
-     *        <em>init-param</em>, <strong>not</strong> the <em>init-param</em> 
-     *        element(s) itself.
-     *
-     */
-    void load(Element elementContainingInitParams)
-        throws SoapFault;
-    
-    void setInitializationParameters(Map parameters);
-}
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.muse.core.descriptor;
+
+import java.util.Map;
+
+import org.w3c.dom.Element;
+
+import org.apache.muse.util.xml.XmlSerializable;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+
+/**
+ * 
+ * InitParamDescriptor defines a sub-section of the Muse deployment descriptor 
+ * that may be used in multiple places - the sequence of initialization 
+ * parameters. This mini-descriptor can be used to load the name-value pairs 
+ * found in <em>init-param</em> elements and read them as a java.util.Map.
+ *
+ * @author Dan Jemiolo (danj)
+ *
+ */
+
+public interface InitParamDescriptor extends XmlSerializable
+{
+    Map getInitializationParameters();
+    
+    /**
+     * 
+     * @param elementContainingInitParams
+     *        The element that contains zero or more child elements named 
+     *        <em>init-param</em>, <strong>not</strong> the <em>init-param</em> 
+     *        element(s) itself.
+     *
+     */
+    void load(Element elementContainingInitParams)
+        throws SoapFault;
+    
+    void setInitializationParameters(Map parameters);
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/LoggingConfig.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/LoggingConfig.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/LoggingConfig.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/LoggingConfig.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDefinition.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDefinition.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDefinition.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDefinition.java Sat Mar 24 06:09:36 2007
@@ -1,74 +1,78 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
- *
- *  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 org.apache.muse.core.descriptor;
-
-import java.util.Map;
-
-import org.apache.muse.core.Persistence;
-import org.apache.muse.util.ReflectUtils;
-
-/**
- * 
- * @author Dan Jemiolo (danj)
- *
- */
-
-public class PersistenceDefinition
-{
-    private Map _parameters = null;
-    
-    private Class _persistenceClass = null;
-    
-    private String _persistenceLocation = null;
-
-    public Map getInitializationParameters()
-    {
-        return _parameters;
-    }
-
-    public Class getPersistenceClass()
-    {
-        return _persistenceClass;
-    }
-    
-    public String getPersistenceLocation()
-    {
-        return _persistenceLocation;
-    }
-
-    public Persistence newInstance()
-    {
-        Persistence persistence = (Persistence)ReflectUtils.newInstance(getPersistenceClass());
-        persistence.setPersistenceLocation(getPersistenceLocation());
-        return persistence;
-    }
-
-    public void setInitializationParameters(Map parameters)
-    {
-        _parameters = parameters;
-    }
-
-    public void setPersistenceClass(Class persistenceClass)
-    {
-        _persistenceClass = persistenceClass;
-    }
-
-    public void setPersistenceLocation(String persistenceLocation)
-    {
-        _persistenceLocation = persistenceLocation;
-    }
-}
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.muse.core.descriptor;
+
+import java.util.Map;
+
+import org.apache.muse.core.Persistence;
+import org.apache.muse.util.ReflectUtils;
+
+/**
+ * 
+ * @author Dan Jemiolo (danj)
+ *
+ */
+
+public class PersistenceDefinition
+{
+    private Map _parameters = null;
+    
+    private Class _persistenceClass = null;
+    
+    private String _persistenceLocation = null;
+
+    public Map getInitializationParameters()
+    {
+        return _parameters;
+    }
+
+    public Class getPersistenceClass()
+    {
+        return _persistenceClass;
+    }
+    
+    public String getPersistenceLocation()
+    {
+        return _persistenceLocation;
+    }
+
+    public Persistence newInstance()
+    {
+        Persistence persistence = (Persistence)ReflectUtils.newInstance(getPersistenceClass());
+        persistence.setPersistenceLocation(getPersistenceLocation());
+        return persistence;
+    }
+
+    public void setInitializationParameters(Map parameters)
+    {
+        _parameters = parameters;
+    }
+
+    public void setPersistenceClass(Class persistenceClass)
+    {
+        _persistenceClass = persistenceClass;
+    }
+
+    public void setPersistenceLocation(String persistenceLocation)
+    {
+        _persistenceLocation = persistenceLocation;
+    }
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDescriptor.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/PersistenceDescriptor.java Sat Mar 24 06:09:36 2007
@@ -1,39 +1,43 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
- *
- *  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 org.apache.muse.core.descriptor;
-
-import org.w3c.dom.Element;
-
-import org.apache.muse.core.Environment;
-import org.apache.muse.util.xml.XmlSerializable;
-import org.apache.muse.ws.addressing.soap.SoapFault;
-
-/**
- * 
- * @author Dan Jemiolo (danj)
- *
- */
-
-public interface PersistenceDescriptor extends XmlSerializable
-{
-    PersistenceDefinition getPersistenceDefinition();
-    
-    void load(Element persistenceXML, Environment env)
-        throws SoapFault;
-    
-    void setPersistenceDefinition(PersistenceDefinition definition);
-}
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.muse.core.descriptor;
+
+import org.w3c.dom.Element;
+
+import org.apache.muse.core.Environment;
+import org.apache.muse.util.xml.XmlSerializable;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+
+/**
+ * 
+ * @author Dan Jemiolo (danj)
+ *
+ */
+
+public interface PersistenceDescriptor extends XmlSerializable
+{
+    PersistenceDefinition getPersistenceDefinition();
+    
+    void load(Element persistenceXML, Environment env)
+        throws SoapFault;
+    
+    void setPersistenceDefinition(PersistenceDefinition definition);
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDefinition.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDefinition.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDefinition.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDefinition.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDescriptor.java?view=diff&rev=522015&r1=522014&r2=522015
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/ResourceDescriptor.java Sat Mar 24 06:09:36 2007
@@ -1,18 +1,22 @@
-/*=============================================================================*
- *  Copyright 2006 The Apache Software Foundation
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  *
- *  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 org.apache.muse.core.descriptor;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: muse-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-commits-help@ws.apache.org