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);
}
}
}