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:16:53 UTC

svn commit: r426557 - in /webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor: CapabilityDefinition.java DescriptorConstants.java RouterDefinition.java SimpleCapabilityDescriptor.java SimpleRouterDescriptor.java

Author: danj
Date: Fri Jul 28 08:16:53 2006
New Revision: 426557

URL: http://svn.apache.org/viewvc?rev=426557&view=rev
Log:
Updated parsers for capability and router descriptors to look for <persistence/> (optional element) and 
store the definition (if present).

Modified:
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/CapabilityDefinition.java
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/DescriptorConstants.java
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/RouterDefinition.java
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleCapabilityDescriptor.java
    webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleRouterDescriptor.java

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?rev=426557&r1=426556&r2=426557&view=diff
==============================================================================
--- 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 Fri Jul 28 08:16:53 2006
@@ -20,6 +20,7 @@
 import java.util.Map;
 
 import org.apache.muse.core.Capability;
+import org.apache.muse.core.Persistence;
 import org.apache.muse.util.ReflectUtils;
 import org.apache.muse.util.messages.Messages;
 import org.apache.muse.util.messages.MessagesFactory;
@@ -46,6 +47,8 @@
     
     private Map _parameters = null;
     
+    private PersistenceDefinition _persistence = null;
+    
     private String _uri = null;
     
     public Capability newInstance()
@@ -57,6 +60,14 @@
         capability.setMessageHandlers(getMessageHandlers());
         capability.setInitializationParameters(getInitializationParameters());
         
+        PersistenceDefinition persistenceDef = getPersistenceDefinition();
+        
+        if (persistenceDef != null)
+        {
+            Persistence persistence = persistenceDef.newInstance();
+            capability.setPersistence(persistence);
+        }
+        
         return capability;
     }
     
@@ -109,5 +120,15 @@
     public void setURI(String uri)
     {
         _uri = uri;
+    }
+
+    public PersistenceDefinition getPersistenceDefinition()
+    {
+        return _persistence;
+    }
+
+    public void setPersistenceDefinition(PersistenceDefinition persistence)
+    {
+        _persistence = persistence;
     }
 }

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?rev=426557&r1=426556&r2=426557&view=diff
==============================================================================
--- 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 Fri Jul 28 08:16:53 2006
@@ -67,6 +67,9 @@
     public static final QName JAVA_PERSISTENCE_QNAME = 
         new QName(NAMESPACE_URI, "java-persistence-class", PREFIX);
     
+    public static final QName PERSISTENCE_LOCATION_QNAME = 
+        new QName(NAMESPACE_URI, "persistence-location", PREFIX);
+    
     public static final QName CAPABILITY_QNAME = 
         new QName(NAMESPACE_URI, "capability", PREFIX);
     

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/RouterDefinition.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/RouterDefinition.java?rev=426557&r1=426556&r2=426557&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/RouterDefinition.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/RouterDefinition.java Fri Jul 28 08:16:53 2006
@@ -40,7 +40,7 @@
     
     private Class _theClass = null;
     
-    private RouterPersistence _persistence = null;
+    private PersistenceDefinition _persistence = null;
     
     private Collection _resourceDefinitions = null;
     
@@ -99,17 +99,23 @@
         
         router.setResourceDefinitions(getResourceDefinitions());
         
-        router.setPersistence(getPersistence());
+        PersistenceDefinition persistenceDef = getPersistenceDefinition();
+        
+        if (persistenceDef != null)
+        {
+            RouterPersistence persistence = (RouterPersistence)persistenceDef.newInstance();
+            router.setPersistence(persistence);
+        }
         
         return router;
     }
 
-    public RouterPersistence getPersistence()
+    public PersistenceDefinition getPersistenceDefinition()
     {
         return _persistence;
     }
 
-    public void setPersistence(RouterPersistence persistence)
+    public void setPersistenceDefinition(PersistenceDefinition persistence)
     {
         _persistence = persistence;
     }

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleCapabilityDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleCapabilityDescriptor.java?rev=426557&r1=426556&r2=426557&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleCapabilityDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleCapabilityDescriptor.java Fri Jul 28 08:16:53 2006
@@ -42,6 +42,7 @@
     {
         String uri = createURI(xml);
         Class implClass = createImplementationClass(xml, environment);
+        PersistenceDefinition persistence = createPersistence(xml, environment);
         
         InitParamDescriptor paramDesc = createInitParamDescriptor();
         paramDesc.load(xml);
@@ -50,6 +51,7 @@
         _definition = new CapabilityDefinition();
         _definition.setURI(uri);
         _definition.setImplementationClass(implClass);
+        _definition.setPersistenceDefinition(persistence);
         _definition.setInitializationParameters(parameters);
     }
     
@@ -70,6 +72,25 @@
     protected InitParamDescriptor createInitParamDescriptor()
     {
         return new SimpleInitParamDescriptor();
+    }
+    
+    protected PersistenceDefinition createPersistence(Element xml, Environment env)
+        throws SoapFault
+    {
+        Element persistenceXML = XmlUtils.getElement(xml, DescriptorConstants.PERSISTENCE_QNAME);
+        
+        if (persistenceXML == null)
+            return null;
+        
+        PersistenceDescriptor desc = createPersistenceDescriptor();
+        desc.load(persistenceXML, env);
+        
+        return desc.getPersistenceDefinition();
+    }
+    
+    protected PersistenceDescriptor createPersistenceDescriptor()
+    {
+        return new SimplePersistenceDescriptor();
     }
     
     protected String createURI(Element xml)

Modified: webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleRouterDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleRouterDescriptor.java?rev=426557&r1=426556&r2=426557&view=diff
==============================================================================
--- webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleRouterDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-core/src/org/apache/muse/core/descriptor/SimpleRouterDescriptor.java Fri Jul 28 08:16:53 2006
@@ -17,7 +17,6 @@
 package org.apache.muse.core.descriptor;
 
 import java.io.File;
-import java.util.Map;
 import java.util.logging.Level;
 
 import javax.xml.namespace.QName;
@@ -26,7 +25,6 @@
 
 import org.apache.muse.core.Environment;
 import org.apache.muse.core.routing.ResourceRouter;
-import org.apache.muse.core.routing.RouterPersistence;
 import org.apache.muse.util.ReflectUtils;
 import org.apache.muse.util.messages.Messages;
 import org.apache.muse.util.messages.MessagesFactory;
@@ -56,13 +54,13 @@
     {
         Class routerClass = createRouterClass(xml, environment);
         LoggingConfig logging = createLogging(xml, environment);
-        RouterPersistence persistence = createPersistence(xml, environment);
+        PersistenceDefinition persistence = createPersistence(xml, environment);
         
         _definition = new RouterDefinition();
         _definition.setEnvironment(environment);
         _definition.setRouterClass(routerClass);
         _definition.setLoggingConfig(logging);
-        _definition.setPersistence(persistence);
+        _definition.setPersistenceDefinition(persistence);
     }
     
     protected File createLogFile(Element logging, Environment env)
@@ -108,7 +106,7 @@
         return new SimpleInitParamDescriptor();
     }
     
-    protected RouterPersistence createPersistence(Element xml, Environment env)
+    protected PersistenceDefinition createPersistence(Element xml, Environment env)
         throws SoapFault
     {
         Element persistenceXML = XmlUtils.getElement(xml, DescriptorConstants.PERSISTENCE_QNAME);
@@ -116,28 +114,15 @@
         if (persistenceXML == null)
             return null;
         
-        String className = XmlUtils.getElementText(persistenceXML, DescriptorConstants.JAVA_PERSISTENCE_QNAME);
+        PersistenceDescriptor desc = createPersistenceDescriptor();
+        desc.load(persistenceXML, env);
         
-        ClassLoader loader = env.getClassLoader();
-        Class theClass = ReflectUtils.getClass(className, loader);
-        
-        //
-        // make sure this class is an instance of RouterPersistence
-        //
-        if (!RouterPersistence.class.isAssignableFrom(theClass))
-        {
-            Object[] filler = { className, RouterPersistence.class.getName() };
-            String message = _MESSAGES.get("IncorrectPersistenceRoot", filler);
-            throw new RuntimeException(message);
-        }
-        
-        InitParamDescriptor paramDesc = createInitParamDescriptor();
-        paramDesc.load(persistenceXML);
-        Map parameters = paramDesc.getInitializationParameters();
-        
-        RouterPersistence persistence = (RouterPersistence)ReflectUtils.newInstance(theClass);
-        persistence.setInitializationParameters(parameters);
-        return persistence;
+        return desc.getPersistenceDefinition();
+    }
+    
+    protected PersistenceDescriptor createPersistenceDescriptor()
+    {
+        return new RouterPersistenceDescriptor();
     }
     
     protected Class createRouterClass(Element xml, Environment env)



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