Author: dblevins
Date: Tue Sep 11 21:26:06 2007
New Revision: 574782
URL: http://svn.apache.org/viewvc?rev=574782&view=rev
Log:
Rewrote configureService working in the new 'type' attribute available in
<Resource>, <Container> and other elements in openejb.xml
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/TransactionAtts.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ConnectionManager.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Connector.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JndiProvider.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ProxyFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Resource.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SecurityService.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/TransactionManager.java
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigureServiceTest.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
Tue Sep 11 21:26:06 2007
@@ -18,6 +18,7 @@
package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.config.sys.Resource;
import org.apache.openejb.assembler.classic.ContainerInfo;
import org.apache.openejb.assembler.classic.ResourceInfo;
import org.apache.openejb.assembler.classic.LinkResolver;
@@ -673,7 +674,7 @@
if (!autoCreateResources){
throw new OpenEJBException(message);
}
- logger.info(message);
+ logger.debug(message);
// if there is a provider with the specified name. use it
if (ServiceUtils.hasServiceProvider(resourceId)) {
@@ -695,6 +696,8 @@
throw new OpenEJBException("No provider available for resource
reference '" + resourceId + "' of type '" + type + "' for '" + beanName + "'.");
}
ResourceInfo resourceInfo = configFactory.configureService(resourceId,
ResourceInfo.class);
+
+ logger.info("Auto-creating a resource with id '" + resourceInfo.id +
"' of type '" + type + " for '" + beanName + "'.");
return installResource(beanName, resourceInfo);
}
@@ -737,7 +740,7 @@
if (!autoCreateResources){
throw new OpenEJBException(message);
}
- logger.info(message);
+ logger.debug(message);
// Auto create a resource using the first provider that can supply a
resource of the desired type
@@ -745,9 +748,12 @@
if (providerId == null) {
throw new OpenEJBException("No provider available for resource
reference '" + resourceId + "' of type '" + type + "' for '" + beanName + "'.");
}
- Properties properties = new Properties();
- properties.setProperty("destination", resourceId);
- ResourceInfo resourceInfo =
configFactory.configureService(ResourceInfo.class, resourceId, properties,
providerId, null);
+
+ Resource resource = new Resource(resourceId, providerId, null);
+ resource.getProperties().setProperty("destination", resourceId);
+
+ ResourceInfo resourceInfo = configFactory.configureService(resource,
ResourceInfo.class);
+ logger.info("Auto-creating a resource with id '" + resourceInfo.id +
"' of type '" + type + " for '" + beanName + "'.");
return installResource(beanName, resourceInfo);
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Tue Sep 11 21:26:06 2007
@@ -369,7 +369,7 @@
appInfo.persistenceUnits.add(info);
}
}
-
+
// process JNDI refs... all JDNI refs for the whole application
// must be processed at the same time
JndiEncInfoBuilder.initJndiReferences(appModule, appInfo);
@@ -407,7 +407,7 @@
ReportValidationResults reportValidationResults = new
ReportValidationResults();
reportValidationResults.deploy(appModule);
-
+
logger.info("Loaded Module: " + appInfo.jarPath);
return appInfo;
}
@@ -435,101 +435,81 @@
private static final Map<Class<? extends ServiceInfo>, DefaultService>
defaultProviders = new HashMap<Class<? extends ServiceInfo>, DefaultService>();
+ private static final Map<Class<? extends ServiceInfo>, Class<? extends
Service>> types = new HashMap<Class<? extends ServiceInfo>, Class<? extends
Service>>();
+
static {
- defaultProviders.put(MdbContainerInfo.class, new
DefaultService("Default MDB Container", Container.class));
- defaultProviders.put(StatefulSessionContainerInfo.class, new
DefaultService("Default Stateful Container", Container.class));
- defaultProviders.put(StatelessSessionContainerInfo.class, new
DefaultService("Default Stateless Container", Container.class));
- defaultProviders.put(CmpEntityContainerInfo.class, new
DefaultService("Default CMP Container", Container.class));
- defaultProviders.put(BmpEntityContainerInfo.class, new
DefaultService("Default BMP Container", Container.class));
- defaultProviders.put(SecurityServiceInfo.class, new
DefaultService("Default Security Service", SecurityService.class));
- defaultProviders.put(TransactionServiceInfo.class, new
DefaultService("Default Transaction Manager", TransactionManager.class));
- defaultProviders.put(ConnectionManagerInfo.class, new
DefaultService("Default Local TX ConnectionManager", ConnectionManager.class));
- defaultProviders.put(ProxyFactoryInfo.class, new
DefaultService("Default JDK 1.3 ProxyFactory", ProxyFactory.class));
+ defaultProviders.put(MdbContainerInfo.class, new
DefaultService("MESSAGE", Container.class));
+ defaultProviders.put(StatefulSessionContainerInfo.class, new
DefaultService("STATEFUL", Container.class));
+ defaultProviders.put(StatelessSessionContainerInfo.class, new
DefaultService("STATELESS", Container.class));
+ defaultProviders.put(CmpEntityContainerInfo.class, new
DefaultService("CMP_ENTITY", Container.class));
+ defaultProviders.put(BmpEntityContainerInfo.class, new
DefaultService("BMP_ENTITY", Container.class));
+ defaultProviders.put(SecurityServiceInfo.class, new
DefaultService("SecurityService", SecurityService.class));
+ defaultProviders.put(TransactionServiceInfo.class, new
DefaultService("TransactionManager", TransactionManager.class));
+ defaultProviders.put(ConnectionManagerInfo.class, new
DefaultService("ConnectionManager", ConnectionManager.class));
+ defaultProviders.put(ProxyFactoryInfo.class, new
DefaultService("ProxyFactory", ProxyFactory.class));
+
+ for (Map.Entry<Class<? extends ServiceInfo>, DefaultService> entry :
defaultProviders.entrySet()) {
+ types.put(entry.getKey(), entry.getValue().type);
+ }
+
+ types.put(ResourceInfo.class, Resource.class);
}
+
public <T extends ServiceInfo> T configureService(Class<? extends T> type)
throws OpenEJBException {
+ Service service = getDefaultService(type);
+
+ return configureService(service, type);
+ }
+
+ private <T extends ServiceInfo>Service getDefaultService(Class<? extends
T> type) throws OpenEJBException {
DefaultService defaultService = defaultProviders.get(type);
Service service = null;
try {
service = JaxbOpenejb.create(defaultService.type);
- service.setProvider(defaultService.id);
- service.setId(defaultService.id);
+ service.setType(defaultService.id);
} catch (Exception e) {
throw new OpenEJBException("Cannot instantiate class " +
defaultService.type.getName(), e);
}
-
- return configureService(service, type);
+ return service;
}
- public <T extends ServiceInfo> T configureService(Service service, Class<?
extends T> type) throws OpenEJBException {
+ public <T extends ServiceInfo> T configureService(Service service, Class<?
extends T> infoType) throws OpenEJBException {
+ if (infoType == null) throw new NullPointerException("type");
+
if (service == null) {
- return configureService(type);
+ service = getDefaultService(infoType);
}
- Properties declaredProperties = new Properties();
- declaredProperties.putAll(service.getProperties());
-
- return configureService(type, service.getId(), declaredProperties,
service.getProvider(), service.getClass().getSimpleName());
- }
-
- public <T extends ServiceInfo>T configureService(String id, Class<?
extends T> type) throws OpenEJBException {
- return configureService(type, id, null, id, null);
- }
+ String providerType = service.getClass().getSimpleName();
- /**
- * Resolving the provider for a particular service follows this algorithm:
- *
- * 1. Attempt to load the provider specified by the 'providerId'.
- * 2. If this fails, throw NoSuchProviderException
- * 3. If providerId is null, attempt to load the specified provider using
the 'serviceId' as the 'providerId'
- * 4. If this fails, check the hardcoded defaults for a default
providerId using the supplied 'type'
- * 5. If this fails, throw NoSuchProviderException
- */
- public <T extends ServiceInfo>T configureService(Class<? extends T> type,
String serviceId, Properties declaredProperties, String providerId, String
serviceType) throws OpenEJBException {
- if (type == null) throw new NullPointerException("type");
- if (serviceId == null) throw new NullPointerException("serviceId");
+ ServiceProvider provider = resolveServiceProvider(service, infoType);
- if (declaredProperties == null){
- declaredProperties = new Properties();
+ if (provider == null){
+ throw new NoSuchProviderException("Cannot determine a default
provider for Service("+service.getId() +", "+infoType.getSimpleName()+")");
}
- ServiceProvider provider = null;
- if (providerId != null) {
- provider = ServiceUtils.getServiceProvider(providerId);
- } else {
- try {
- provider = ServiceUtils.getServiceProvider(serviceId);
- } catch (NoSuchProviderException e) {
- DefaultService defaultProvider = defaultProviders.get(type);
- if (defaultProvider == null){
- throw new NoSuchProviderException("Cannot determine a
default provider for Service("+serviceId +", "+type.getSimpleName()+")");
- }
- provider = ServiceUtils.getServiceProvider(defaultProvider.id);
- providerId = provider.getId();
- }
- }
+ if (service.getId() == null) service.setId(provider.getId());
+
+ logger.info("Configuring Service(id=" + service.getId() + ", type=" +
provider.getProviderType() + ", provider-id=" + provider.getId() + ")");
- logger.info("Configuring Service(id=" + serviceId + ", type=" +
provider.getProviderType() + ", provider-id=" + provider.getId() + ")");
Properties props = new Properties();
props.putAll(provider.getProperties());
- props.putAll(declaredProperties);
-
- Properties serviceProperties = getSystemProperties(serviceId);
+ props.putAll(service.getProperties());
+ props.putAll(getSystemProperties(service.getId()));
- props.putAll(serviceProperties);
-
- if (serviceType != null &&
!provider.getProviderType().equals(serviceType)) {
- throw new OpenEJBException(messages.format("conf.4902", serviceId,
serviceType));
+ if (providerType != null &&
!provider.getProviderType().equals(providerType)) {
+ throw new OpenEJBException(messages.format("conf.4902",
service.getId(), providerType));
}
T info = null;
try {
- info = type.newInstance();
+ info = infoType.newInstance();
} catch (Exception e) {
- throw new OpenEJBException("Cannot instantiate class " +
type.getName(), e);
+ throw new OpenEJBException("Cannot instantiate class " +
infoType.getName(), e);
}
info.serviceType = provider.getProviderType();
@@ -537,18 +517,67 @@
info.displayName = provider.getDisplayName();
info.className = provider.getClassName();
info.factoryMethod = provider.getFactoryName();
- info.id = serviceId;
+ info.id = service.getId();
info.properties = props;
info.constructorArgs.addAll(parseConstructorArgs(provider));
-// String serviceId = serviceType + ":" + info.id;
-// if (serviceIds.contains(serviceId)) {
-// handleException("conf.0105", configLocation, info.id,
serviceType);
-// }
+ return info;
+ }
-// serviceIds.add(serviceId);
+ private ServiceProvider resolveServiceProvider(Service service, Class
infoType) throws OpenEJBException {
- return info;
+ if (service.getProvider() != null) {
+ return ServiceUtils.getServiceProvider(service.getProvider());
+ }
+
+ if (service.getType() != null) {
+ return
ServiceUtils.getServiceProviderByType(service.getClass().getSimpleName(),
service.getType());
+ }
+
+ if (service.getId() != null) {
+ try {
+ return ServiceUtils.getServiceProvider(service.getId());
+ } catch (NoSuchProviderException e) {
+ }
+ }
+
+ if (infoType != null) {
+ Service defaultService = getDefaultService(infoType);
+ return resolveServiceProvider(defaultService, null);
+ }
+
+ return null;
+ }
+
+ public <T extends ServiceInfo>T configureService(String id, Class<?
extends T> type) throws OpenEJBException {
+ return configureService(type, id, null, id, null);
+ }
+
+ /**
+ * Resolving the provider for a particular service follows this algorithm:
+ *
+ * 1. Attempt to load the provider specified by the 'providerId'.
+ * 2. If this fails, throw NoSuchProviderException
+ * 3. If providerId is null, attempt to load the specified provider using
the 'serviceId' as the 'providerId'
+ * 4. If this fails, check the hardcoded defaults for a default
providerId using the supplied 'type'
+ * 5. If this fails, throw NoSuchProviderException
+ */
+ public <T extends ServiceInfo>T configureService(Class<? extends T> type,
String serviceId, Properties declaredProperties, String providerId, String
serviceType) throws OpenEJBException {
+ Class<? extends Service> serviceClass = types.get(type);
+ Service service = null;
+ try {
+ service = serviceClass.newInstance();
+ } catch (Exception e) {
+ throw new OpenEJBException("Cannot instantiate service class '" +
serviceClass.getName() + "'", e);
+ }
+ service.setId(serviceId);
+ service.setProvider(providerId);
+
+ if (declaredProperties != null) {
+ service.getProperties().putAll(declaredProperties);
+ }
+
+ return configureService(service, type);
}
private Properties getSystemProperties(String serviceId) {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
Tue Sep 11 21:26:06 2007
@@ -90,13 +90,35 @@
}
public static String getServiceProviderId(String type) throws
OpenEJBException {
+ ServiceProvider provider = getServiceProviderByType(type);
+
+ return provider != null? provider.getId(): null;
+ }
+
+ public static ServiceProvider getServiceProviderByType(String type) throws
OpenEJBException {
if (type == null) return null;
List<ServiceProvider> services = getServices(defaultProviderURL);
for (ServiceProvider service : services) {
if (service.getServiceTypes().contains(type)) {
- return service.getId();
+ return service;
+ }
+ }
+
+ return null;
+ }
+
+ public static ServiceProvider getServiceProviderByType(String
providerType, String serviceType) throws OpenEJBException {
+ if (serviceType == null) return null;
+
+ List<ServiceProvider> services = getServices(defaultProviderURL);
+
+ for (ServiceProvider service : services) {
+ if (!service.getProviderType().equals(providerType)) continue;
+
+ if (service.getServiceTypes().contains(serviceType)) {
+ return service;
}
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
Tue Sep 11 21:26:06 2007
@@ -61,11 +61,10 @@
protected AbstractService(String id) {
- this(id, null, null, new Properties());
+ this(id, null, null);
}
- protected AbstractService(String id, String provider, String type,
Properties properties) {
- this.properties = properties;
+ protected AbstractService(String id, String provider, String type) {
this.id = id;
this.provider = provider;
this.type = type;
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ConnectionManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ConnectionManager.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ConnectionManager.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ConnectionManager.java
Tue Sep 11 21:26:06 2007
@@ -17,14 +17,10 @@
*/
package org.apache.openejb.config.sys;
-import org.apache.openejb.config.Service;
-
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.XmlValue;
import java.util.Properties;
/**
@@ -53,8 +49,8 @@
super(id);
}
- public ConnectionManager(String id, String provider, String type,
Properties properties) {
- super(id, provider, type, properties);
+ public ConnectionManager(String id, String provider, String type) {
+ super(id, provider, type);
}
public ConnectionManager() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Connector.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Connector.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Connector.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Connector.java
Tue Sep 11 21:26:06 2007
@@ -49,8 +49,8 @@
super(id);
}
- public Connector(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public Connector(String id, String provider, String type) {
+ super(id, provider, type);
}
public Connector() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Container.java
Tue Sep 11 21:26:06 2007
@@ -52,8 +52,8 @@
super(id);
}
- public Container(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public Container(String id, String provider, String type) {
+ super(id, provider, type);
}
public Container() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JndiProvider.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JndiProvider.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JndiProvider.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JndiProvider.java
Tue Sep 11 21:26:06 2007
@@ -49,8 +49,8 @@
super(id);
}
- public JndiProvider(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public JndiProvider(String id, String provider, String type) {
+ super(id, provider, type);
}
public JndiProvider() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ProxyFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ProxyFactory.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ProxyFactory.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/ProxyFactory.java
Tue Sep 11 21:26:06 2007
@@ -49,8 +49,8 @@
super(id);
}
- public ProxyFactory(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public ProxyFactory(String id, String provider, String type) {
+ super(id, provider, type);
}
public ProxyFactory() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Resource.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Resource.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Resource.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Resource.java
Tue Sep 11 21:26:06 2007
@@ -54,8 +54,8 @@
super(id);
}
- public Resource(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public Resource(String id, String provider, String type) {
+ super(id, provider, type);
}
public Resource() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SecurityService.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SecurityService.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SecurityService.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SecurityService.java
Tue Sep 11 21:26:06 2007
@@ -50,8 +50,8 @@
super(id);
}
- public SecurityService(String id, String provider, String type, Properties
properties) {
- super(id, provider, type, properties);
+ public SecurityService(String id, String provider, String type) {
+ super(id, provider, type);
}
public SecurityService() {
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/TransactionManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/TransactionManager.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/TransactionManager.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/TransactionManager.java
Tue Sep 11 21:26:06 2007
@@ -49,8 +49,8 @@
super(id);
}
- public TransactionManager(String id, String provider, String type,
Properties properties) {
- super(id, provider, type, properties);
+ public TransactionManager(String id, String provider, String type) {
+ super(id, provider, type);
}
public TransactionManager() {
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/TransactionAtts.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/TransactionAtts.java?rev=574782&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/TransactionAtts.java
(added)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/TransactionAtts.java
Tue Sep 11 21:26:06 2007
@@ -0,0 +1,37 @@
+/**
+ * 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.openejb.util;
+
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TransactionAtts {
+
[EMAIL PROTECTED]
+public static class MyBean implements MyBusinessInterface {
+
+ @TransactionAttribute(TransactionAttributeType.MANDATORY)
+ public String codeRed(String s) {
+ return s;
+ }
+}
+
+}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
Tue Sep 11 21:26:06 2007
@@ -208,6 +208,7 @@
<ServiceProvider
id="Default JDK 1.3 ProxyFactory"
provider-type="ProxyFactory"
+ service-types="ProxyFactory"
class-name="org.apache.openejb.util.proxy.Jdk13ProxyFactory"/>
<!--
@@ -218,11 +219,13 @@
<ServiceProvider
id="PseudoSecurityService"
provider-type="SecurityService"
+ service-types="SecurityService"
class-name="org.apache.openejb.ri.sp.PseudoSecurityService"/>
<ServiceProvider
id="Default Security Service"
provider-type="SecurityService"
+ service-types="SecurityService"
class-name="org.apache.openejb.core.security.SecurityServiceImpl"/>
<!--
@@ -233,6 +236,7 @@
<ServiceProvider
id="Default Transaction Manager"
provider-type="TransactionManager"
+ service-types="TransactionManager"
class-name="org.apache.geronimo.transaction.manager.GeronimoTransactionManager"/>
<!--
@@ -660,6 +664,7 @@
<ServiceProvider
id="Default Local TX ConnectionManager"
provider-type="ConnectionManager"
+ service-types="ConnectionManager"
constructor="transactionManager"
class-name="org.apache.openejb.resource.SharedLocalConnectionManager"/>
Modified:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigureServiceTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigureServiceTest.java?rev=574782&r1=574781&r2=574782&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigureServiceTest.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/ConfigureServiceTest.java
Tue Sep 11 21:26:06 2007
@@ -18,6 +18,10 @@
import junit.framework.TestCase;
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
+import org.apache.openejb.assembler.classic.ResourceInfo;
+import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.config.sys.Resource;
+import org.apache.openejb.config.sys.Container;
import java.util.Properties;
@@ -38,11 +42,11 @@
assertNotNull(defaultStatelessContainer.properties);
// We should be able to create one of these with a different name
- String containerId = "My Stateless Container";
- StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(StatelessSessionContainerInfo.class, containerId,
null, null, null);
+ Container container = new Container("My Stateless Container");
+ StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(container, StatelessSessionContainerInfo.class);
assertNotNull(myStatelessContainer);
- assertEquals(containerId, myStatelessContainer.id);
+ assertEquals("My Stateless Container", myStatelessContainer.id);
assertEquals(defaultStatelessContainer.className,
myStatelessContainer.className);
assertNotNull(myStatelessContainer.constructorArgs);
assertNotNull(myStatelessContainer.properties);
@@ -53,11 +57,12 @@
ConfigurationFactory factory = new ConfigurationFactory();
// We should be able to create one of these with a different name
- String containerId = "MyContainer";
- StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(StatelessSessionContainerInfo.class, containerId,
null, "org.acme#CheddarContainer", null);
+
+ Container container = new Container("MyContainer",
"org.acme#CheddarContainer", "STATELESS");
+ StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(container, StatelessSessionContainerInfo.class);
assertNotNull(myStatelessContainer);
- assertEquals(containerId, myStatelessContainer.id);
+ assertEquals("MyContainer", myStatelessContainer.id);
assertEquals("org.acme.SuperContainer",
myStatelessContainer.className);
assertNotNull(myStatelessContainer.constructorArgs);
assertNotNull(myStatelessContainer.properties);
@@ -68,14 +73,13 @@
public void testConfigureServiceOverriddenProperty() throws Exception {
ConfigurationFactory factory = new ConfigurationFactory();
- Properties properties = new Properties();
- properties.setProperty("myProperty", "Cheese is good");
+ Container container = new Container("MyContainer",
"org.acme#CheddarContainer", "STATELESS");
+ container.getProperties().setProperty("myProperty", "Cheese is good");
- String containerId = "MyContainer";
- StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(StatelessSessionContainerInfo.class, containerId,
properties, "org.acme#CheddarContainer", null);
+ StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(container, StatelessSessionContainerInfo.class);
assertNotNull(myStatelessContainer);
- assertEquals(containerId, myStatelessContainer.id);
+ assertEquals("MyContainer", myStatelessContainer.id);
assertEquals("org.acme.SuperContainer",
myStatelessContainer.className);
assertNotNull(myStatelessContainer.constructorArgs);
assertNotNull(myStatelessContainer.properties);
@@ -86,14 +90,12 @@
public void testConfigureServiceAddedProperty() throws Exception {
ConfigurationFactory factory = new ConfigurationFactory();
- Properties properties = new Properties();
- properties.setProperty("anotherProperty", "Cheese is good");
-
- String containerId = "MyContainer";
- StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(StatelessSessionContainerInfo.class, containerId,
properties, "org.acme#CheddarContainer", null);
+ Container container = new Container("MyContainer",
"org.acme#CheddarContainer", "STATELESS");
+ container.getProperties().setProperty("anotherProperty", "Cheese is
good");
+ StatelessSessionContainerInfo myStatelessContainer =
factory.configureService(container, StatelessSessionContainerInfo.class);
assertNotNull(myStatelessContainer);
- assertEquals(containerId, myStatelessContainer.id);
+ assertEquals("MyContainer", myStatelessContainer.id);
assertEquals("org.acme.SuperContainer",
myStatelessContainer.className);
assertNotNull(myStatelessContainer.constructorArgs);
assertNotNull(myStatelessContainer.properties);
@@ -103,5 +105,17 @@
assertEquals("Cheese is good",
myStatelessContainer.properties.getProperty("anotherProperty"));
}
+ public void testConfigureByType() throws Exception {
+ ConfigurationFactory factory = new ConfigurationFactory();
+
+ Container container = new Container("MyContainer", null, "STATELESS");
+ container.getProperties().setProperty("anotherProperty", "Cheese is
good");
+ ContainerInfo myStatelessContainer =
factory.configureService(container, ContainerInfo.class);
+
+ assertNotNull(myStatelessContainer);
+ assertEquals("org.apache.openejb.core.stateless.StatelessContainer",
myStatelessContainer.className);
+ }
+
}
+