Author: rfeng
Date: Mon Apr 13 19:28:31 2009
New Revision: 764574

URL: http://svn.apache.org/viewvc?rev=764574&view=rev
Log:
Start to add the DefinitionsExtensionPoint

Added:
    
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
    
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
    
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml
    
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
    
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint
Modified:
    
tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java
    tuscany/java/sca/modules/definitions-xml/META-INF/MANIFEST.MF
    
tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java
    tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF
    tuscany/java/sca/modules/node-impl-osgi/pom.xml
    
tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeFactoryImpl.java
    
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java

Modified: 
tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java
 (original)
+++ 
tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java
 Mon Apr 13 19:28:31 2009
@@ -6,15 +6,15 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License.    
+ * under the License.
  */
 
 package org.apache.tuscany.sca.contribution.osgi.impl;
@@ -56,72 +56,70 @@
             bundle = OSGiBundleActivator.findBundle(sourceURL);
             if (bundle != null) {
                 URL url = bundle.getResource(artifact);
-                if (url == null)
-                    System.out.println("Could not load resource " + artifact);
                 return url;
             }
         } catch (Exception e) {
         }
         return null;
     }
-    
-    public List<String> getJarArtifacts(URL packageSourceURL, InputStream 
inputStream) throws ContributionException,
-    IOException {
-    if (packageSourceURL == null) {
-        throw new IllegalArgumentException("Invalid null package source URL.");
-    }
 
-    if (inputStream == null) {
-        throw new IllegalArgumentException("Invalid null source inputstream.");
-    }
+    public List<String> getJarArtifacts(URL packageSourceURL, InputStream 
inputStream) throws ContributionException,
+        IOException {
+        if (packageSourceURL == null) {
+            throw new IllegalArgumentException("Invalid null package source 
URL.");
+        }
 
-    // Assume the root is a jar file
-    JarInputStream jar = new JarInputStream(inputStream);
-    try {
-        Set<String> names = new HashSet<String>();
-        while (true) {
-            JarEntry entry = jar.getNextJarEntry();
-            if (entry == null) {
-                // EOF
-                break;
-            }
+        if (inputStream == null) {
+            throw new IllegalArgumentException("Invalid null source 
inputstream.");
+        }
 
-            // FIXME: Maybe we should externalize the filter as a property
-            String name = entry.getName(); 
-            if (!name.startsWith(".") && !entry.isDirectory()) {
-                
-                // Trim trailing /
-                if (name.endsWith("/")) {
-                    name = name.substring(0, name.length() - 1);
+        // Assume the root is a jar file
+        JarInputStream jar = new JarInputStream(inputStream);
+        try {
+            Set<String> names = new HashSet<String>();
+            while (true) {
+                JarEntry entry = jar.getNextJarEntry();
+                if (entry == null) {
+                    // EOF
+                    break;
                 }
 
-                // Add the entry name
-                if (!names.contains(name) && name.length() > 0) {
-                    names.add(name);
-                    
+                // FIXME: Maybe we should externalize the filter as a property
+                String name = entry.getName();
+                if (!name.startsWith(".") && !entry.isDirectory()) {
+
+                    // Trim trailing /
+                    if (name.endsWith("/")) {
+                        name = name.substring(0, name.length() - 1);
+                    }
+
+                    // Add the entry name
+                    if (!names.contains(name) && name.length() > 0) {
+                        names.add(name);
+
+                    }
                 }
             }
+
+            // Return list of URIs
+            List<String> artifacts = new ArrayList<String>();
+            for (String name : names) {
+                artifacts.add(name);
+            }
+            return artifacts;
+
+        } finally {
+            jar.close();
         }
-        
-        // Return list of URIs
-        List<String> artifacts = new ArrayList<String>();
-        for (String name: names) {
-            artifacts.add(name);
-        }
-        return artifacts;
-        
-    } finally {
-        jar.close();
     }
-}
 
     public List<String> getArtifacts(URL packageSourceURL) throws 
ContributionReadException {
-        
+
         if (packageSourceURL == null) {
             throw new IllegalArgumentException("Invalid null package source 
URL.");
         }
         Bundle bundle = OSGiBundleActivator.findBundle(packageSourceURL);
-        
+
         if (bundle == null) {
             throw new IllegalArgumentException("Could not find OSGi bundle " + 
packageSourceURL);
         }
@@ -133,16 +131,16 @@
             while (entries.hasMoreElements()) {
                 URL entry = (URL)entries.nextElement();
                 String entryName = entry.getPath();
-                if (entryName.startsWith("/"))
+                if (entryName.startsWith("/")) {
                     entryName = entryName.substring(1);
+                }
                 artifacts.add(entryName);
-                
-                if (entryName.endsWith(".jar")) {
 
-                    URL jarResource = bundle.getResource(entryName);
-                    artifacts.addAll(getJarArtifacts(jarResource, 
jarResource.openStream()));
+                // FIXME: We probably should honor Bundle-ClassPath headers to 
deal with inner jars
+                if (entryName.endsWith(".jar")) {
+                    artifacts.addAll(getJarArtifacts(entry, 
entry.openStream()));
                 }
-            
+
             }
         } catch (Exception e) {
             throw new RuntimeException(e);

Modified: tuscany/java/sca/modules/definitions-xml/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/META-INF/MANIFEST.MF?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- tuscany/java/sca/modules/definitions-xml/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/definitions-xml/META-INF/MANIFEST.MF Mon Apr 13 
19:28:31 2009
@@ -17,8 +17,11 @@
  org.apache.tuscany.sca.core;version="2.0.0",
  org.apache.tuscany.sca.definitions;version="2.0.0",
  org.apache.tuscany.sca.definitions.util;version="2.0.0",
+ org.apache.tuscany.sca.definitions.xml;version="2.0.0",
+ org.apache.tuscany.sca.extensibility;version="2.0.0",
  org.apache.tuscany.sca.monitor;version="2.0.0",
  org.apache.tuscany.sca.policy;version="2.0.0"
 Bundle-SymbolicName: org.apache.tuscany.sca.definitions.xml
 Bundle-DocURL: http://www.apache.org/
+Export-Package: org.apache.tuscany.sca.definitions.xml;version="2.0.0"
 

Added: 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java?rev=764574&view=auto
==============================================================================
--- 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
 (added)
+++ 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
 Mon Apr 13 19:28:31 2009
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.definitions.xml;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
+import 
org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.definitions.Definitions;
+import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
+
+/**
+ * Default implementation of an extension point for XML definitionss.
+ *
+ * @version $Rev: 758911 $ $Date: 2009-03-26 15:52:27 -0700 (Thu, 26 Mar 2009) 
$
+ */
+public class DefaultDefinitionsExtensionPoint implements 
DefinitionsExtensionPoint {
+    private static final Logger logger = 
Logger.getLogger(DefaultDefinitionsExtensionPoint.class.getName());
+    private static final URI DEFINITIONS_URI = 
URI.create("META-INF/definitions.xml");
+    private ExtensionPointRegistry registry;
+    private List<URL> documents = new ArrayList<URL>();
+    private List<Definitions> definitions;
+    private boolean loaded;
+
+    public DefaultDefinitionsExtensionPoint(ExtensionPointRegistry registry) {
+        this.registry = registry;
+    }
+
+    public void addDefinitionsDocument(URL url) {
+        documents.add(url);
+    }
+
+    public void removeDefinitionsDocument(URL url) {
+        documents.remove(url);
+    }
+
+    /**
+     * Load definitions declarations from META-INF/services/
+     * org.apache.tuscany.sca.contribution.processor.Definitions files
+     */
+    private synchronized void loadDefinitions() {
+        if (loaded)
+            return;
+
+        // Get the definitions declarations
+        Set<ServiceDeclaration> definitionsDeclarations;
+        try {
+            definitionsDeclarations = 
ServiceDiscovery.getInstance().getServiceDeclarations(DEFINITIONS_FILE);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+
+        // Find each definitions
+        for (ServiceDeclaration definitionsDeclaration : 
definitionsDeclarations) {
+            URL url = 
definitionsDeclaration.getResource(definitionsDeclaration.getClassName());
+            if (url == null) {
+                throw new IllegalArgumentException(new 
FileNotFoundException(definitionsDeclaration.getClassName()));
+            }
+            documents.add(url);
+        }
+
+        loaded = true;
+    }
+
+    public List<URL> getDefinitionsDocuments() {
+        loadDefinitions();
+        return documents;
+    }
+
+    public synchronized List<Definitions> getDefinitions() {
+        if (definitions == null) {
+            loadDefinitions();
+            URLArtifactProcessorExtensionPoint processors =
+                
registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
+            URLArtifactProcessor<Definitions> processor = 
processors.getProcessor(Definitions.class);
+            definitions = new ArrayList<Definitions>();
+            for (URL url : documents) {
+                Definitions def;
+                try {
+                    def = processor.read(null, DEFINITIONS_URI, url);
+                    definitions.add(def);
+                } catch (ContributionReadException e) {
+                    logger.log(Level.SEVERE, e.getMessage(), e);
+                }
+            }
+        }
+        return definitions;
+    }
+}

Added: 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java?rev=764574&view=auto
==============================================================================
--- 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
 (added)
+++ 
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsExtensionPoint.java
 Mon Apr 13 19:28:31 2009
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.definitions.xml;
+
+import java.net.URL;
+import java.util.List;
+
+import org.apache.tuscany.sca.definitions.Definitions;
+
+/**
+ * An extension point for built-in SCA intent/policySet definition files
+ *
+ * @version $Rev: 758911 $ $Date: 2009-03-26 15:52:27 -0700 (Thu, 26 Mar 2009) 
$
+ */
+public interface DefinitionsExtensionPoint {
+    String DEFINITIONS_FILE = 
"org.apache.tuscany.sca.definitions.xml.Definitions";
+
+    /**
+     * Add a definitions.
+     *
+     * @param url the URL of the definitions
+     */
+    void addDefinitionsDocument(URL url);
+
+    /**
+     * Remove a definitions.
+     *
+     * @param url the URL of the definitions
+     */
+    void removeDefinitionsDocument(URL url);
+
+    /**
+     * Returns the list of definitions registered in the extension point.
+     * @return the list of definitions
+     */
+    List<URL> getDefinitionsDocuments();
+
+    List<Definitions> getDefinitions();
+
+}

Added: 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml?rev=764574&view=auto
==============================================================================
--- 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml
 (added)
+++ 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml
 Mon Apr 13 19:28:31 2009
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved.
+     OASIS trademark, IPR and other policies apply.  -->
+<sca:definitions xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200903";>
+
+        <!-- Security related intents -->
+        <sca:intent name="serverAuthentication" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        Communication through the binding requires that the
+                        server is authenticated by the client
+                </sca:description>
+                <sca:qualifier name="transport" default="true"/>
+                <sca:qualifier name="message"/>
+        </sca:intent>
+
+        <sca:intent name="clientAuthentication" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        Communication through the binding requires that the
+                        client is authenticated by the server
+                </sca:description>
+                <sca:qualifier name="transport" default="true"/>
+                <sca:qualifier name="message"/>
+        </sca:intent>
+
+        <sca:intent name="authentication" requires="sca:clientAuthentication">
+                <sca:description>
+                        A convenience intent to help migration
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="mutualAuthentication"
+                requires="sca:clientAuthentication sca:serverAuthentication">
+                <sca:description>
+                        Communication through the binding requires that the
+                        client and server to authenticate each other
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="confidentiality" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        Communication through the binding prevents unauthorized
+                        users from reading the messages
+                </sca:description>
+                <sca:qualifier name="transport" default="true"/>
+                <sca:qualifier name="message"/>
+        </sca:intent>
+
+        <sca:intent name="integrity" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        Communication through the binding prevents tampering
+                        with the messages sent between the client and the 
service.
+                </sca:description>
+                <sca:qualifier name="transport" default="true"/>
+                <sca:qualifier name="message"/>
+        </sca:intent>
+
+        <sca:intent name="authorization" constrains="sca:implementation"
+            intentType="implementation">
+                <sca:description>
+                        Ensures clients are authorized to use services.
+                </sca:description>
+                <sca:qualifier name="fineGrain" default="true"/>
+        </sca:intent>
+
+
+        <!-- Reliable messaging related intents -->
+        <sca:intent name="atLeastOnce" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        This intent is used to indicate that a message sent
+                        by a client is always delivered to the component.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="atMostOnce" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        This intent is used to indicate that a message that was
+                        successfully sent by a client is not delivered more 
than
+                        once to the component.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="exactlyOnce" requires="sca:atLeastOnce 
sca:atMostOnce"
+            constrains="sca:binding" intentType="interaction">
+                <sca:description>
+                        This profile intent is used to indicate that a message 
sent
+                        by a client is always delivered to the component. It 
also
+                        indicates that duplicate messages are not delivered to 
the
+                        component.
+            </sca:description>
+        </sca:intent>
+
+        <sca:intent name="ordered" appliesTo="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                        This intent is used to indicate that all the messages 
are
+                        delivered to the component in the order they were sent 
by
+                        the client.
+                </sca:description>
+        </sca:intent>
+
+        <!-- Transaction related intents -->
+        <sca:intent name="managedTransaction" 
excludes="sca:noManagedTransaction"
+            mutuallyExclusive="true" constrains="sca:implementation"
+            intentType="implementation">
+                <sca:description>
+                A managed transaction environment is necessary in order to
+                run the component. The specific type of managed transaction
+                needed is not constrained.
+                </sca:description>
+                <sca:qualifier name="global" default="true">
+                        <sca:description>
+                        For a component marked with managedTransaction.global
+                        a global transaction needs to be present before 
dispatching
+                        any method on the component - using any transaction
+                        propagated from the client or else beginning and 
completing
+                        a new transaction.
+                        </sca:description>
+                </sca:qualifier>
+                <sca:qualifier name="local">
+                        <sca:description>
+                        A component marked with managedTransaction.local needs 
to
+                        run within a local transaction containment (LTC) that
+                        is started and ended by the SCA runtime.
+                        </sca:description>
+                </sca:qualifier>
+        </sca:intent>
+
+        <sca:intent name="noManagedTransaction" 
excludes="sca:managedTransaction"
+            constrains="sca:implementation" intentType="implementation">
+                <sca:description>
+                A component marked with noManagedTransaction needs to run 
without
+                a managed transaction, under neither a global transaction nor
+                an LTC. A transaction propagated to the hosting SCA runtime
+                is not joined by the hosting runtime on behalf of a
+                component marked with noManagedtransaction.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="transactedOneWay" excludes="sca:immediateOneWay"
+            constrains="sca:binding" intentType="implementation">
+                <sca:description>
+                For a reference marked as transactedOneWay any OneWay 
invocation
+                messages are transacted as part of a client global
+                transaction.
+                For a service marked as transactedOneWay any OneWay invocation
+                message are received from the transport binding in a
+                transacted fashion, under the service’s global transaction.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="immediateOneWay" excludes="sca:transactedOneWay"
+            constrains="sca:binding" intentType="implementation">
+                <sca:description>
+                For a reference indicates that any OneWay invocation messages
+                are sent immediately regardless of any client transaction.
+                For a service indicates that any OneWay invocation is
+                received immediately regardless of any target service
+                transaction.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="propagatesTransaction" 
excludes="sca:suspendsTransaction"
+            constrains="sca:binding" intentType="interaction">
+                <sca:description>
+                A service marked with propagatesTransaction is dispatched
+                under any propagated (client) transaction and the service 
binding
+                needs to be capable     of receiving a transaction context.
+                A reference marked with propagatesTransaction propagates any
+                transaction context under which the client runs when the
+                reference is used for a request-response interaction and the
+                binding of a reference marked with propagatesTransaction needs 
to
+                be capable of propagating a transaction context.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="suspendsTransaction" 
excludes="sca:propagatesTransaction"
+            constrains="sca:binding" intentType="interaction">
+                <sca:description>
+                A service marked with suspendsTransaction is not dispatched
+                under any propagated (client) transaction.
+                A reference marked with suspendsTransaction does not propagate
+                any transaction context under which the client runs when the
+                reference is used.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="managedSharedTransaction"
+                requires="sca:managedTransaction.global 
sca:propagatesTransaction">
+                <sca:description>
+                        Used to indicate that the component requires both the
+                        managedTransaction.global and the 
propagatesTransactions
+                        intents
+                </sca:description>
+        </sca:intent>
+
+        <!-- Miscellaneous intents -->
+        <sca:intent name="asyncInvocation" constrains="sca:Binding"
+                intentType="interaction">
+                <sca:description>
+                        Indicates that request/response operations for the
+                        interface of this wire are "long running" and must be
+                        treated as two separate message transmissions
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="SOAP" constrains="sca:binding" 
intentType="interaction">
+                <sca:description>
+                Specifies that the SOAP messaging model is used for delivering
+                messages.
+                </sca:description>
+                <sca:qualifier name="1_1" default="true"/>
+                <sca:qualifier name="1_2"/>
+        </sca:intent>
+
+        <sca:intent name="JMS" constrains="sca:binding" 
intentType="interaction">
+                <sca:description>
+                Requires that the messages are delivered and received via the
+                JMS API.
+                </sca:description>
+        </sca:intent>
+
+        <sca:intent name="noListener" constrains="sca:binding"
+            intentType="interaction">
+                <sca:description>
+                This intent can only be used on a reference. Indicates that the
+                client is not able to handle new inbound connections. The 
binding
+                and callback binding are configured so that any
+                response or callback comes either through a back channel of the
+                connection from the client to the server or by having the 
client
+                poll the server for messages.
+                </sca:description>
+        </sca:intent>
+
+</sca:definitions>

Added: 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions?rev=764574&view=auto
==============================================================================
--- 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
 (added)
+++ 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
 Mon Apr 13 19:28:31 2009
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+META-INF/sca-policy-1.1-intents-definitions-cd02.xml
\ No newline at end of file

Added: 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint?rev=764574&view=auto
==============================================================================
--- 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint
 (added)
+++ 
tuscany/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint
 Mon Apr 13 19:28:31 2009
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+org.apache.tuscany.sca.definitions.xml.DefaultDefinitionsExtensionPoint
\ No newline at end of file

Modified: 
tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementationProcessor.java
 Mon Apr 13 19:28:31 2009
@@ -172,11 +172,21 @@
             return;
         }
 
+        // The bundle may be different from the current contribution
         ComponentType componentType = assemblyFactory.createComponentType();
-        componentType.setURI("OSGI-INF/sca/bundle.componentType");
+        // Try to find a bundle.componentType for the target bundle
+        componentType.setURI("OSGI-INF/sca/" + bundle.getSymbolicName() + 
"/bundle.componentType");
         componentType.setUnresolved(true);
         componentType = resolver.resolveModel(ComponentType.class, 
componentType);
         if (componentType.isUnresolved()) {
+            // Create a new instance to prevent it being treated as reentry
+            // See 
org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver.resolveModel(Class<T>,
 T)
+            componentType = assemblyFactory.createComponentType();
+            // Try a generic one
+            componentType.setURI("OSGI-INF/sca/bundle.componentType");
+            componentType = resolver.resolveModel(ComponentType.class, 
componentType);
+        }
+        if (componentType.isUnresolved()) {
             // Try to derive it from the service descriptions
             if (!deriveFromServiceDescriptions(impl, resolver)) {
                 error("MissingComponentTypeFile", impl, 
componentType.getURI());

Modified: tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF Mon Apr 13 
19:28:31 2009
@@ -20,6 +20,7 @@
  org.apache.tuscany.sca.core.invocation;version="2.0.0",
  org.apache.tuscany.sca.definitions;version="2.0.0",
  org.apache.tuscany.sca.definitions.util;version="2.0.0",
+ org.apache.tuscany.sca.definitions.xml;version="2.0.0",
  org.apache.tuscany.sca.implementation.node;version="2.0.0",
  org.apache.tuscany.sca.monitor;version="2.0.0",
  org.apache.tuscany.sca.node;version="2.0.0",

Modified: tuscany/java/sca/modules/node-impl-osgi/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/pom.xml?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/pom.xml (original)
+++ tuscany/java/sca/modules/node-impl-osgi/pom.xml Mon Apr 13 19:28:31 2009
@@ -151,7 +151,7 @@
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-definitions-xml</artifactId>
             <version>2.0-SNAPSHOT</version>
-            <scope>runtime</scope>
+            <scope>compile</scope>
         </dependency>
 
         <dependency>

Modified: 
tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeFactoryImpl.java?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeFactoryImpl.java
 (original)
+++ 
tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeFactoryImpl.java
 Mon Apr 13 19:28:31 2009
@@ -76,6 +76,7 @@
 import org.apache.tuscany.sca.definitions.Definitions;
 import org.apache.tuscany.sca.definitions.DefinitionsFactory;
 import org.apache.tuscany.sca.definitions.util.DefinitionsUtil;
+import org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint;
 import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation;
 import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory;
 import org.apache.tuscany.sca.monitor.Monitor;
@@ -308,6 +309,9 @@
 
         workScheduler = utilities.getUtility(WorkScheduler.class);
 
+        DefinitionsExtensionPoint definitionsExtensionPoint = 
extensionPoints.getExtensionPoint(DefinitionsExtensionPoint.class);
+        List<Definitions> definitions = 
definitionsExtensionPoint.getDefinitions();
+
         // Load the system definitions.xml from all of the loaded extension 
points
         DefinitionsProviderExtensionPoint definitionsProviders =
             
extensionPoints.getExtensionPoint(DefinitionsProviderExtensionPoint.class);

Modified: 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java?rev=764574&r1=764573&r2=764574&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java
 (original)
+++ 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java
 Mon Apr 13 19:28:31 2009
@@ -155,8 +155,8 @@
                                 b.start();
                             }
                         } catch (Exception e) {
-                            logger.info(NodeLauncherUtil.string(b, false));
-                            logger.log(Level.SEVERE, e.getMessage(), e);
+                            logger.severe(NodeLauncherUtil.string(b, false) + 
" " + e.getMessage());
+                            // logger.log(Level.SEVERE, e.getMessage(), e);
                         }
                     }
 


Reply via email to