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