You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2016/06/05 13:09:12 UTC
svn commit: r1746908 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml:
ConfigurationFactoryAndSerializerFinder.java MediatorFactoryFinder.java
MediatorSerializerFinder.java StartupFinder.java
Author: veithen
Date: Sun Jun 5 13:09:12 2016
New Revision: 1746908
URL: http://svn.apache.org/viewvc?rev=1746908&view=rev
Log:
SYNAPSE-485: Replace the use of sun.misc.Service with java.util.ServiceLoader. Patch provided by Auke Schrijnen.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConfigurationFactoryAndSerializerFinder.java
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
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/StartupFinder.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConfigurationFactoryAndSerializerFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConfigurationFactoryAndSerializerFinder.java?rev=1746908&r1=1746907&r2=1746908&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConfigurationFactoryAndSerializerFinder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ConfigurationFactoryAndSerializerFinder.java Sun Jun 5 13:09:12 2016
@@ -26,16 +26,15 @@ import org.apache.commons.logging.LogFac
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.XMLToObjectMapper;
-import sun.misc.Service;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
-import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
+import java.util.ServiceLoader;
/**
* This class is based on J2SE Service Provider model
@@ -106,22 +105,22 @@ public class ConfigurationFactoryAndSeri
initialized = true;
}
/**
- * Register plugable mediator factories from the classpath
+ * Register pluggable mediator factories from the classpath
* <p/>
* This looks for JAR files containing a META-INF/services that adheres to the following
- * http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider
+ * https://docs.oracle.com/javase/tutorial/ext/basics/spi.html
*/
private static void registerExtensions() {
+ Iterator<ConfigurationFactory> factories = ServiceLoader.load(ConfigurationFactory.class).iterator();
// register MediatorFactory extensions
- Iterator it = Service.providers(ConfigurationFactory.class);
- while (it.hasNext()) {
- ConfigurationFactory cf = (ConfigurationFactory) it.next();
- QName tag = cf.getTagQName();
- factoryMap.put(tag, cf.getClass());
- serializerMap.put(tag, cf.getSerializerClass());
+ while (factories.hasNext()) {
+ ConfigurationFactory factory = factories.next();
+ QName tag = factory.getTagQName();
+ factoryMap.put(tag, factory.getClass());
+ serializerMap.put(tag, factory.getSerializerClass());
if (log.isDebugEnabled()) {
- log.debug("Added MediatorFactory " + cf.getClass() + " to handle " + tag);
+ log.debug("Added MediatorFactory " + factory.getClass() + " to handle " + tag);
}
}
}
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=1746908&r1=1746907&r2=1746908&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 Sun Jun 5 13:09:12 2016
@@ -28,13 +28,13 @@ import org.apache.synapse.SynapseExcepti
import org.apache.synapse.Mediator;
import org.apache.synapse.config.XMLToObjectMapper;
import org.apache.synapse.config.xml.eventing.EventPublisherMediatorFactory;
-import sun.misc.Service;
import javax.xml.namespace.QName;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
+import java.util.ServiceLoader;
/**
*
@@ -133,18 +133,18 @@ public class MediatorFactoryFinder imple
* Register pluggable mediator factories from the classpath
*
* This looks for JAR files containing a META-INF/services that adheres to the following
- * http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider
+ * https://docs.oracle.com/javase/tutorial/ext/basics/spi.html
*/
private static void registerExtensions() {
// register MediatorFactory extensions
- Iterator it = Service.providers(MediatorFactory.class);
- while (it.hasNext()) {
- MediatorFactory mf = (MediatorFactory) it.next();
- QName tag = mf.getTagQName();
- factoryMap.put(tag, mf.getClass());
+ Iterator<MediatorFactory> factories = ServiceLoader.load(MediatorFactory.class).iterator();
+ while (factories.hasNext()) {
+ MediatorFactory factory = factories.next();
+ QName tag = factory.getTagQName();
+ factoryMap.put(tag, factory.getClass());
if (log.isDebugEnabled()) {
- log.debug("Added MediatorFactory " + mf.getClass() + " to handle " + tag);
+ log.debug("Added MediatorFactory " + factory.getClass() + " to handle " + tag);
}
}
}
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=1746908&r1=1746907&r2=1746908&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 Sun Jun 5 13:09:12 2016
@@ -25,11 +25,11 @@ import org.apache.synapse.SynapseExcepti
import org.apache.synapse.Mediator;
import org.apache.synapse.config.xml.eventing.EventPublisherMediatorSerializer;
import org.apache.synapse.mediators.builtin.RespondMediator;
-import sun.misc.Service;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.ServiceLoader;
public class MediatorSerializerFinder {
@@ -108,26 +108,27 @@ public class MediatorSerializerFinder {
* Register pluggable mediator serializers from the classpath
*
* This looks for JAR files containing a META-INF/services that adheres to the following
- * http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider
+ * https://docs.oracle.com/javase/tutorial/ext/basics/spi.html
*/
private void registerExtensions() {
if (log.isDebugEnabled()) {
log.debug("Registering mediator extensions found in the classpath.. ");
}
// register MediatorSerializer extensions
- Iterator it = Service.providers(MediatorSerializer.class);
- while (it.hasNext()) {
- MediatorSerializer ms = (MediatorSerializer) it.next();
- String name = ms.getMediatorClassName();
+ Iterator<MediatorSerializer> serializers = ServiceLoader.load(MediatorSerializer.class).iterator();
+
+ while (serializers.hasNext()) {
+ MediatorSerializer serializer = serializers.next();
+ String name = serializer.getMediatorClassName();
try {
- serializerMap.put(name, ms.getClass().newInstance());
+ serializerMap.put(name, serializer.getClass().newInstance());
} catch (InstantiationException e) {
- handleException("Error instantiating mediator serializer : " + ms);
+ handleException("Error instantiating mediator serializer : " + serializer);
} catch (IllegalAccessException e) {
- handleException("Error instantiating mediator serializer : " + ms);
+ handleException("Error instantiating mediator serializer : " + serializer);
}
if (log.isDebugEnabled()) {
- log.debug("Added MediatorSerializer " + ms.getClass().getName() + " to handle " + name);
+ log.debug("Added MediatorSerializer " + serializer.getClass().getName() + " to handle " + name);
}
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/StartupFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/StartupFinder.java?rev=1746908&r1=1746907&r2=1746908&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/StartupFinder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/StartupFinder.java Sun Jun 5 13:09:12 2016
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
+import java.util.ServiceLoader;
import javax.xml.namespace.QName;
@@ -34,8 +35,6 @@ import org.apache.synapse.Startup;
import org.apache.synapse.config.XMLToObjectMapper;
import org.apache.synapse.startup.quartz.SimpleQuartzFactory;
-import sun.misc.Service;
-
public class StartupFinder implements XMLToObjectMapper {
private static final Log log = LogFactory
@@ -100,27 +99,22 @@ public class StartupFinder implements XM
}
/**
- * Register pluggable mediator factories from the classpath
+ * Register pluggable startup factories from the classpath
* <p/>
- * This looks for JAR files containing a META-INF/services that adheres to
- * the following
- * http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider
+ * This looks for JAR files containing a META-INF/services that adheres to the following
+ * https://docs.oracle.com/javase/tutorial/ext/basics/spi.html
*/
private static void registerExtensions() {
- // log.debug("Registering mediator extensions found in the classpath : "
- // + System.getResource("java.class.path"));
-
// register MediatorFactory extensions
- Iterator<?> it = Service.providers(StartupFactory.class);
- while (it.hasNext()) {
- StartupFactory sf = (StartupFactory) it.next();
- QName tag = sf.getTagQName();
- factoryMap.put(tag, sf.getClass());
- serializerMap.put(tag, sf.getSerializerClass());
+ Iterator<StartupFactory> factories = ServiceLoader.load(StartupFactory.class).iterator();
+ while (factories.hasNext()) {
+ StartupFactory factory = factories.next();
+ QName tag = factory.getTagQName();
+ factoryMap.put(tag, factory.getClass());
+ serializerMap.put(tag, factory.getSerializerClass());
if (log.isDebugEnabled()) {
- log.debug("Added StartupFactory " + sf.getClass()
- + " to handle " + tag);
+ log.debug("Added StartupFactory " + factory.getClass() + " to handle " + tag);
}
}
}