You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by is...@apache.org on 2016/11/14 13:50:54 UTC

svn commit: r1769628 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: config/xml/ mediators/builtin/

Author: isudana
Date: Mon Nov 14 13:50:54 2016
New Revision: 1769628

URL: http://svn.apache.org/viewvc?rev=1769628&view=rev
Log:
Loopback mediator implementation by Vanji - SYNAPSE-1052

Added:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorFactory.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorSerializer.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LoopbackMediator.java
Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorFactoryFinder.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java

Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorFactory.java?rev=1769628&view=auto
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorFactory.java (added)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorFactory.java Mon Nov 14 13:50:54 2016
@@ -0,0 +1,42 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF 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.OMElement;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.builtin.LoopbackMediator;
+
+import javax.xml.namespace.QName;
+import java.util.Properties;
+
+public class LoopbackMediatorFactory extends AbstractMediatorFactory {
+
+    private static final QName LoopBack_Q = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "loopback");
+
+    @Override
+    protected Mediator createSpecificMediator(OMElement elem, Properties properties) {
+        Mediator loopBackMediator = new LoopbackMediator();
+        processAuditStatus(loopBackMediator, elem);
+        return loopBackMediator;
+    }
+
+    public QName getTagQName() {
+        return LoopBack_Q;
+    }
+}

Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorSerializer.java?rev=1769628&view=auto
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorSerializer.java (added)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/LoopbackMediatorSerializer.java Mon Nov 14 13:50:54 2016
@@ -0,0 +1,43 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF 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.OMElement;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.builtin.LoopbackMediator;
+
+
+public class LoopbackMediatorSerializer extends AbstractMediatorSerializer {
+
+    @Override
+    protected OMElement serializeSpecificMediator(Mediator m) {
+        if (!(m instanceof LoopbackMediator)) {
+            handleException("Unsupported mediator passed in for serialization : " + m.getType());
+        }
+
+        LoopbackMediator mediator = (LoopbackMediator) m;
+        OMElement loopBack = fac.createOMElement("loopback", synNS);
+        saveTracingState(loopBack, mediator);
+        return loopBack;
+    }
+
+    public String getMediatorClassName() {
+        return LoopbackMediator.class.getName();
+    }
+}

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorFactoryFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorFactoryFinder.java?rev=1769628&r1=1769627&r2=1769628&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorFactoryFinder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorFactoryFinder.java Mon Nov 14 13:50:54 2016
@@ -85,7 +85,8 @@ public class MediatorFactoryFinder imple
         PayloadFactoryMediatorFactory.class,
         BeanMediatorFactory.class,
         EJBMediatorFactory.class,
-        RespondMediatorFactory.class
+        RespondMediatorFactory.class,
+        LoopbackMediatorFactory.class
     };
 
     private final static MediatorFactoryFinder instance  = new MediatorFactoryFinder();

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=1769628&r1=1769627&r2=1769628&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 Mon Nov 14 13:50:54 2016
@@ -72,7 +72,8 @@ public class MediatorSerializerFinder {
         PayloadFactoryMediatorSerializer.class,
         BeanMediatorSerializer.class,
         EJBMediatorSerializer.class,
-        RespondMediatorSerializer.class
+        RespondMediatorSerializer.class,
+        LoopbackMediatorSerializer.class
     };
 
     private final static MediatorSerializerFinder instance = new MediatorSerializerFinder();

Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LoopbackMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LoopbackMediator.java?rev=1769628&view=auto
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LoopbackMediator.java (added)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LoopbackMediator.java Mon Nov 14 13:50:54 2016
@@ -0,0 +1,54 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF 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.mediators.builtin;
+
+import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseLog;
+import org.apache.synapse.mediators.AbstractMediator;
+
+public class LoopbackMediator extends AbstractMediator {
+
+    public boolean mediate(MessageContext synCtx) {
+
+        SynapseLog synLog = getLog(synCtx);
+
+        if (synLog.isTraceOrDebugEnabled()) {
+            synLog.traceOrDebug("Start : Loopback Mediator");
+            if (synLog.isTraceTraceEnabled()) {
+                synLog.traceTrace("Message : " + synCtx.getEnvelope());
+            }
+        }
+
+        if (!synCtx.isResponse()) {
+            synCtx.setResponse(true);
+            synCtx.setTo(null);
+            synCtx.getEnvironment().injectMessage(synCtx);
+        }
+
+        if (synLog.isTraceOrDebugEnabled()) {
+            synLog.traceOrDebug("End : Loopback Mediator");
+        }
+        return false;
+    }
+
+    @Override
+    public boolean isContentAware() {
+        return false;
+    }
+}