Author: jsdelfino
Date: Thu Aug 23 01:10:23 2007
New Revision: 568874
URL: http://svn.apache.org/viewvc?rev=568874&view=rev
Log:
Moved Service declaration util class to contribution. Will need more work later
to find a better place for it.
Added:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
(with props)
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
(with props)
Removed:
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/TempServiceDeclarationUtil.java
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultPackageProcessorExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -22,9 +22,9 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
-import java.util.Set;
+import java.util.List;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
@@ -91,7 +91,7 @@
// Dynamically load a factory class declared under
META-INF/services
ClassLoader classLoader = factoryInterface.getClassLoader();
try {
- Set<String> classNames =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
factoryInterface.getName());
+ List<String> classNames =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
factoryInterface.getName());
if (!classNames.isEmpty()) {
Class<?> factoryClass =
Class.forName(classNames.iterator().next(), true, classLoader);
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultPackageProcessorExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultPackageProcessorExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultPackageProcessorExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultPackageProcessorExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -28,10 +28,9 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.tuscany.sca.contribution.service.ContributionException;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
* Default implementation of ContributionProcessorRegistry
@@ -65,15 +64,15 @@
// Get the processor service declarations
ClassLoader classLoader = PackageProcessor.class.getClassLoader();
- Set<String> processorDeclarations;
+ List<String> processorDeclarations;
try {
- processorDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
PackageProcessor.class.getName());
+ processorDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
PackageProcessor.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
for (String processorDeclaration: processorDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(processorDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(processorDeclaration);
String className = attributes.get("class");
// Load a URL artifact processor
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -20,8 +20,8 @@
import java.io.IOException;
import java.lang.reflect.Constructor;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
@@ -34,7 +34,7 @@
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
import org.apache.tuscany.sca.policy.PolicyFactory;
/**
@@ -84,15 +84,15 @@
// Get the processor service declarations
ClassLoader classLoader = StAXArtifactProcessor.class.getClassLoader();
- Set<String> processorDeclarations;
+ List<String> processorDeclarations;
try {
- processorDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
StAXArtifactProcessor.class.getName());
+ processorDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
StAXArtifactProcessor.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
for (String processorDeclaration: processorDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(processorDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(processorDeclaration);
String className = attributes.get("class");
// Load a StAX artifact processor
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -22,14 +22,14 @@
import java.lang.reflect.Constructor;
import java.net.URI;
import java.net.URL;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
* The default implementation of a StAX artifact processor registry.
@@ -78,15 +78,15 @@
// Get the processor service declarations
ClassLoader classLoader = URLArtifactProcessor.class.getClassLoader();
- Set<String> processorDeclarations;
+ List<String> processorDeclarations;
try {
- processorDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
URLArtifactProcessor.class.getName());
+ processorDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
URLArtifactProcessor.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
for (String processorDeclaration: processorDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(processorDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(processorDeclaration);
String className = attributes.get("class");
// Load a URL artifact processor
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -20,10 +20,10 @@
import java.io.IOException;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
* The default implementation of a model resolver Class registry.
@@ -93,16 +93,16 @@
// Get the model resolver service declarations
ClassLoader classLoader = ModelResolver.class.getClassLoader();
- Set<String> modelResolverDeclarations;
+ List<String> modelResolverDeclarations;
try {
- modelResolverDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
ModelResolver.class.getName());
+ modelResolverDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
ModelResolver.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
// Load model resolvers
for (String dataBindingDeclaration: modelResolverDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(dataBindingDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(dataBindingDeclaration);
String className = attributes.get("class");
String model = attributes.get("model");
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -22,9 +22,8 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
* Default implementation of a contribution listener extension point.
@@ -58,9 +57,9 @@
// Get the databinding service declarations
ClassLoader classLoader = ContributionListener.class.getClassLoader();
- Set<String> listenerDeclarations;
+ List<String> listenerDeclarations;
try {
- listenerDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
ContributionListener.class.getName());
+ listenerDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
ContributionListener.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
Added:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java?rev=568874&view=auto
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
(added)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
Thu Aug 23 01:10:23 2007
@@ -0,0 +1,98 @@
+/*
+ * 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.tuscany.sca.contribution.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+public class ServiceConfigurationUtil {
+
+ /**
+ * Read the service name from a configuration file
+ *
+ * @param classLoader
+ * @param name The name of the service class
+ * @return A class name which extends/implements the service class
+ * @throws IOException
+ */
+ public static List<String> getServiceClassNames(ClassLoader classLoader,
String name) throws IOException {
+ List<String> classNames = new ArrayList<String>();
+ for (URL url:
Collections.list(classLoader.getResources("META-INF/services/" + name))) {
+ InputStream is = url.openStream();
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(is));
+ while (true) {
+ String line = reader.readLine();
+ if (line == null)
+ break;
+ line = line.trim();
+ if (!line.startsWith("#") && !"".equals(line)) {
+ classNames.add(line.trim());
+ }
+ }
+ } finally {
+ if (reader != null)
+ reader.close();
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException ioe) {}
+ }
+ }
+ }
+ return classNames;
+ }
+
+ /**
+ * Parse a service declaration in the form class;attr=value,attr=value and
+ * return a map of attributes
+ *
+ * @param declaration
+ * @return a map of attributes
+ */
+ public static Map<String, String> parseServiceDeclaration(String
declaration) {
+ Map<String, String> attributes = new HashMap<String, String>();
+ StringTokenizer tokens = new StringTokenizer(declaration);
+ String className = tokens.nextToken(";");
+ if (className != null)
+ attributes.put("class", className);
+ for (; tokens.hasMoreTokens(); ) {
+ String key = tokens.nextToken("=").substring(1);
+ if (key == null)
+ break;
+ String value = tokens.nextToken(",").substring(1);
+ if (value == null)
+ break;
+ attributes.put(key, value);
+ }
+ return attributes;
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/util/ServiceConfigurationUtil.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
(original)
+++
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
Thu Aug 23 01:10:23 2007
@@ -25,11 +25,12 @@
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
/**
* Default implementation of a registry to hold all the Tuscany core extension
@@ -68,7 +69,7 @@
// Dynamically load an extension point class declared under
META-INF/services
ClassLoader classLoader = extensionPointType.getClassLoader();
try {
- Set<String> classNames =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
extensionPointType.getName());
+ List<String> classNames =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
extensionPointType.getName());
if (!classNames.isEmpty()) {
Class<?> extensionPointClass =
Class.forName(classNames.iterator().next(), true, classLoader);
Modified:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -25,12 +25,11 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Implementation;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
@@ -113,10 +112,10 @@
private List<ProviderFactory> loadProviderFactories(Class<?> factoryClass)
{
// Get the provider factory service declarations
- Set<String> factoryDeclarations;
+ List<String> factoryDeclarations;
try {
ClassLoader classLoader = factoryClass.getClassLoader();
- factoryDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
factoryClass.getName());
+ factoryDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
factoryClass.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
@@ -126,7 +125,7 @@
List<ProviderFactory> factories = new ArrayList<ProviderFactory>();
for (String factoryDeclaration: factoryDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(factoryDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(factoryDeclaration);
String className = attributes.get("class");
// Load an implementation provider factory
Modified:
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -23,13 +23,13 @@
import java.lang.ref.WeakReference;
import java.lang.reflect.Constructor;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
+import org.apache.tuscany.sca.databinding.impl.ServiceConfigurationUtil;
import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
/**
* The default implementation of a data binding extension point.
@@ -90,17 +90,17 @@
// Get the databinding service declarations
ClassLoader classLoader = DataBinding.class.getClassLoader();
- Set<String> dataBindingDeclarations;
+ List<String> dataBindingDeclarations;
try {
dataBindingDeclarations =
- TempServiceDeclarationUtil.getServiceClassNames(classLoader,
DataBinding.class.getName());
+ ServiceConfigurationUtil.getServiceClassNames(classLoader,
DataBinding.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
// Load data bindings
for (String dataBindingDeclaration : dataBindingDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(dataBindingDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(dataBindingDeclaration);
String className = attributes.get("class");
String type = attributes.get("type");
String name = attributes.get("name");
Modified:
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
Thu Aug 23 01:10:23 2007
@@ -24,10 +24,9 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.tuscany.sca.databinding.impl.DirectedGraph;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
+import org.apache.tuscany.sca.databinding.impl.ServiceConfigurationUtil;
/**
* @version $Rev$ $Date$
@@ -84,16 +83,16 @@
// Get the transformer service declarations
ClassLoader classLoader = transformerClass.getClassLoader();
- Set<String> transformerDeclarations;
+ List<String> transformerDeclarations;
try {
- transformerDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
transformerClass.getName());
+ transformerDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
transformerClass.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
// Load transformers
for (String transformerDeclaration: transformerDeclarations) {
- Map<String, String> attributes =
TempServiceDeclarationUtil.parseServiceDeclaration(transformerDeclaration);
+ Map<String, String> attributes =
ServiceConfigurationUtil.parseServiceDeclaration(transformerDeclaration);
String className = attributes.get("class");
String source = attributes.get("source");
String target = attributes.get("target");
Added:
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java?rev=568874&view=auto
==============================================================================
---
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
(added)
+++
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
Thu Aug 23 01:10:23 2007
@@ -0,0 +1,98 @@
+/*
+ * 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.tuscany.sca.databinding.impl;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+public class ServiceConfigurationUtil {
+
+ /**
+ * Read the service name from a configuration file
+ *
+ * @param classLoader
+ * @param name The name of the service class
+ * @return A class name which extends/implements the service class
+ * @throws IOException
+ */
+ public static List<String> getServiceClassNames(ClassLoader classLoader,
String name) throws IOException {
+ List<String> classNames = new ArrayList<String>();
+ for (URL url:
Collections.list(classLoader.getResources("META-INF/services/" + name))) {
+ InputStream is = url.openStream();
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(is));
+ while (true) {
+ String line = reader.readLine();
+ if (line == null)
+ break;
+ line = line.trim();
+ if (!line.startsWith("#") && !"".equals(line)) {
+ classNames.add(line.trim());
+ }
+ }
+ } finally {
+ if (reader != null)
+ reader.close();
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException ioe) {}
+ }
+ }
+ }
+ return classNames;
+ }
+
+ /**
+ * Parse a service declaration in the form class;attr=value,attr=value and
+ * return a map of attributes
+ *
+ * @param declaration
+ * @return a map of attributes
+ */
+ public static Map<String, String> parseServiceDeclaration(String
declaration) {
+ Map<String, String> attributes = new HashMap<String, String>();
+ StringTokenizer tokens = new StringTokenizer(declaration);
+ String className = tokens.nextToken(";");
+ if (className != null)
+ attributes.put("class", className);
+ for (; tokens.hasMoreTokens(); ) {
+ String key = tokens.nextToken("=").substring(1);
+ if (key == null)
+ break;
+ String value = tokens.nextToken(",").substring(1);
+ if (value == null)
+ break;
+ attributes.put(key, value);
+ }
+ return attributes;
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/ServiceConfigurationUtil.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
(original)
+++
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
Thu Aug 23 01:10:23 2007
@@ -23,7 +23,6 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
@@ -35,6 +34,7 @@
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
@@ -46,7 +46,6 @@
import org.apache.tuscany.sca.core.scope.ScopeRegistry;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
import org.apache.tuscany.sca.policy.PolicyFactory;
@@ -200,7 +199,7 @@
// Load and instantiate the modules found on the classpath
modules = new ArrayList<ModuleActivator>();
try {
- Set<String> classNames =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
ModuleActivator.class.getName());
+ List<String> classNames =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
ModuleActivator.class.getName());
for (String className : classNames) {
Class moduleClass = Class.forName(className, true,
classLoader);
ModuleActivator module =
(ModuleActivator)moduleClass.newInstance();
Modified:
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java?rev=568874&r1=568873&r2=568874&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
(original)
+++
incubator/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
Thu Aug 23 01:10:23 2007
@@ -18,11 +18,15 @@
*/
package org.apache.tuscany.sca.interfacedef.java;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
-import java.util.Set;
-import org.apache.tuscany.sca.interfacedef.impl.TempServiceDeclarationUtil;
import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl;
import
org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
@@ -52,9 +56,9 @@
// Get the databinding service declarations
ClassLoader classLoader = JavaInterfaceVisitor.class.getClassLoader();
- Set<String> visitorDeclarations;
+ List<String> visitorDeclarations;
try {
- visitorDeclarations =
TempServiceDeclarationUtil.getServiceClassNames(classLoader,
JavaInterfaceVisitor.class.getName());
+ visitorDeclarations = getServiceClassNames(classLoader,
JavaInterfaceVisitor.class.getName());
} catch (IOException e) {
throw new IllegalStateException(e);
}
@@ -76,6 +80,43 @@
}
loadedVisitors = true;
+ }
+
+ /**
+ * Read the service name from a configuration file
+ *
+ * @param classLoader
+ * @param name The name of the service class
+ * @return A class name which extends/implements the service class
+ * @throws IOException
+ */
+ private List<String> getServiceClassNames(ClassLoader classLoader, String
name) throws IOException {
+ List<String> classNames = new ArrayList<String>();
+ for (URL url:
Collections.list(classLoader.getResources("META-INF/services/" + name))) {
+ InputStream is = url.openStream();
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new InputStreamReader(is));
+ while (true) {
+ String line = reader.readLine();
+ if (line == null)
+ break;
+ line = line.trim();
+ if (!line.startsWith("#") && !"".equals(line)) {
+ classNames.add(line.trim());
+ }
+ }
+ } finally {
+ if (reader != null)
+ reader.close();
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException ioe) {}
+ }
+ }
+ }
+ return classNames;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]