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 2006/07/28 17:12:41 UTC

svn commit: r426554 - in /webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing: FilePersistence.java Messages.properties RouterFilePersistence.java RouterPersistence.java SimpleResourceRouter.java

Author: danj
Date: Fri Jul 28 08:12:41 2006
New Revision: 426554

URL: http://svn.apache.org/viewvc?rev=426554&view=rev
Log:
Refactored router persistence layer to a) generalize default persistence code and reuse it for capabilities 
where applicable, and b) rely on generic persistence initialization (from the deployment descriptor).

Added:
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterFilePersistence.java
Removed:
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/FilePersistence.java
Modified:
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/Messages.properties
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterPersistence.java
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/SimpleResourceRouter.java

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/Messages.properties
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/Messages.properties?rev=426554&r1=426553&r2=426554&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/Messages.properties (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/Messages.properties Fri Jul 28 08:12:41 2006
@@ -17,4 +17,3 @@
 DestinationUnreachable = There is no resource available at the given EPR: XXXThe existing EPRs hosted by this endpoint are: XXX
 RouterIsInitialized = The resource router has been initialized.
 NoPersistenceLocation = If you use the FilePersistence class as your persistence mechansim, you must provide an initialization parameter (init-param) named 'persistence-location', which is a relative path to the directory storing the router entry files.
-NoFileForEPR = There is no XML file storing a router entry for the following EPR: XXX

Added: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterFilePersistence.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterFilePersistence.java?rev=426554&view=auto
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterFilePersistence.java (added)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterFilePersistence.java Fri Jul 28 08:12:41 2006
@@ -0,0 +1,85 @@
+/*=============================================================================*
+ *  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.routing;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.w3c.dom.Element;
+
+import org.apache.muse.core.AbstractFilePersistence;
+import org.apache.muse.core.Resource;
+import org.apache.muse.core.ResourceManager;
+import org.apache.muse.util.xml.XmlUtils;
+import org.apache.muse.ws.addressing.EndpointReference;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+
+/**
+ * 
+ * RouterFilePersistence is a component that saves router entries (EPRs and 
+ * their resource types) to XML files on disk.
+ *
+ * @author Dan Jemiolo (danj)
+ *
+ */
+
+public class RouterFilePersistence 
+    extends AbstractFilePersistence implements RouterPersistence
+{
+    protected void createResourceFile(EndpointReference epr, Resource resource, File resourceFile)
+        throws SoapFault
+    {
+        try
+        {
+            XmlUtils.toFile(epr.toXML(), resourceFile);
+        }
+        
+        catch (IOException error)
+        {
+            throw new SoapFault(error);
+        }
+    }
+    
+    protected Resource reloadResource(Element resourceXML)
+        throws SoapFault
+    {
+        ResourceManager manager = getResourceManager();
+
+        EndpointReference epr = new EndpointReference(resourceXML);
+        
+        String contextPath = getContextPath(epr);
+        Resource resource = manager.createResource(contextPath);
+        resource.setEndpointReference(epr);
+        
+        resource.initialize();
+        manager.addResource(epr, resource);
+        
+        return resource;
+    }
+    
+    public void resourceAdded(EndpointReference epr, Resource resource) 
+        throws SoapFault
+    {
+        createResourceFile(epr, resource);
+    }
+    
+    public void resourceRemoved(EndpointReference epr)
+        throws SoapFault
+    {
+        destroyResourceFile(epr);
+    }
+}

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterPersistence.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterPersistence.java?rev=426554&r1=426553&r2=426554&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterPersistence.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/RouterPersistence.java Fri Jul 28 08:12:41 2006
@@ -16,10 +16,8 @@
  
 package org.apache.muse.core.routing;
 
-import org.apache.muse.core.InitializationParameters;
-import org.apache.muse.core.ResourceManager;
+import org.apache.muse.core.Persistence;
 import org.apache.muse.core.ResourceManagerListener;
-import org.apache.muse.ws.addressing.soap.SoapFault;
 
 /**
  * 
@@ -33,12 +31,10 @@
  *
  */
 
-public interface RouterPersistence extends ResourceManagerListener, InitializationParameters
+public interface RouterPersistence 
+    extends Persistence, ResourceManagerListener
 {
-    void createResources()
-        throws SoapFault;
-    
-    ResourceManager getResourceManager();
-    
-    void setResourceManager(ResourceManager manager);
+    //
+    // no additional methods
+    //
 }

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/SimpleResourceRouter.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/SimpleResourceRouter.java?rev=426554&r1=426553&r2=426554&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/SimpleResourceRouter.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/routing/SimpleResourceRouter.java Fri Jul 28 08:12:41 2006
@@ -221,7 +221,7 @@
             // that were saved last time we shut down
             //
             persistence.setResourceManager(_resourceManager);
-            persistence.createResources();
+            persistence.reload();
             
             //
             // then add the component as a listener so it can save any new 



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