You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2010/04/29 13:09:38 UTC
svn commit: r939261 - in /synapse/trunk/java/modules/core/src:
main/java/org/apache/synapse/config/ test/java/org/apache/synapse/config/
Author: hiranya
Date: Thu Apr 29 11:09:38 2010
New Revision: 939261
URL: http://svn.apache.org/viewvc?rev=939261&view=rev
Log:
Fixing SYNAPSE-632
* Added two new event handler methods to the SynapseObserver interface (for priority executor addition and removal)
* Implemented the new methods in the AbstractSynapseObserver
* Update the SynapseConfiguration to fire the relevant event on adding and removing executors
* Added a new test case to cover the SynapseObserver interface and related functionality
Added:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/SynapseObserverTest.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/AbstractSynapseObserver.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseObserver.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/AbstractSynapseObserver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/AbstractSynapseObserver.java?rev=939261&r1=939260&r2=939261&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/AbstractSynapseObserver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/AbstractSynapseObserver.java Thu Apr 29 11:09:38 2010
@@ -21,6 +21,7 @@ package org.apache.synapse.config;
import org.apache.synapse.Mediator;
import org.apache.synapse.Startup;
+import org.apache.synapse.commons.executors.PriorityExecutor;
import org.apache.synapse.mediators.base.SequenceMediator;
import org.apache.synapse.eventing.SynapseEventSource;
import org.apache.synapse.core.axis2.ProxyService;
@@ -95,4 +96,14 @@ public abstract class AbstractSynapseObs
log.info("Event source : " + eventSource.getName() + " was removed " +
"from the Synapse configuration successfully");
}
+
+ public void priorityExecutorAdded(PriorityExecutor exec) {
+ log.info("Priority executor : " + exec.getName() + " was added " +
+ "to the Synapse configuration successfully");
+ }
+
+ public void priorityExecutorRemoved(PriorityExecutor exec) {
+ log.info("Priority executor : " + exec.getName() + " was removed " +
+ "from the Synapse configuration successfully");
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=939261&r1=939260&r2=939261&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Thu Apr 29 11:09:38 2010
@@ -1137,6 +1137,9 @@ public class SynapseConfiguration implem
*/
public synchronized void addPriorityExecutor(String name, PriorityExecutor executor) {
executors.put(name, executor);
+ for (SynapseObserver o : observers) {
+ o.priorityExecutorAdded(executor);
+ }
}
/**
@@ -1154,7 +1157,13 @@ public class SynapseConfiguration implem
* @return removed executor
*/
public synchronized PriorityExecutor removeExecutor(String name) {
- return executors.remove(name);
+ PriorityExecutor executor = executors.remove(name);
+ if (executor != null) {
+ for (SynapseObserver o : observers) {
+ o.priorityExecutorRemoved(executor);
+ }
+ }
+ return executor;
}
private void assertAlreadyExists(String key, String type) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseObserver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseObserver.java?rev=939261&r1=939260&r2=939261&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseObserver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseObserver.java Thu Apr 29 11:09:38 2010
@@ -21,6 +21,7 @@ package org.apache.synapse.config;
import org.apache.synapse.Mediator;
import org.apache.synapse.Startup;
+import org.apache.synapse.commons.executors.PriorityExecutor;
import org.apache.synapse.eventing.SynapseEventSource;
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.synapse.endpoints.Endpoint;
@@ -102,6 +103,18 @@ public interface SynapseObserver {
*
* @param eventSource the SynapseEventSource removed from the configuration
*/
- public void eventSourceRemoved(SynapseEventSource eventSource);
+ public void eventSourceRemoved(SynapseEventSource eventSource);
+
+ /** Event fired when a priority executor is added to the configuration
+ *
+ * @param exec the PriorityExecutor added to the configuration
+ */
+ public void priorityExecutorAdded(PriorityExecutor exec);
+
+ /** Event fired when a priority executor is removed from the configuration
+ *
+ * @param exec the PriorityExecutor removed from the configuration
+ */
+ public void priorityExecutorRemoved(PriorityExecutor exec);
}
Added: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/SynapseObserverTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/SynapseObserverTest.java?rev=939261&view=auto
==============================================================================
--- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/SynapseObserverTest.java (added)
+++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/SynapseObserverTest.java Thu Apr 29 11:09:38 2010
@@ -0,0 +1,179 @@
+/*
+ * 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;
+
+import junit.framework.TestCase;
+import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.endpoints.AddressEndpoint;
+import org.apache.synapse.eventing.SynapseEventSource;
+import org.apache.synapse.core.axis2.ProxyService;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.Startup;
+import org.apache.synapse.startup.quartz.SimpleQuartz;
+import org.apache.synapse.commons.executors.PriorityExecutor;
+import org.apache.synapse.mediators.base.SequenceMediator;
+import org.apache.axis2.engine.AxisConfiguration;
+
+import java.util.*;
+
+public class SynapseObserverTest extends TestCase {
+
+ private static final int ENDPOINT = 0;
+ private static final int SEQUENCE = 1;
+ private static final int ENTRY = 2;
+ private static final int PROXY = 3;
+ private static final int STARTUP = 4;
+ private static final int EVENT_SRC = 5;
+ private static final int EXECUTOR = 6;
+
+ SimpleSynapseObserver observer = new SimpleSynapseObserver();
+
+ public void testSimpleObserver() {
+ SynapseConfiguration synapseConfig = new SynapseConfiguration();
+ synapseConfig.setAxisConfiguration(new AxisConfiguration());
+ synapseConfig.registerObserver(observer);
+
+ Endpoint epr = new AddressEndpoint();
+ epr.setName("endpoint1");
+ synapseConfig.addEndpoint(epr.getName(), epr);
+ assertItemAdded(epr.getName(), ENDPOINT);
+ synapseConfig.removeEndpoint(epr.getName());
+ assertItemRemoved(epr.getName(), ENDPOINT);
+
+ SequenceMediator seq = new SequenceMediator();
+ seq.setName("sequence1");
+ synapseConfig.addSequence(seq.getName(), seq);
+ assertItemAdded(seq.getName(), SEQUENCE);
+ synapseConfig.removeSequence(seq.getName());
+ assertItemRemoved(seq.getName(), SEQUENCE);
+
+ Entry entry = new Entry();
+ entry.setKey("entry1");
+ synapseConfig.addEntry(entry.getKey(), entry);
+ assertItemAdded(entry.getKey(), ENTRY);
+ synapseConfig.removeEntry(entry.getKey());
+ assertItemRemoved(entry.getKey(), ENTRY);
+
+ ProxyService proxy = new ProxyService("proxy1");
+ synapseConfig.addProxyService(proxy.getName(), proxy);
+ assertItemAdded(proxy.getName(), PROXY);
+ synapseConfig.removeProxyService(proxy.getName());
+ assertItemRemoved(proxy.getName(), PROXY);
+
+ Startup startup = new SimpleQuartz();
+ startup.setName("startup1");
+ synapseConfig.addStartup(startup);
+ assertItemAdded(startup.getName(), STARTUP);
+ synapseConfig.removeStartup(startup.getName());
+ assertItemRemoved(startup.getName(), STARTUP);
+
+ SynapseEventSource eventSrc = new SynapseEventSource("eventSrc1");
+ synapseConfig.addEventSource(eventSrc.getName(), eventSrc);
+ assertItemAdded(eventSrc.getName(), EVENT_SRC);
+ synapseConfig.removeEventSource(eventSrc.getName());
+ assertItemRemoved(eventSrc.getName(), EVENT_SRC);
+
+ PriorityExecutor exec = new PriorityExecutor();
+ exec.setName("exec1");
+ synapseConfig.addPriorityExecutor(exec.getName(), exec);
+ assertItemAdded(exec.getName(), EXECUTOR);
+ synapseConfig.removeExecutor(exec.getName());
+ assertItemRemoved(exec.getName(), EXECUTOR);
+ }
+
+ private void assertItemAdded(String name, int type) {
+ assertTrue(observer.tracker.get(type).contains(name));
+ }
+
+ private void assertItemRemoved(String name, int type) {
+ assertTrue(!observer.tracker.get(type).contains(name));
+ }
+
+ private class SimpleSynapseObserver implements SynapseObserver {
+
+ private Map<Integer, Set<String>> tracker = new HashMap<Integer, Set<String>>();
+
+ public SimpleSynapseObserver() {
+ tracker.put(ENDPOINT, new HashSet<String>());
+ tracker.put(SEQUENCE, new HashSet<String>());
+ tracker.put(ENTRY, new HashSet<String>());
+ tracker.put(PROXY, new HashSet<String>());
+ tracker.put(STARTUP, new HashSet<String>());
+ tracker.put(EVENT_SRC, new HashSet<String>());
+ tracker.put(EXECUTOR, new HashSet<String>());
+ }
+
+ public void endpointAdded(Endpoint endpoint) {
+ tracker.get(ENDPOINT).add(endpoint.getName());
+ }
+
+ public void endpointRemoved(Endpoint endpoint) {
+ tracker.get(ENDPOINT).remove(endpoint.getName());
+ }
+
+ public void entryAdded(Entry entry) {
+ tracker.get(ENTRY).add(entry.getKey());
+ }
+
+ public void entryRemoved(Entry entry) {
+ tracker.get(ENTRY).remove(entry.getKey());
+ }
+
+ public void eventSourceAdded(SynapseEventSource eventSource) {
+ tracker.get(EVENT_SRC).add(eventSource.getName());
+ }
+
+ public void eventSourceRemoved(SynapseEventSource eventSource) {
+ tracker.get(EVENT_SRC).remove(eventSource.getName());
+ }
+
+ public void proxyServiceAdded(ProxyService proxy) {
+ tracker.get(PROXY).add(proxy.getName());
+ }
+
+ public void proxyServiceRemoved(ProxyService proxy) {
+ tracker.get(PROXY).remove(proxy.getName());
+ }
+
+ public void sequenceAdded(Mediator sequence) {
+ tracker.get(SEQUENCE).add(((SequenceMediator) sequence).getName());
+ }
+
+ public void sequenceRemoved(Mediator sequence) {
+ tracker.get(SEQUENCE).remove(((SequenceMediator) sequence).getName());
+ }
+
+ public void startupAdded(Startup startup) {
+ tracker.get(STARTUP).add(startup.getName());
+ }
+
+ public void startupRemoved(Startup startup) {
+ tracker.get(STARTUP).remove(startup.getName());
+ }
+
+ public void priorityExecutorAdded(PriorityExecutor exec) {
+ tracker.get(EXECUTOR).add(exec.getName());
+ }
+
+ public void priorityExecutorRemoved(PriorityExecutor exec) {
+ tracker.get(EXECUTOR).remove(exec.getName());
+ }
+ }
+}