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