You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/12/17 20:17:15 UTC

svn commit: r488028 [4/4] - in /incubator/tuscany/java/sca: commands/launcher/src/main/java/org/apache/tuscany/launcher/ kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/core...

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java Sun Dec 17 11:17:11 2006
@@ -31,6 +31,7 @@
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.extension.CompositeComponentExtension;
 import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
 import org.apache.tuscany.spi.model.Operation;
@@ -39,6 +40,7 @@
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
 import org.apache.tuscany.container.spring.context.SCAApplicationContext;
+import org.springframework.beans.BeanInstantiationException;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
@@ -173,7 +175,11 @@
                 // need null check since Spring may pass in a null
                 throw new BeanNotOfRequiredTypeException(name, requiredType, type);
             }
-            return object.getServiceInstance();
+            try {
+                return object.getServiceInstance();
+            } catch (TargetException e) {
+                throw new BeanInstantiationException(requiredType, "Error returning service or reference", e);
+            }
         }
 
         public boolean containsBean(String name) {

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java Sun Dec 17 11:17:11 2006
@@ -21,7 +21,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
 import org.apache.tuscany.spi.wire.InvocationRuntimeException;
 import org.apache.tuscany.spi.wire.Message;
@@ -55,10 +54,10 @@
             try {
                 bean = component.locateService(Object.class, beanName);
                 if (bean == null) {
-                    throw new TargetNotFoundException(beanName);
+                    throw new InvocationTargetException(new TargetNotFoundException(beanName));
                 }
             } catch (BeansException e) {
-                throw new TargetException(e);
+                throw new InvocationTargetException(e);
             }
         }
         try {

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java Sun Dec 17 11:17:11 2006
@@ -18,10 +18,9 @@
  * @version $Rev$ $Date$
  */
 public class BootstrapTestCase extends SCATestCase {
-
     private CompositeContext context;
 
-    public void testDemoBoot() {
+    public void testDemoBoot() throws Exception {
         SpringCompositeComponent comp = (SpringCompositeComponent) component.getChild("Spring");
         Service service = (Service) comp.getChild("fooService");
         TestBean bean = (TestBean) service.getServiceInstance();

Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java Sun Dec 17 11:17:11 2006
@@ -21,7 +21,6 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
 import java.util.Properties;
-
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.PersistenceContext;
@@ -31,28 +30,35 @@
 
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.component.ComponentRegistrationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.implementation.java.AbstractPropertyProcessor;
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
+import org.apache.tuscany.spi.implementation.java.ProcessingException;
 
 /**
- * Annotation processor for injecting <code>PersistenceUnit</code> 
- * annotations on properties.
+ * Annotation processor for injecting <code>PersistenceUnit</code> annotations on properties.
  *
+ * @version $Rev$ $Date$
  */
 public class PersistenceContextProcessor extends AbstractPropertyProcessor<PersistenceContext> {
-    
-    /** Transaction Manager */
+
+    /**
+     * Transaction Manager
+     */
     @Autowire
     private TransactionManager transactionManager;
 
-    /** Persistence unit builder */
+    /**
+     * Persistence unit builder
+     */
     private PersistenceUnitBuilder builder = new DefaultPersistenceUnitBuilder();
 
     /**
      * Injects the implementation processor service.
+     *
      * @param service Implementation processor service.
      */
     public PersistenceContextProcessor(@Autowire ImplementationProcessorService service) {
@@ -71,14 +77,21 @@
      * Initializes the property.
      */
     @SuppressWarnings("unchecked")
-    protected <T> void initProperty(JavaMappedProperty<T> property, PersistenceContext annotation, CompositeComponent parent, DeploymentContext context) {
+    protected <T> void initProperty(JavaMappedProperty<T> property,
+                                    PersistenceContext annotation,
+                                    CompositeComponent parent,
+                                    DeploymentContext context) throws ProcessingException {
 
         String unitName = annotation.unitName();
         EntityManagerFactory emf = (EntityManagerFactory) parent.getSystemChild(unitName);
 
         if (emf == null) {
             emf = builder.newEntityManagerFactory(unitName, context.getClassLoader());
-            parent.registerJavaObject(unitName, EntityManagerFactory.class, emf);
+            try {
+                parent.registerJavaObject(unitName, EntityManagerFactory.class, emf);
+            } catch (ComponentRegistrationException e) {
+                throw new ProcessingException(e);
+            }
         }
         ObjectFactory factory = new EmObjectFactory(emf, annotation);
         property.setDefaultValueFactory(factory);
@@ -86,7 +99,7 @@
     }
 
     private class EmObjectFactory implements ObjectFactory<EntityManager> {
-        
+
         private EntityManagerFactory emf;
         private PersistenceContext annotation;
 
@@ -96,26 +109,27 @@
         }
 
         public EntityManager getInstance() {
-            
+
             PersistenceContextType type = annotation.type();
-            if(type == PersistenceContextType.TRANSACTION) {
-                
+            if (type == PersistenceContextType.TRANSACTION) {
+
                 Properties props = new Properties();
-                for(PersistenceProperty property : annotation.properties()) {
+                for (PersistenceProperty property : annotation.properties()) {
                     props.put(property.name(), property.value());
                 }
-                
-                Class[] interfaces = new Class[] {EntityManager.class};
+
+                Class[] interfaces = new Class[]{EntityManager.class};
                 InvocationHandler handler = new EntityManagerProxy(props, emf, transactionManager);
-                EntityManager em = (EntityManager)Proxy.newProxyInstance(getClass().getClassLoader(), interfaces, handler);
+                EntityManager em =
+                    (EntityManager) Proxy.newProxyInstance(getClass().getClassLoader(), interfaces, handler);
                 return em;
-                
+
             } else {
                 throw new UnsupportedOperationException("Extended persistence contexts not supported");
             }
-            
+
         }
-        
+
     }
 
 }

Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java Sun Dec 17 11:17:11 2006
@@ -19,13 +19,14 @@
 package org.apache.tuscany.service.persistence.common;
 
 import java.lang.reflect.Field;
-
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.PersistenceUnit;
 
 import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.component.ComponentRegistrationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
@@ -36,13 +37,15 @@
 import org.apache.tuscany.spi.implementation.java.Resource;
 
 /**
- * Annotation processor for injecting <code>PersistenceUnit</code> 
- * annotations on properties.
+ * Annotation processor for injecting <code>PersistenceUnit</code> annotations on properties.
  *
+ * @version $Rev$ $Date$
  */
 public class PersistenceUnitProcessor extends ImplementationProcessorExtension {
 
-    /** Persistence unit builder */
+    /**
+     * Persistence unit builder
+     */
     private PersistenceUnitBuilder builder = new DefaultPersistenceUnitBuilder();
 
     public void visitField(CompositeComponent parent,
@@ -56,15 +59,23 @@
         }
         String unitName = annotation.unitName();
 
-        SystemAtomicComponent component = (SystemAtomicComponent)parent.getSystemChild(unitName);
+        SystemAtomicComponent component = (SystemAtomicComponent) parent.getSystemChild(unitName);
         EntityManagerFactory emf;
         if (component == null) {
             emf = builder.newEntityManagerFactory(unitName, context.getClassLoader());
-            parent.registerJavaObject(unitName, EntityManagerFactory.class, emf);
+            try {
+                parent.registerJavaObject(unitName, EntityManagerFactory.class, emf);
+            } catch (ComponentRegistrationException e) {
+                throw new ProcessingException(e);
+            }
         } else {
-            emf = (EntityManagerFactory)component.getTargetInstance();
+            try {
+                emf = (EntityManagerFactory) component.getTargetInstance();
+            } catch (TargetException e) {
+                throw new ProcessingException(e);
+            }
         }
-        
+
         ObjectFactory factory = new EmfObjectFactory(emf);
         Resource resource = new Resource();
         resource.setObjectFactory(factory);

Added: incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java?view=auto&rev=488028
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java (added)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java Sun Dec 17 11:17:11 2006
@@ -0,0 +1,31 @@
+/*
+ * 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.persistence.datasource;
+
+import org.apache.tuscany.spi.component.TargetException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DataSourceCloseException extends TargetException {
+
+    public DataSourceCloseException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}

Propchange: incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceCloseException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceComponent.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceComponent.java (original)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/main/java/org/apache/tuscany/persistence/datasource/DataSourceComponent.java Sun Dec 17 11:17:11 2006
@@ -20,7 +20,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.sql.DataSource;
 
 import org.apache.tuscany.spi.ObjectCreationException;
@@ -73,7 +72,7 @@
             try {
                 ((DataSourceProvider) instance).close();
             } catch (ProviderException e) {
-                throw new TargetException(e);
+                throw new DataSourceCloseException("Error closing data source provider", e);
             }
         }
     }

Modified: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java Sun Dec 17 11:17:11 2006
@@ -26,6 +26,7 @@
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.implementation.java.AbstractPropertyProcessor;
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
@@ -66,8 +67,13 @@
     protected <T> void initProperty(JavaMappedProperty<T> property,
                                     PersistenceContext annotation,
                                     CompositeComponent parent,
-                                    DeploymentContext context) {
-        EntityManagerFactory emf = parent.resolveSystemInstance(EntityManagerFactory.class);
+                                    DeploymentContext context) throws ProcessingException {
+        EntityManagerFactory emf;
+        try {
+            emf = parent.resolveSystemInstance(EntityManagerFactory.class);
+        } catch (TargetException e) {
+            throw new ProcessingException(e);
+        }
         ObjectFactory factory = new EntityManagerObjectFactory(emf);
         property.setDefaultValueFactory(factory);
     }

Modified: incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java?view=diff&rev=488028&r1=488027&r2=488028
==============================================================================
--- incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java Sun Dec 17 11:17:11 2006
@@ -33,13 +33,13 @@
 public class BootstrapTestCase extends SCATestCase {
     private CompositeComponent jtaComposite;
 
-    public void testTransactionManagerLocation() {
+    public void testTransactionManagerLocation() throws Exception {
         AtomicComponent tmComponent = (AtomicComponent) jtaComposite.getSystemChild("TransactionManager");
         Object tm = tmComponent.getServiceInstance();
         assertTrue(tm instanceof TransactionManager);
     }
 
-    public void testAutowire() {
+    public void testAutowire() throws Exception {
         assertNotNull(jtaComposite.resolveSystemInstance(TransactionManager.class));
     }
 



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