summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java')
-rw-r--r--sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
index 78b0887482..5a93a4d67b 100644
--- a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
+++ b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
@@ -45,6 +45,7 @@ import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.core.assembly.CompositeActivator;
import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
import org.apache.tuscany.sca.interfacedef.Interface;
@@ -260,6 +261,34 @@ public class ComponentContextHelper {
return read(streamReader);
}
+ public void resolveInterfaceContract(InterfaceContract interfaceContract, ModelResolver resolver) throws Exception {
+ StAXArtifactProcessor processor = staxProcessors.getProcessor(interfaceContract.getClass());
+ processor.resolve(interfaceContract, resolver);
+ }
+
+ public void resolveBinding(Binding binding, ModelResolver resolver) throws Exception {
+ StAXArtifactProcessor processor = staxProcessors.getProcessor(binding.getClass());
+ processor.resolve(binding, resolver);
+ }
+
+ public Reference createReference(Class<?> businessInterface) throws InvalidInterfaceException {
+ InterfaceContract interfaceContract = createJavaInterfaceContract(businessInterface);
+ Reference reference = assemblyFactory.createReference();
+ reference.setInterfaceContract(interfaceContract);
+ return reference;
+ }
+
+ private InterfaceContract createJavaInterfaceContract(Class<?> businessInterface) throws InvalidInterfaceException {
+ InterfaceContract interfaceContract = javaInterfaceFactory.createJavaInterfaceContract();
+ JavaInterface callInterface = javaInterfaceFactory.createJavaInterface(businessInterface);
+ interfaceContract.setInterface(callInterface);
+ if (callInterface.getCallbackClass() != null) {
+ interfaceContract.setCallbackInterface(javaInterfaceFactory.createJavaInterface(
+ callInterface.getCallbackClass()));
+ }
+ return interfaceContract;
+ }
+
public static RuntimeComponent getCurrentComponent() {
Message message = ThreadMessageContext.getMessageContext();
if (message != null) {