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