You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2008/04/19 17:39:13 UTC

svn commit: r649827 - in /incubator/tuscany/java/sca/tools/registry-inspector: ./ src/main/java/org/apache/tuscany/sca/tools/inspector/ src/main/java/org/apache/tuscany/sca/tools/registryinspector/extension/ src/main/java/org/apache/tuscany/sca/tools/r...

Author: slaws
Date: Sat Apr 19 08:39:10 2008
New Revision: 649827

URL: http://svn.apache.org/viewvc?rev=649827&view=rev
Log:
Resurrect this old tool

Added:
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java   (with props)
    incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/
      - copied from r649801, incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/registryinspector/
    incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/
    incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite   (with props)
Removed:
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/registryinspector/extension/
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/registryinspector/inspector/
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/resources/META-INF/
    incubator/tuscany/java/sca/tools/registry-inspector/src/main/resources/registryinspector.composite
    incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/registryinspector/
Modified:
    incubator/tuscany/java/sca/tools/registry-inspector/pom.xml
    incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/RegistryInspectorTestCase.java

Modified: incubator/tuscany/java/sca/tools/registry-inspector/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/registry-inspector/pom.xml?rev=649827&r1=649826&r2=649827&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/registry-inspector/pom.xml (original)
+++ incubator/tuscany/java/sca/tools/registry-inspector/pom.xml Sat Apr 19 08:39:10 2008
@@ -45,7 +45,7 @@
             
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node2-impl</artifactId>
             <version>2.0-incubating-SNAPSHOT</version>
         </dependency>
 

Added: incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java?rev=649827&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java (added)
+++ incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java Sat Apr 19 08:39:10 2008
@@ -0,0 +1,67 @@
+/*
+ * 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.tools.inspector;
+
+import java.lang.reflect.Field;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.node.SCANode2;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+
+
+/**
+ * An implementation of the ExtensionPointRegistryInspector service.
+ */
+public class RegistryInspector {
+
+    public String registryAsString(SCANode2 node) {
+        StringBuffer extensionPointRegistryString = new StringBuffer("Extension Point Registry \n");
+        
+        // Get the interesting extension points out of the registry and print them out
+        
+        try {
+            
+            // get the extension point registry we are hanging onto
+            // We have to assume the type of the extension point registry here!
+            DefaultExtensionPointRegistry extensionPointRegistry = (DefaultExtensionPointRegistry)((NodeImpl)node).getExtensionPointRegistry();
+                                                                    
+            // get the Map of extension points
+            // This is a private (!) field so a bit of sneaky reflection is required
+            Field extensionPointsField = extensionPointRegistry.getClass().getDeclaredField("extensionPoints");
+            extensionPointsField.setAccessible(true);
+            Map<Class<?>, Object> extensionPoints = (Map<Class<?>, Object>) extensionPointsField.get(extensionPointRegistry);
+            
+            // Record all the registered extension points
+            Set<Class<?>> keySet = extensionPoints.keySet();
+            for(Class<?>key : keySet){
+                extensionPointRegistryString.append(key.getName());
+                extensionPointRegistryString.append("\n");                 
+            }
+            
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+        }
+
+        return extensionPointRegistryString.toString();
+    }
+
+}

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/src/main/java/org/apache/tuscany/sca/tools/inspector/RegistryInspector.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/RegistryInspectorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/RegistryInspectorTestCase.java?rev=649827&r1=649801&r2=649827&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/RegistryInspectorTestCase.java (original)
+++ incubator/tuscany/java/sca/tools/registry-inspector/src/test/java/org/apache/tuscany/sca/tools/inspector/RegistryInspectorTestCase.java Sat Apr 19 08:39:10 2008
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.tools.registryinspector;
+package org.apache.tuscany.sca.tools.inspector;
 
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.util.Map;
@@ -26,40 +27,45 @@
 import junit.framework.TestCase;
 
 import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.util.PrintUtil;
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.apache.tuscany.sca.tools.registryinspector.inspector.ExtensionPointRegistryInspector;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCANode2;
+import org.apache.tuscany.sca.node.SCANode2Factory;
+import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+import org.apache.tuscany.sca.tools.inspector.RegistryInspector;
+
+import calculator.CalculatorService;
 
 /**
  * This shows how to test the Calculator service component.
  */
 public class RegistryInspectorTestCase extends TestCase {
 
-    private ExtensionPointRegistryInspector eprInspector;
-    private SCADomain scaDomain;
+    private CalculatorService calculatorService;
+    private SCANode2 node;
 
+    @Override
     protected void setUp() throws Exception {
-        scaDomain = SCADomain.newInstance("registryinspector.composite");
-        eprInspector = scaDomain.getService(ExtensionPointRegistryInspector.class, 
-                                                 "ExtensionPointRegistryInspectorComponent");
+        SCANode2Factory nodeFactory = SCANode2Factory.newInstance();
+        node = nodeFactory.createSCANode(new File("src/test/resources/Calculator.composite").toURL().toString(),
+                                         new SCAContribution("TestContribution", 
+                                                             new File("src/test/resources").toURL().toString()));
+        node.start();
+        calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
     }
 
+    @Override
     protected void tearDown() throws Exception {
-        scaDomain.close();
+        node.stop();
     }
 
     public void testCalculator() throws Exception {
-        // Inspect the extension point registry
-        System.out.println(eprInspector.eprAsString());
-        
-        // inspect the model 
-        Field domainCompositeField = scaDomain.getClass().getDeclaredField("domainComposite");
-        domainCompositeField.setAccessible(true);
-        Composite domainComposite = (Composite) domainCompositeField.get(scaDomain);
+        RegistryInspector inspector = new RegistryInspector();
         
-        OutputStream os = new ByteArrayOutputStream();
-        PrintUtil printUtil = new PrintUtil(os);
-        printUtil.print(domainComposite);
-        System.out.println("Assembly \n " + os.toString());
+        System.out.println(inspector.registryAsString(node)); 
     }
 }

Added: incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite?rev=649827&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite (added)
+++ incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite Sat Apr 19 08:39:10 2008
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           targetNamespace="http://sample"
+           xmlns:sample="http://sample"
+           name="Calculator">
+
+    <component name="CalculatorServiceComponent">
+		<implementation.java class="calculator.CalculatorServiceImpl"/>
+        <reference name="addService" target="AddServiceComponent" />
+        <reference name="subtractService" target="SubtractServiceComponent" />
+        <reference name="multiplyService" target="MultiplyServiceComponent" />
+        <reference name="divideService" target="DivideServiceComponent" />
+    </component>
+
+    <component name="AddServiceComponent">
+        <implementation.java class="calculator.AddServiceImpl"/>
+    </component>
+
+    <component name="SubtractServiceComponent">
+        <implementation.java class="calculator.SubtractServiceImpl"/>
+    </component>
+
+    <component name="MultiplyServiceComponent">
+        <implementation.java class="calculator.MultiplyServiceImpl"/>
+    </component>
+
+    <component name="DivideServiceComponent">
+        <implementation.java class="calculator.DivideServiceImpl"/>
+    </component>
+
+</composite>

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/src/test/resources/Calculator.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org