You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/27 22:55:37 UTC
svn commit: r381459 - in /incubator/tuscany/java/sca:
container.java/src/test/java/org/apache/tuscany/container/java/assembly/sdo/
container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/
model/src/main/java/org/apache/tuscan...
Author: jsdelfino
Date: Mon Feb 27 13:55:35 2006
New Revision: 381459
URL: http://svn.apache.org/viewcvs?rev=381459&view=rev
Log:
integrated support for overridable properties - also only turn overridable external services into references on module components
Removed:
incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/sdo/
Modified:
incubator/tuscany/java/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
Modified: incubator/tuscany/java/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module?rev=381459&r1=381458&r2=381459&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module (original)
+++ incubator/tuscany/java/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module Mon Feb 27 13:55:35 2006
@@ -27,7 +27,7 @@
<component name="AccountServiceComponent">
<implementation.java class="org.apache.tuscany.container.java.assembly.tests.bigbank.account.services.account.AccountServiceImpl"/>
<properties>
- <v:currency>EURO</v:currency>
+ <v:currency overridable="may">EURO</v:currency>
</properties>
<references>
<v:accountDataService>AccountDataServiceComponent</v:accountDataService>
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java?rev=381459&r1=381458&r2=381459&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java Mon Feb 27 13:55:35 2006
@@ -44,5 +44,19 @@
* @param value the value being set for this usage of the {@link Property}
*/
void setValue(Object value);
-
+
+ /**
+ * Returns the override option that determines if any configuration for this property
+ * that is contained in this aggregate can be overridden by configuration supplied from outside.
+ */
+ OverrideOption getOverrideOption();
+
+ /**
+ * Set the override option that determines if any configuration for this property
+ * that is contained in this aggregate can be overridden by configuration supplied from outside.
+ *
+ * @param value the option that determines how property configuration can be overriden
+ */
+ void setOverrideOption(OverrideOption value);
+
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java?rev=381459&r1=381458&r2=381459&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java Mon Feb 27 13:55:35 2006
@@ -19,6 +19,7 @@
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
import org.apache.tuscany.model.assembly.ConfiguredProperty;
+import org.apache.tuscany.model.assembly.OverrideOption;
import org.apache.tuscany.model.assembly.Property;
/**
@@ -26,6 +27,7 @@
*/
public class ConfiguredPropertyImpl extends AssemblyModelObjectImpl implements ConfiguredProperty {
private Property property;
+ private OverrideOption overrideOption;
private Object value;
/**
@@ -64,6 +66,21 @@
this.value = value;
}
+ /*
+ * @see org.apache.tuscany.model.assembly.ConfiguredProperty#getOverrideOption()
+ */
+ public OverrideOption getOverrideOption() {
+ return overrideOption;
+ }
+
+ /*
+ * @see org.apache.tuscany.model.assembly.ConfiguredProperty#setOverrideOption(org.apache.tuscany.model.assembly.OverrideOption)
+ */
+ public void setOverrideOption(OverrideOption value) {
+ checkNotFrozen();
+ this.overrideOption=value;
+ }
+
/**
* @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
*/
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java?rev=381459&r1=381458&r2=381459&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java Mon Feb 27 13:55:35 2006
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -28,6 +27,7 @@
import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
import org.apache.tuscany.model.assembly.Component;
import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.ConfiguredProperty;
import org.apache.tuscany.model.assembly.ConfiguredReference;
import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.EntryPoint;
@@ -35,6 +35,7 @@
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleFragment;
import org.apache.tuscany.model.assembly.Multiplicity;
+import org.apache.tuscany.model.assembly.OverrideOption;
import org.apache.tuscany.model.assembly.Reference;
import org.apache.tuscany.model.assembly.Service;
import org.apache.tuscany.model.assembly.ServiceContract;
@@ -115,6 +116,7 @@
super.initialize(modelContext);
// Derive the component type from the entry points and external services in the module
+ // Also derive properties from the overridable properties of the components in the module
if (componentType==null) {
AssemblyFactory factory = modelContext.getAssemblyFactory();
componentType = factory.createComponentType();
@@ -126,8 +128,9 @@
service.setServiceContract(serviceContract);
componentType.getServices().add(service);
}
- for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
- ExternalService externalService = i.next();
+ for (ExternalService externalService : getExternalServices()) {
+ if (externalService.getOverrideOption()==null || externalService.getOverrideOption()==OverrideOption.NO)
+ continue;
Reference reference = factory.createReference();
reference.setName(externalService.getName());
ServiceContract serviceContract = externalService.getConfiguredService().getService().getServiceContract();
@@ -135,10 +138,16 @@
reference.setServiceContract(serviceContract);
componentType.getReferences().add(reference);
}
+ for (Component component : getComponents()) {
+ for (ConfiguredProperty configuredProperty : component.getConfiguredProperties()) {
+ if (configuredProperty.getOverrideOption()==null || configuredProperty.getOverrideOption()==OverrideOption.NO)
+ continue;
+ componentType.getProperties().add(configuredProperty.getProperty());
+ }
+ }
}
componentType.initialize(modelContext);
- //FIXME derive the module properties from the overridable properties of the components in the module
// Wire the module parts
for (Wire wire : getWires()) {
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java?rev=381459&r1=381458&r2=381459&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java Mon Feb 27 13:55:35 2006
@@ -425,10 +425,25 @@
if (configuredProperty == null) {
throw new IllegalArgumentException("Undefined property " + propertyName);
}
+
+ // Check if the property is overridable
+ Sequence attrs=propertyElement.getSequence("anyAttribute");
+ if (attrs!=null && attrs.size()!=0) {
+ commonj.sdo.Property attr=attrs.getProperty(0);
+ if (attr!=null && attr.getName().equals("overridable")) {
+ Object overridable=attrs.getValue(0);
+ if ("may".equals(overridable))
+ configuredProperty.setOverrideOption(OverrideOption.MAY);
+ else if ("must".equals(overridable))
+ configuredProperty.setOverrideOption(OverrideOption.MUST);
+ else if ("no".equals(overridable))
+ configuredProperty.setOverrideOption(OverrideOption.NO);
+ }
+ }
// Get the property value text and convert to the expected java type
//FIXME just handle strings for now
- Sequence text = propertyElement.getSequence(0);
+ Sequence text = propertyElement.getSequence("any");
if (text != null && text.size() != 0) {
Object rawValue = text.getValue(0);
configuredProperty.setValue(rawValue);