Author: rfeng
Date: Mon Jul 6 23:11:00 2009
New Revision: 791651
URL: http://svn.apache.org/viewvc?rev=791651&view=rev
Log:
Remove AutomaticBinding and replace it with a flag in the Contract model to
indicate if a refernece or binding has one or more binding elements specified
in which case it overrides the bindings from componentType or promoted contracts
Change the isCallback flag to forCallback to avoid confusion with the callback
property
Removed:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/AutomaticBinding.java
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CompositeContext.java
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CompositeContextImpl.java
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractContract.java
Mon Jul 6 23:11:00 2009
@@ -65,13 +65,13 @@
*
* @return true for a callback contract, false otherwise
*/
- boolean isCallback();
+ boolean isForCallback();
/**
* Sets a flag indicating whether this is a callback contract.
*
* @param isCallback true for a callback contract, false otherwise
*/
- void setIsCallback(boolean isCallback);
+ void setForCallback(boolean isCallback);
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Contract.java
Mon Jul 6 23:11:00 2009
@@ -91,5 +91,20 @@
* @return the interface contract
*/
InterfaceContract getInterfaceContract(Binding binding);
+
+ /**
+ * A flag to tell if there are any binding elements specified for this
service or reference.
+ * If true, they override the the bindings in the corresponding
reference/service in the
+ * component type or promoted reference/service.
+ * @return
+ */
+ boolean isOverridingBindings();
+
+ /**
+ * Set the flag depending on if there are any binding elements specified
for this service or
+ * reference.
+ * @param overridingBindings true if there are binding elements specified
+ */
+ void setOverridingBindings(boolean overridingBindings);
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -31,13 +31,13 @@
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.AutomaticBinding;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -172,7 +172,7 @@
componentServices.put(uri, componentService);
// count how many non-callback there are
- if (!componentService.isCallback()) {
+ if (!componentService.isForCallback()) {
if (nonCallbackServiceCount == 0) {
nonCallbackService = componentService;
@@ -221,7 +221,7 @@
// count how many non-callback, non-promoted services there are
// if there is only one the component name also acts as the
service name
- if ((!componentService.isCallback()) && (!promotedService)) {
+ if ((!componentService.isForCallback()) && (!promotedService))
{
// Check how many non callback non-promoted services we
have
if (nonCallbackServices == 0) {
@@ -450,7 +450,7 @@
// Connect each component reference to the corresponding reference
for (ComponentReference componentReference :
component.getReferences()) {
- if (componentReference.getReference() != null ||
componentReference.isCallback()) {
+ if (componentReference.getReference() != null ||
componentReference.isForCallback()) {
continue;
}
Reference reference = references.get(componentReference.getName());
@@ -468,7 +468,7 @@
for (Reference reference :
component.getImplementation().getReferences()) {
if (!componentReferences.containsKey(reference.getName())) {
ComponentReference componentReference =
assemblyFactory.createComponentReference();
- componentReference.setIsCallback(reference.isCallback());
+
componentReference.setForCallback(reference.isForCallback());
componentReference.setName(reference.getName());
componentReference.setReference(reference);
component.getReferences().add(componentReference);
@@ -557,7 +557,7 @@
// Connect each component service to the corresponding service
for (ComponentService componentService : component.getServices()) {
- if (componentService.getService() != null ||
componentService.isCallback()) {
+ if (componentService.getService() != null ||
componentService.isForCallback()) {
continue;
}
Service service = services.get(componentService.getName());
@@ -574,7 +574,7 @@
for (Service service :
component.getImplementation().getServices()) {
if (!componentServices.containsKey(service.getName())) {
ComponentService componentService =
assemblyFactory.createComponentService();
- componentService.setIsCallback(service.isCallback());
+ componentService.setForCallback(service.isForCallback());
String name = service.getName();
componentService.setName(name);
componentService.setService(service);
@@ -625,14 +625,22 @@
}
}
- protected SCABinding createSCABinding(Definitions definitions) {
- SCABinding scaBinding = scaBindingFactory.createSCABinding();
-
- // mark the bindings that are added automatically so that they can
- // be disregarded for overriding purposes
- if (scaBinding instanceof AutomaticBinding) {
- ((AutomaticBinding)scaBinding).setIsAutomatic(true);
+ protected void attachSCABinding(Contract contract, Definitions
definitions) {
+ if (!contract.getBindings().isEmpty()) {
+ contract.setOverridingBindings(true);
+ // No need to set binding.sca
+ return;
+ }
+ contract.setOverridingBindings(false);
+
+ // Only add binding.sca for services
+ // FIXME: The latest OASIS spec only adds binding.sca to services
+ /*
+ if (!(contract instanceof Service)) {
+ return;
}
+ */
+ SCABinding scaBinding = scaBindingFactory.createSCABinding();
if (definitions != null) {
for (ExtensionType attachPointType :
definitions.getBindingTypes()) {
@@ -642,6 +650,6 @@
}
}
- return scaBinding;
+ contract.getBindings().add(scaBinding);
}
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -38,7 +38,6 @@
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.ComponentPreProcessor;
@@ -127,19 +126,13 @@
// Set default binding names
// Create default SCA binding
- if (service.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- service.getBindings().add(scaBinding);
- }
+ attachSCABinding(service, definitions);
}
// Initialize reference bindings
for (Reference reference : composite.getReferences()) {
// Create default SCA binding
- if (reference.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- reference.getBindings().add(scaBinding);
- }
+ attachSCABinding(reference, definitions);
}
// Initialize all component services and references
@@ -199,20 +192,14 @@
for (ComponentService componentService : component.getServices()) {
// Create default SCA binding
- if (componentService.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- componentService.getBindings().add(scaBinding);
- }
+ attachSCABinding(componentService, definitions);
}
// Initialize reference bindings
for (ComponentReference componentReference :
component.getReferences()) {
// Create default SCA binding
- if (componentReference.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- componentReference.getBindings().add(scaBinding);
- }
+ attachSCABinding(componentReference, definitions);
}
}
}
@@ -250,7 +237,7 @@
*/
private ComponentService createCallbackService(Component component,
ComponentReference reference) {
ComponentService componentService =
assemblyFactory.createComponentService();
- componentService.setIsCallback(true);
+ componentService.setForCallback(true);
componentService.setName(reference.getName());
try {
InterfaceContract contract =
(InterfaceContract)reference.getInterfaceContract().clone();
@@ -273,12 +260,12 @@
// Set the promoted component from the promoted component of
the composite reference
implCompService
.setPromotedComponent(((CompositeReference)implReference).getPromotedComponents().get(0));
- implCompService.setIsCallback(true);
+ implCompService.setForCallback(true);
// Set the promoted service
ComponentService promotedService =
assemblyFactory.createComponentService();
promotedService.setName(((CompositeReference)implReference).getPromotedReferences().get(0).getName());
promotedService.setUnresolved(true);
- promotedService.setIsCallback(true);
+ promotedService.setForCallback(true);
implCompService.setPromotedService(promotedService);
implService = implCompService;
// Add the composite service to the composite implementation
artifact
@@ -343,7 +330,7 @@
*/
private ComponentReference createCallbackReference(Component component,
ComponentService service) {
ComponentReference componentReference =
assemblyFactory.createComponentReference();
- componentReference.setIsCallback(true);
+ componentReference.setForCallback(true);
componentReference.setName(service.getName());
try {
InterfaceContract contract =
(InterfaceContract)service.getInterfaceContract().clone();
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -228,7 +228,7 @@
if (uri == null) {
// Regular forward references are UNWIRED with no endpoint
if they have an SCABinding with NO targets
// and NO URI set - but Callbacks with an SCABinding are
wired and need an endpoint
- if (!reference.isCallback() && (binding instanceof
SCABinding))
+ if (!reference.isForCallback() && (binding instanceof
SCABinding))
continue;
// create endpoint reference for manually configured
bindings with a resolved endpoint to
@@ -423,7 +423,7 @@
Map<String,
ComponentService> componentServices,
List<Endpoint> endpoints) {
// Only if this reference is a callback are there any endpoints of
this kind
- if (reference.isCallback()) {
+ if (reference.isForCallback()) {
// add an unresolved endpoint reference with an unresolved
endpoint to go with it
// there will be one of these for each binding on the reference
for (Binding binding : reference.getBindings()) {
@@ -549,7 +549,7 @@
if (uri == null) {
// Regular forward references are UNWIRED with no endpoint
if they have an SCABinding with NO targets
// and NO URI set - but Callbacks with an SCABinding are
wired and need an endpoint
- if (!reference.isCallback() && (binding instanceof
SCABinding))
+ if (!reference.isForCallback() && (binding instanceof
SCABinding))
continue;
// create an unwired endpoint containing the binding
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -100,7 +100,7 @@
break;
}
}
- if (!promoted && !componentReference.isCallback()) {
+ if (!promoted && !componentReference.isForCallback()) {
warning(monitor,
"ReferenceWithoutTargets",
composite,
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -40,7 +40,6 @@
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
@@ -168,10 +167,7 @@
// Set default binding names
// Create default SCA binding
- if (service.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- service.getBindings().add(scaBinding);
- }
+ attachSCABinding(service, definitions);
// Initialize binding names and URIs
for (Binding binding : service.getBindings()) {
@@ -211,10 +207,7 @@
for (ComponentService service : component.getServices()) {
// Create default SCA binding
- if (service.getBindings().isEmpty()) {
- SCABinding scaBinding = createSCABinding(definitions);
- service.getBindings().add(scaBinding);
- }
+ attachSCABinding(service, definitions);
// Initialize binding names and URIs
for (Binding binding : service.getBindings()) {
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -125,7 +125,7 @@
String promotedComponentName =
compositeService.getPromotedComponent().getName();
String promotedServiceName;
if (componentService.getName() != null) {
- if (compositeService.isCallback()) {
+ if (compositeService.isForCallback()) {
// For callbacks the name already has the form
"componentName"/"servicename"
promotedServiceName = componentService.getName();
} else {
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -23,13 +23,14 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Callback;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeReference;
+import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.builder.AutomaticBinding;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
import org.apache.tuscany.sca.definitions.Definitions;
@@ -68,9 +69,9 @@
ComponentReference promotedReference = promotedRefs.get(0);
// Set the bindings using the top level bindings to
override the lower level bindings
- if
(bindingsSpecifiedManually(compositeReference.getBindings())) {
+ if (compositeReference.isOverridingBindings()) {
compositeReference.setPromotionOverride(true);
- } else if
(bindingsSpecifiedManually(promotedReference.getBindings())) {
+ } else if (promotedReference.isOverridingBindings()) {
compositeReference.getBindings().clear();
for (Binding binding :
promotedReference.getBindings()) {
try {
@@ -82,11 +83,9 @@
}
if (compositeReference.getInterfaceContract() != null &&
compositeReference.getInterfaceContract()
.getCallbackInterface() != null) {
- if (compositeReference.getCallback() != null &&
bindingsSpecifiedManually(compositeReference
- .getCallback().getBindings())) {
- compositeReference.setPromotionOverride(true);
- } else if (promotedReference.getCallback() != null &&
bindingsSpecifiedManually(promotedReference
- .getCallback().getBindings())) {
+ if (isCallbackOverridingBindings(compositeReference)) {
+ compositeReference.setPromotionOverride(true);
+ } else if
(isCallbackOverridingBindings(promotedReference)) {
if (compositeReference.getCallback() != null) {
compositeReference.getCallback().getBindings().clear();
} else {
@@ -106,9 +105,8 @@
// Because the component reference bindings can all be
different, we don't
// copy any of them up to this composite reference, which
will therefore always
// have its own binding, even if it's only the default SCA
binding.
- if
(bindingsSpecifiedManually(compositeReference.getBindings()) ||
(compositeReference
- .getCallback() != null &&
bindingsSpecifiedManually(compositeReference.getCallback()
- .getBindings()))) {
+ if (compositeReference.isOverridingBindings() ||
(compositeReference
+ .getCallback() != null &&
!compositeReference.getCallback().getBindings().isEmpty())) {
compositeReference.setPromotionOverride(true);
}
}
@@ -139,8 +137,8 @@
ComponentReference promotedReference =
promotedRefs.get(0);
// Set the bindings using the top level
bindings to override the lower level bindings
- if
(!bindingsSpecifiedManually(compositeReference.getBindings()) &&
bindingsSpecifiedManually(promotedReference
- .getBindings())) {
+ if (!compositeReference.isOverridingBindings()
&& promotedReference
+ .isOverridingBindings()) {
compositeReference.getBindings().clear();
for (Binding binding :
promotedReference.getBindings()) {
try {
@@ -150,17 +148,16 @@
}
}
}
- if
(bindingsSpecifiedManually(componentReference.getBindings())) {
+ if (componentReference.isOverridingBindings())
{
componentReference.setPromotionOverride(true);
- } else if
(bindingsSpecifiedManually(compositeReference.getBindings())) {
+ } else if
(compositeReference.isOverridingBindings()) {
componentReference.getBindings().clear();
componentReference.getBindings().addAll(compositeReference.getBindings());
}
if (componentReference.getInterfaceContract()
!= null && componentReference
.getInterfaceContract().getCallbackInterface() != null) {
- if (!(compositeReference.getCallback() !=
null && bindingsSpecifiedManually(compositeReference
- .getCallback().getBindings())) &&
promotedReference.getCallback() != null
- &&
bindingsSpecifiedManually(promotedReference.getCallback().getBindings())) {
+ if
(!isCallbackOverridingBindings(compositeReference)
+ &&
isCallbackOverridingBindings(promotedReference)) {
if (compositeReference.getCallback()
!= null) {
compositeReference.getCallback().getBindings().clear();
} else {
@@ -169,11 +166,10 @@
compositeReference.getCallback().getBindings().addAll(promotedReference
.getCallback().getBindings());
}
- if (componentReference.getCallback() !=
null && bindingsSpecifiedManually(componentReference
- .getCallback().getBindings())) {
+ if (componentReference.getCallback() !=
null && !componentReference
+
.getCallback().getBindings().isEmpty()) {
componentReference.setPromotionOverride(true);
- } else if
(compositeReference.getCallback() != null &&
bindingsSpecifiedManually(compositeReference
- .getCallback().getBindings())) {
+ } else if
(isCallbackOverridingBindings(compositeReference)) {
if (componentReference.getCallback()
!= null) {
componentReference.getCallback().getBindings().clear();
} else {
@@ -194,9 +190,8 @@
// Because the lower-level component reference
bindings can all be different,
// we don't copy any of them up to this
component reference, which will therefore
// always have its own binding, even if it's
only the default SCA binding.
- if
(bindingsSpecifiedManually(componentReference.getBindings()) ||
(componentReference
- .getCallback() != null &&
bindingsSpecifiedManually(componentReference
- .getCallback().getBindings()))) {
+ if (componentReference.isOverridingBindings()
+ ||
isCallbackOverridingBindings(componentReference)) {
componentReference.setPromotionOverride(true);
}
}
@@ -206,26 +201,10 @@
}
}
}
-
- /**
- * If the bindings are specified in the composite file return true as they
should
- * otherwise return false
- *
- * @param bindings
- * @return true if the bindings were specified manually
- */
- private boolean bindingsSpecifiedManually(List<Binding> bindings) {
-
- if (bindings.size() > 1) {
- return true;
- } else if (bindings.size() == 1 && bindings.get(0) instanceof
AutomaticBinding
- && ((AutomaticBinding)bindings.get(0)).getIsAutomatic()) {
- return false;
- } else if (bindings.size() == 1) {
- return true;
- } else {
- return false;
- }
+
+ private boolean isCallbackOverridingBindings(Contract contract) {
+ Callback callback = contract.getCallback();
+ return callback != null && !callback.getBindings().isEmpty();
}
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java
Mon Jul 6 23:11:00 2009
@@ -19,17 +19,16 @@
package org.apache.tuscany.sca.assembly.builder.impl;
-import java.util.List;
-
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Callback;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.AutomaticBinding;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
import org.apache.tuscany.sca.definitions.Definitions;
@@ -66,8 +65,7 @@
if (promotedService != null) {
// Set the bindings using the top level bindings to override
the lower level bindings
- if (!bindingsSpecifiedManually(compositeService.getBindings())
&& bindingsSpecifiedManually(promotedService
- .getBindings())) {
+ if (!compositeService.isOverridingBindings() &&
promotedService.isOverridingBindings()) {
compositeService.getBindings().clear();
for (Binding binding : promotedService.getBindings()) {
try {
@@ -79,9 +77,8 @@
}
if (compositeService.getInterfaceContract() != null &&
compositeService.getInterfaceContract()
.getCallbackInterface() != null) {
- if (!(compositeService.getCallback() != null &&
bindingsSpecifiedManually(compositeService
- .getCallback().getBindings())) &&
promotedService.getCallback() != null
- &&
bindingsSpecifiedManually(promotedService.getCallback().getBindings())) {
+ if (!isCallbackOverridingBindings(compositeService)
+ && isCallbackOverridingBindings(promotedService)) {
if (compositeService.getCallback() != null) {
compositeService.getCallback().getBindings().clear();
} else {
@@ -121,8 +118,7 @@
if (promotedService != null) {
// Set the bindings using the top level bindings
to override the lower level bindings
- if
(!bindingsSpecifiedManually(compositeService.getBindings()) &&
bindingsSpecifiedManually(promotedService
- .getBindings())) {
+ if (!compositeService.isOverridingBindings() &&
promotedService.isOverridingBindings()) {
compositeService.getBindings().clear();
for (Binding binding :
promotedService.getBindings()) {
try {
@@ -132,16 +128,14 @@
}
}
}
- if
(!bindingsSpecifiedManually(componentService.getBindings()) &&
bindingsSpecifiedManually(compositeService
- .getBindings())) {
+ if (!componentService.isOverridingBindings() &&
compositeService.isOverridingBindings()) {
componentService.getBindings().clear();
componentService.getBindings().addAll(compositeService.getBindings());
}
if (componentService.getInterfaceContract() !=
null && componentService
.getInterfaceContract().getCallbackInterface()
!= null) {
- if (!(compositeService.getCallback() != null
&& bindingsSpecifiedManually(compositeService
- .getCallback().getBindings())) &&
promotedService.getCallback() != null
- &&
bindingsSpecifiedManually(promotedService.getCallback().getBindings())) {
+ if
(!isCallbackOverridingBindings(compositeService)
+ &&
isCallbackOverridingBindings(promotedService)) {
if (compositeService.getCallback() !=
null) {
compositeService.getCallback().getBindings().clear();
} else {
@@ -155,9 +149,7 @@
}
}
}
- if (!(componentService.getCallback() != null
&& bindingsSpecifiedManually(componentService
- .getCallback().getBindings())) &&
compositeService.getCallback() != null
- &&
bindingsSpecifiedManually(compositeService.getCallback().getBindings())) {
+ if
(!(isCallbackOverridingBindings(componentService)) &&
isCallbackOverridingBindings(compositeService)) {
if (componentService.getCallback() !=
null) {
componentService.getCallback().getBindings().clear();
} else {
@@ -173,26 +165,10 @@
}
}
}
-
- /**
- * If the bindings are specified in the composite file return true as they
should
- * otherwise return false
- *
- * @param bindings
- * @return true if the bindings were specified manually
- */
- private boolean bindingsSpecifiedManually(List<Binding> bindings) {
-
- if (bindings.size() > 1) {
- return true;
- } else if (bindings.size() == 1 && bindings.get(0) instanceof
AutomaticBinding
- && ((AutomaticBinding)bindings.get(0)).getIsAutomatic()) {
- return false;
- } else if (bindings.size() == 1) {
- return true;
- } else {
- return false;
- }
+
+ private boolean isCallbackOverridingBindings(Contract contract) {
+ Callback callback = contract.getCallback();
+ return callback != null && !callback.getBindings().isEmpty();
}
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ContractImpl.java
Mon Jul 6 23:11:00 2009
@@ -66,11 +66,11 @@
return requiredIntents;
}
- public boolean isCallback() {
+ public boolean isForCallback() {
return isCallback;
}
- public void setIsCallback(boolean isCallback) {
+ public void setForCallback(boolean isCallback) {
this.isCallback = isCallback;
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java
Mon Jul 6 23:11:00 2009
@@ -41,6 +41,7 @@
private List<ComponentService> targets = new ArrayList<ComponentService>();
private Callback callback;
private boolean promotionOverride;
+ private boolean overridingBindings;
private List<EndpointReference> endpointReferences = new
ArrayList<EndpointReference>();
/**
@@ -132,4 +133,12 @@
public String toString() {
return getName();
}
+
+ public boolean isOverridingBindings() {
+ return overridingBindings;
+ }
+
+ public void setOverridingBindings(boolean overridingBindings) {
+ this.overridingBindings = overridingBindings;
+ }
}
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/SCABindingImpl.java
Mon Jul 6 23:11:00 2009
@@ -30,7 +30,6 @@
import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.assembly.OptimizableBinding;
import org.apache.tuscany.sca.assembly.SCABinding;
-import org.apache.tuscany.sca.assembly.builder.AutomaticBinding;
import org.apache.tuscany.sca.policy.ExtensionType;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.PolicySet;
@@ -41,7 +40,7 @@
*
* @version $Rev$ $Date$
*/
-public class SCABindingImpl implements SCABinding, Extensible, PolicySubject,
OptimizableBinding, AutomaticBinding {
+public class SCABindingImpl implements SCABinding, Extensible, PolicySubject,
OptimizableBinding {
private String name;
private String uri;
private List<Object> extensions = new ArrayList<Object>();
@@ -55,8 +54,6 @@
private Binding targetBinding;
private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>();
- private boolean isAutomatic = false;
-
public List<PolicySet> getApplicablePolicySets() {
return applicablePolicySets;
}
@@ -160,14 +157,6 @@
this.requiredIntents = intents;
}
- public void setIsAutomatic(boolean isAutomatic) {
- this.isAutomatic = isAutomatic;
- }
-
- public boolean getIsAutomatic() {
- return this.isAutomatic;
- }
-
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java
Mon Jul 6 23:11:00 2009
@@ -35,6 +35,7 @@
*/
public class ServiceImpl extends AbstractServiceImpl implements Service,
Cloneable {
private List<Binding> bindings = new ArrayList<Binding>();
+ private boolean overridingBindings;
private Callback callback;
private List<Endpoint> endpoints = new ArrayList<Endpoint>();
@@ -94,4 +95,12 @@
public List<Endpoint> getEndpoints() {
return endpoints;
}
+
+ public boolean isOverridingBindings() {
+ return overridingBindings;
+ }
+
+ public void setOverridingBindings(boolean overridingBindings) {
+ this.overridingBindings = overridingBindings;
+ }
}
Modified:
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CompositeContext.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CompositeContext.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CompositeContext.java
(original)
+++
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CompositeContext.java
Mon Jul 6 23:11:00 2009
@@ -186,7 +186,7 @@
List<ComponentService> services = component.getServices();
List<ComponentService> regularServices = new
ArrayList<ComponentService>();
for (ComponentService service : services) {
- if (service.isCallback()) {
+ if (service.isForCallback()) {
continue;
}
String name = service.getName();
Modified:
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CompositeContextImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CompositeContextImpl.java?rev=791651&r1=791650&r2=791651&view=diff
==============================================================================
---
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CompositeContextImpl.java
(original)
+++
tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CompositeContextImpl.java
Mon Jul 6 23:11:00 2009
@@ -308,7 +308,7 @@
List<ComponentService> services = component.getServices();
List<ComponentService> regularServices = new
ArrayList<ComponentService>();
for (ComponentService service : services) {
- if (service.isCallback()) {
+ if (service.isForCallback()) {
continue;
}
String name = service.getName();