Author: charith
Date: Fri Feb 18 03:58:22 2011
New Revision: 1071873

URL: http://svn.apache.org/viewvc?rev=1071873&view=rev
Log:
adding message store mediator serializer

Added:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreMediatorSerializer.java
Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreFactory.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java?rev=1071873&r1=1071872&r2=1071873&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
 Fri Feb 18 03:58:22 2011
@@ -64,7 +64,8 @@ public class MediatorSerializerFinder {
         EnqueueMediatorSerializer.class,
         ConditionalRouterMediatorSerializer.class,
         SamplingThrottleMediatorSerializer.class,
-        EnrichMediatorSerializer.class
+        EnrichMediatorSerializer.class,
+        MessageStoreMediatorSerializer.class
     };
 
     private final static MediatorSerializerFinder instance = new 
MediatorSerializerFinder();

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreFactory.java?rev=1071873&r1=1071872&r2=1071873&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreFactory.java
 Fri Feb 18 03:58:22 2011
@@ -111,14 +111,17 @@ public class MessageStoreFactory {
 
             processor.setMessageStore(messageStore);
         } else {
-            log.warn("Creating a Message Store without ");
+            log.warn("Creating a Message Store without a Message processor ");
         }
 
         if(processor != null) {
             messageStore.setMessageProcessor(processor);
+            processor.setMessageStore(messageStore);
         } else {
             log.warn("Message Store Created with out a Message processor. ");
         }
+
+        log.info("Successfully created Message Store" + 
nameAtt.getAttributeValue());
         return messageStore;
     }
 

Added: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreMediatorSerializer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreMediatorSerializer.java?rev=1071873&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreMediatorSerializer.java
 (added)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MessageStoreMediatorSerializer.java
 Fri Feb 18 03:58:22 2011
@@ -0,0 +1,85 @@
+/*
+*  Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights 
Reserved.
+*
+*  WSO2 Inc. 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.synapse.config.xml;
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.store.MessageStoreMediator;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Serialize  an instance of a MessageStore mediator to the XML configuration .
+ * <pre>
+ * &lt;store messageStore = "message store name" [sequence = "sequence name"] 
/&gt;
+ * </pre>
+ * TODO Message store mediator will be improved with more user options
+ */
+public class MessageStoreMediatorSerializer extends AbstractMediatorSerializer 
{
+
+    private static final QName STORE_Q    = new 
QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "store");
+    private static final String  ATT_MESSAGE_STORE   = "messageStore";
+    private static final String  ATT_SEQUENCE   = "sequence";
+
+    @Override
+    protected OMElement serializeSpecificMediator(Mediator m) {
+
+        if (!(m instanceof MessageStoreMediator)) {
+            handleException("Unsupported mediator passed in for serialization 
: " + m.getType());
+        }
+
+
+        MessageStoreMediator messageStoreMediator = (MessageStoreMediator)m;
+
+        String messageStoreName = messageStoreMediator.getMessageStoreName();
+
+        OMElement storeElem = fac.createOMElement(STORE_Q);
+
+        String name = messageStoreMediator.getName();
+
+        if(name != null) {
+            OMAttribute nameAtt = fac.createOMAttribute("name" , nullNS , 
name);
+            storeElem.addAttribute(nameAtt);
+        }
+
+        //In normal operations messageStoreName can't be null
+        //But we do a null check here since in run time there can be manuel 
modifications
+        if(messageStoreName != null ) {
+            OMAttribute msName = fac.createOMAttribute(ATT_MESSAGE_STORE 
,nullNS,messageStoreName);
+            storeElem.addAttribute(msName);
+        } else {
+            handleException("Can't serialize MessageStore Mediator message 
store is null ");
+        }
+
+
+        String sequence = messageStoreMediator.getOnStoreSequence();
+        // sequence is an optional parameter
+        if(sequence != null) {
+            OMAttribute sequenceAtt = fac.createOMAttribute(ATT_SEQUENCE , 
nullNS ,sequence);
+            storeElem.addAttribute(sequenceAtt);
+        }
+
+        return storeElem;
+
+    }
+
+    public String getMediatorClassName() {
+        return MessageStoreMediator.class.getName();
+    }
+}


Reply via email to