Author: hiranya
Date: Wed Jan 18 14:22:49 2012
New Revision: 1232898

URL: http://svn.apache.org/viewvc?rev=1232898&view=rev
Log:
Some refactoring and building REST APIs at startup

Modified:
    synapse/trunk/java/modules/core/pom.xml
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationBuilder.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/TemplateEndpoint.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java

Modified: synapse/trunk/java/modules/core/pom.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/pom.xml (original)
+++ synapse/trunk/java/modules/core/pom.xml Wed Jan 18 14:22:49 2012
@@ -210,6 +210,11 @@
         </dependency>
         <dependency>
             <groupId>net.sf.saxon</groupId>
+            <artifactId>saxon</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.saxon</groupId>
             <artifactId>saxon-dom</artifactId>
             <scope>test</scope>
         </dependency>

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationBuilder.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationBuilder.java?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationBuilder.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationBuilder.java
 Wed Jan 18 14:22:49 2012
@@ -41,6 +41,7 @@ import org.apache.synapse.core.axis2.Pro
 import org.apache.synapse.endpoints.Endpoint;
 import org.apache.synapse.eventing.SynapseEventSource;
 import org.apache.synapse.mediators.base.SequenceMediator;
+import org.apache.synapse.rest.API;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -130,7 +131,8 @@ public class MultiXMLConfigurationBuilde
         createEventSources(synapseConfig, root, properties);
         createExecutors(synapseConfig, root, properties);
         createMessageStores(synapseConfig, root, properties);
-        createMessageProcessors(synapseConfig,root,properties);
+        createMessageProcessors(synapseConfig, root, properties);
+        createAPIs(synapseConfig, root, properties);
 
         return synapseConfig;
     }
@@ -414,7 +416,6 @@ public class MultiXMLConfigurationBuilde
         }
     }
 
-
     private static void createMessageProcessors(SynapseConfiguration 
synapseConfig,
                                             String rootDirPath, Properties 
properties) {
 
@@ -439,6 +440,28 @@ public class MultiXMLConfigurationBuilde
         }
     }
 
+    private static void createAPIs(SynapseConfiguration synapseConfig,
+                                            String rootDirPath, Properties 
properties) {
+
+        File apiDir = new File(rootDirPath, REST_API_DIR);
+        if (apiDir.exists()) {
+            if (log.isDebugEnabled()) {
+                log.debug("Loading APIs from :" + apiDir.getPath());
+            }
+
+            Iterator apiIterator = FileUtils.iterateFiles(apiDir, extensions, 
false);
+            while (apiIterator.hasNext()) {
+                File file = (File) apiIterator.next();
+                OMElement document = getOMElement(file);
+                API api = 
SynapseXMLConfigurationFactory.defineAPI(synapseConfig, document);
+                if (api != null) {
+                    api.setFileName(file.getName());
+                    
synapseConfig.getArtifactDeploymentStore().addArtifact(file.getAbsolutePath(),
+                            api.getName());
+                }
+            }
+        }
+    }
 
     private static OMElement getOMElement(File file) {
         FileInputStream is;

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java
 Wed Jan 18 14:22:49 2012
@@ -319,9 +319,10 @@ public class SynapseXMLConfigurationFact
         }
     }
 
-    public static void defineAPI(SynapseConfiguration config, OMElement elem) {
+    public static API defineAPI(SynapseConfiguration config, OMElement elem) {
         API api = APIFactory.createAPI(elem);
         config.addAPI(api.getName(), api);
+        return api;
     }
 
     private static void handleException(String msg) {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/TemplateEndpoint.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/TemplateEndpoint.java?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/TemplateEndpoint.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/TemplateEndpoint.java
 Wed Jan 18 14:22:49 2012
@@ -119,7 +119,7 @@ public class TemplateEndpoint extends Ab
                 // this endpoint is static -->
                 // since template-endpoint is static, should ONLY be loaded at 
initialization to prevent
                 // reloading every single time this endpoint is executed..
-                // incase tempalate config has changed this endpoint should be 
redeployed
+                // in case template config has changed this endpoint should be 
redeployed
                 reLoad = false;
             }
         }

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
 Wed Jan 18 14:22:49 2012
@@ -41,6 +41,7 @@ import org.jaxen.function.StringFunction
 import javax.activation.DataHandler;
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.Format;
 import java.text.SimpleDateFormat;
@@ -326,8 +327,10 @@ public class GetPropertyFunction impleme
                         OMText omText = (OMText) propEntry.getValue();
                         DataHandler dh = (DataHandler) omText.getDataHandler();
                         if (omText.getDataHandler() != null) {
+                            InputStream in = null;
                             try {
-                                InputStreamReader streamReader = new 
InputStreamReader(dh.getInputStream());
+                                in = dh.getInputStream();
+                                InputStreamReader streamReader = new 
InputStreamReader(in);
                                 BufferedReader stringReader = new 
BufferedReader(streamReader);
                                 StringBuilder omTextString = new 
StringBuilder(NULL_STRING);
                                 String tempStr;
@@ -337,6 +340,12 @@ public class GetPropertyFunction impleme
                                 return omTextString.toString();
                             } catch (IOException e) {
                                 return NULL_STRING;
+                            } finally {
+                                if (in != null) {
+                                    try {
+                                        in.close();
+                                    } catch (IOException ignore) { }
+                                }
                             }
                         } else {
                             omText.getText();

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java?rev=1232898&r1=1232897&r2=1232898&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
 Wed Jan 18 14:22:49 2012
@@ -135,7 +135,7 @@ public class AggregateMediator extends A
             Aggregate aggregate = null;
             String correlationIdName = (id != null ? 
EIPConstants.AGGREGATE_CORRELATION + "." + id :
                     EIPConstants.AGGREGATE_CORRELATION);
-            // if a correlateExpression is provided and there is a coresponding
+            // if a correlateExpression is provided and there is a 
corresponding
             // element in the current message prepare to correlate the 
messages on that
             if (correlateExpression != null
                     && correlateExpression.evaluate(synCtx) != null) {
@@ -180,7 +180,7 @@ public class AggregateMediator extends A
                 }
 
             } else if (synCtx.getProperty(correlationIdName) != null) {
-                // if the correlattion cannot be found using the 
correlateExpression then
+                // if the correlation cannot be found using the 
correlateExpression then
                 // try the default which is through the AGGREGATE_CORRELATION 
message property
                 // which is the unique original message id of a split or 
iterate operation and
                 // which thus can be used to uniquely group messages into 
aggregates


Reply via email to