You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/05/08 20:03:44 UTC
svn commit: r405110 - in /incubator/tuscany/java/sca:
containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/
containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/
containers/container.java/src/t...
Author: jmarino
Date: Mon May 8 11:03:44 2006
New Revision: 405110
URL: http://svn.apache.org/viewcvs?rev=405110&view=rev
Log:
fix for 324
Modified:
incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/HelloWorldMCImpl.java
incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
incubator/tuscany/java/sca/containers/container.java/src/test/resources/helloworldmc/sca.module
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/ComponentLoader.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java
Modified: incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/HelloWorldMCImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/HelloWorldMCImpl.java?rev=405110&r1=405109&r2=405110&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/HelloWorldMCImpl.java (original)
+++ incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/HelloWorldMCImpl.java Mon May 8 11:03:44 2006
@@ -29,6 +29,17 @@
@Property
public String locale;
+ public String getBar() {
+ return bar;
+ }
+
+ @Property(required=true)
+ public void setBar(String bar) {
+ this.bar = bar;
+ }
+
+ public String bar;
+
public void setGreetingProvider(GreetingProvider greetingProvider) {
this.greetingProvider2 = greetingProvider;
}
Modified: incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java?rev=405110&r1=405109&r2=405110&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java (original)
+++ incubator/tuscany/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java Mon May 8 11:03:44 2006
@@ -38,6 +38,7 @@
import org.apache.tuscany.container.java.mock.binding.foo.FooBindingWireBuilder;
import org.apache.tuscany.container.java.mock.components.GenericComponent;
import org.apache.tuscany.container.java.mock.components.HelloWorldClient;
+import org.apache.tuscany.container.java.mock.components.ModuleScopeComponent;
import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
import org.apache.tuscany.container.java.mock.components.OtherTarget;
import org.apache.tuscany.container.java.mock.components.OtherTargetImpl;
@@ -45,7 +46,6 @@
import org.apache.tuscany.container.java.mock.components.SourceImpl;
import org.apache.tuscany.container.java.mock.components.Target;
import org.apache.tuscany.container.java.mock.components.TargetImpl;
-import org.apache.tuscany.container.java.mock.components.ModuleScopeComponent;
import org.apache.tuscany.core.builder.BuilderException;
import org.apache.tuscany.core.builder.ContextFactory;
import org.apache.tuscany.core.builder.ContextFactoryBuilder;
@@ -59,14 +59,12 @@
import org.apache.tuscany.core.config.ConfigurationException;
import org.apache.tuscany.core.config.ConfigurationLoadException;
import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.config.impl.Java5ComponentTypeIntrospector;
import org.apache.tuscany.core.config.processor.ProcessorUtils;
import org.apache.tuscany.core.context.CompositeContext;
import org.apache.tuscany.core.context.Context;
import org.apache.tuscany.core.context.SystemCompositeContext;
import org.apache.tuscany.core.context.event.ModuleStart;
import org.apache.tuscany.core.context.impl.CompositeContextImpl;
-import org.apache.tuscany.core.extension.config.ImplementationProcessor;
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.FieldInjector;
import org.apache.tuscany.core.injection.Injector;
@@ -176,22 +174,22 @@
return sc;
}
- public static AtomicComponent createNonIntrospectedComponent(String name, Class service, Class type, Scope scope) throws ConfigurationLoadException {
- AtomicComponent sc = factory.createSimpleComponent();
- JavaImplementation impl = factory.createJavaImplementation();
- impl.setComponentType(factory.createComponentType());
- impl.setImplementationClass(type);
- sc.setImplementation(impl);
- Service s = factory.createService();
- JavaServiceContract ji = factory.createJavaServiceContract();
- ji.setInterface(service);
- s.setServiceContract(ji);
- ji.setScope(scope);
- impl.getComponentType().getServices().add(s);
- sc.setName(name);
- sc.setImplementation(impl);
- return sc;
- }
+ public static AtomicComponent createNonIntrospectedComponent(String name, Class service, Class type, Scope scope) throws ConfigurationLoadException {
+ AtomicComponent sc = factory.createSimpleComponent();
+ JavaImplementation impl = factory.createJavaImplementation();
+ impl.setComponentType(factory.createComponentType());
+ impl.setImplementationClass(type);
+ sc.setImplementation(impl);
+ Service s = factory.createService();
+ JavaServiceContract ji = factory.createJavaServiceContract();
+ ji.setInterface(service);
+ s.setServiceContract(ji);
+ ji.setScope(scope);
+ impl.getComponentType().getServices().add(s);
+ sc.setName(name);
+ sc.setImplementation(impl);
+ return sc;
+ }
/**
@@ -207,6 +205,7 @@
JavaServiceContract ji = systemFactory.createJavaServiceContract();
s.setServiceContract(ji);
ji.setScope(Scope.AGGREGATE);
+ //impl.setComponentType(systemFactory.createComponentType());
impl.setImplementationClass(CompositeContextImpl.class);
impl.setComponentType(getCompositeComponentType());
impl.getComponentType().getServices().add(s);
@@ -230,6 +229,7 @@
s.setServiceContract(ji);
ji.setScope(Scope.AGGREGATE);
impl.setComponentType(getComponentType());
+ //impl.setComponentType(systemFactory.createComponentType());
impl.getComponentType().getServices().add(s);
sc.setName(name);
sc.setImplementation(impl);
Modified: incubator/tuscany/java/sca/containers/container.java/src/test/resources/helloworldmc/sca.module
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.java/src/test/resources/helloworldmc/sca.module?rev=405110&r1=405109&r2=405110&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.java/src/test/resources/helloworldmc/sca.module (original)
+++ incubator/tuscany/java/sca/containers/container.java/src/test/resources/helloworldmc/sca.module Mon May 8 11:03:44 2006
@@ -24,6 +24,7 @@
<v:greetingProvider>GreetingProvider</v:greetingProvider>
</references>
<properties>
+ <v:bar>bar</v:bar>
<v:locale>en</v:locale>
</properties>
</component>
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/ComponentLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/ComponentLoader.java?rev=405110&r1=405109&r2=405110&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/ComponentLoader.java Mon May 8 11:03:44 2006
@@ -16,15 +16,10 @@
*/
package org.apache.tuscany.core.loader.assembly;
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-import static org.apache.tuscany.core.loader.assembly.AssemblyConstants.COMPONENT;
-import static org.apache.tuscany.core.loader.assembly.AssemblyConstants.PROPERTIES;
-import static org.apache.tuscany.core.loader.assembly.AssemblyConstants.REFERENCES;
-
import java.util.List;
-
import javax.xml.namespace.QName;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
@@ -32,9 +27,10 @@
import org.apache.tuscany.core.builder.ObjectFactory;
import org.apache.tuscany.core.config.ConfigurationLoadException;
import org.apache.tuscany.core.loader.InvalidPropertyFactoryException;
+import org.apache.tuscany.core.loader.LoaderContext;
import org.apache.tuscany.core.loader.StAXPropertyFactory;
import org.apache.tuscany.core.loader.StAXUtil;
-import org.apache.tuscany.core.loader.LoaderContext;
+import static org.apache.tuscany.core.loader.assembly.AssemblyConstants.*;
import org.apache.tuscany.core.system.annotation.Autowire;
import org.apache.tuscany.model.assembly.AssemblyObject;
import org.apache.tuscany.model.assembly.Component;
@@ -70,24 +66,34 @@
while (true) {
switch (reader.next()) {
- case START_ELEMENT:
- QName name = reader.getName();
- if (PROPERTIES.equals(name)) {
- loadProperties(reader, loaderContext.getResourceLoader(), component);
- } else if (REFERENCES.equals(name)) {
- loadReferences(reader, component);
- } else {
- AssemblyObject o = registry.load(reader, loaderContext);
- if (o instanceof Implementation) {
- Implementation impl = (Implementation) o;
- impl.initialize(registry.getContext());
- component.setImplementation(impl);
+ case START_ELEMENT:
+ QName name = reader.getName();
+ if (PROPERTIES.equals(name)) {
+ loadProperties(reader, loaderContext.getResourceLoader(), component);
+ } else if (REFERENCES.equals(name)) {
+ loadReferences(reader, component);
+ } else {
+ AssemblyObject o = registry.load(reader, loaderContext);
+ if (o instanceof Implementation) {
+ Implementation impl = (Implementation) o;
+ impl.initialize(registry.getContext());
+ component.setImplementation(impl);
+ }
+ }
+ reader.next();
+ break;
+ case END_ELEMENT:
+ List<Property> props = component.getImplementation().getComponentType().getProperties();
+ for (Property property : props) {
+ if (property.isRequired()) {
+ if (component.getConfiguredProperty(property.getName()) == null) {
+ ConfigurationLoadException e = new ConfigurationLoadException("Required property not configured");
+ e.setIdentifier(property.getName());
+ throw e;
+ }
+ }
}
- }
- reader.next();
- break;
- case END_ELEMENT:
- return component;
+ return component;
}
}
}
@@ -98,38 +104,38 @@
while (true) {
switch (reader.next()) {
- case START_ELEMENT:
- String name = reader.getLocalName();
- Property property = componentType.getProperty(name);
- if (property == null) {
- throw new ConfigurationLoadException(name);
- }
- OverrideOption override = StAXUtil.overrideOption(reader.getAttributeValue(null, "override"), OverrideOption.NO);
-
- // get a factory for the property
- StAXPropertyFactory<?> propertyFactory;
- String factoryName = reader.getAttributeValue(null, "factory");
- if (factoryName == null) {
- propertyFactory = defaultPropertyFactory;
- } else {
- propertyFactory = getPropertyFactory(factoryName, resourceLoader);
- }
-
- // create the property value
- // FIXME to support complex types we probably should store the factory in the ConfiguredProperty
- // FIXME instead of the value as the value may be mutable and should not be shared between instances
- ObjectFactory<?> objectFactory = propertyFactory.createObjectFactory(reader, property);
- Object value = objectFactory.getInstance();
-
- // create the configured property definition
- ConfiguredProperty configuredProperty = factory.createConfiguredProperty();
- configuredProperty.setName(name);
- configuredProperty.setValue(value);
- configuredProperty.setOverrideOption(override);
- configuredProperties.add(configuredProperty);
- break;
- case END_ELEMENT:
- return;
+ case START_ELEMENT:
+ String name = reader.getLocalName();
+ Property property = componentType.getProperty(name);
+ if (property == null) {
+ throw new ConfigurationLoadException(name);
+ }
+ OverrideOption override = StAXUtil.overrideOption(reader.getAttributeValue(null, "override"), OverrideOption.NO);
+
+// get a factory for the property
+ StAXPropertyFactory<?> propertyFactory;
+ String factoryName = reader.getAttributeValue(null, "factory");
+ if (factoryName == null) {
+ propertyFactory = defaultPropertyFactory;
+ } else {
+ propertyFactory = getPropertyFactory(factoryName, resourceLoader);
+ }
+
+ // create the property value
+ // FIXME to support complex types we probably should store the factory in the ConfiguredProperty
+ // FIXME instead of the value as the value may be mutable and should not be shared between instances
+ ObjectFactory<?> objectFactory = propertyFactory.createObjectFactory(reader, property);
+ Object value = objectFactory.getInstance();
+
+ // create the configured property definition
+ ConfiguredProperty configuredProperty = factory.createConfiguredProperty();
+ configuredProperty.setName(name);
+ configuredProperty.setValue(value);
+ configuredProperty.setOverrideOption(override);
+ configuredProperties.add(configuredProperty);
+ break;
+ case END_ELEMENT:
+ return;
}
}
}
@@ -162,47 +168,22 @@
List<ConfiguredReference> configuredReferences = component.getConfiguredReferences();
while (true) {
switch (reader.next()) {
- case START_ELEMENT:
- String name = reader.getLocalName();
- String uri = reader.getElementText();
-
- ConfiguredReference configuredReference = component.getConfiguredReference(name);
- if (configuredReference == null) {
- configuredReference = factory.createConfiguredReference();
- configuredReference.setName(name);
- configuredReferences.add(configuredReference);
- }
-
- configuredReference.getTargets().add(prevSpace(uri));
- break;
- case END_ELEMENT:
- return;
- }
- }
- }
-
- protected String prevSpace(String uri){
- if(uri == null ) return null;
- String ret= uri.replace('\t', ' ');
- ret= ret.replace('\n', ' ');
- ret= ret.replace('\r', ' ');
- ret= ret.trim();
- StringBuilder sb= new StringBuilder(ret.length());
- boolean prevSpace= false;
- for(int i=0; i< ret.length(); ++i){
- char c= ret.charAt(i);
- if(c == ' '){
- if(!prevSpace){
- sb.append(c);
- prevSpace= true;
- }
- }else{
- sb.append(c);
- prevSpace= false;
+ case START_ELEMENT:
+ String name = reader.getLocalName();
+ String uri = reader.getElementText();
+
+ ConfiguredReference configuredReference = component.getConfiguredReference(name);
+ if (configuredReference == null) {
+ configuredReference = factory.createConfiguredReference();
+ configuredReference.setName(name);
+ configuredReferences.add(configuredReference);
+ }
+
+ configuredReference.getTargets().add(uri);
+ break;
+ case END_ELEMENT:
+ return;
}
-
}
-
- return sb.toString();
}
}
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java?rev=405110&r1=405109&r2=405110&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java Mon May 8 11:03:44 2006
@@ -113,6 +113,7 @@
JavaServiceContract ji = systemFactory.createJavaServiceContract();
s.setServiceContract(ji);
ji.setScope(Scope.AGGREGATE);
+// impl.setComponentType(systemFactory.createComponentType());
impl.getComponentType().getServices().add(s);
sc.setName(name);
sc.setImplementation(impl);
@@ -133,6 +134,7 @@
JavaServiceContract ji = systemFactory.createJavaServiceContract();
s.setServiceContract(ji);
ji.setScope(Scope.AGGREGATE);
+ //impl.setComponentType(systemFactory.createComponentType());
impl.getComponentType().getServices().add(s);
sc.setName(name);
sc.setImplementation(impl);