You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/01/16 16:11:15 UTC

svn commit: r496723 - in /incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config: AutoConfigAndDeploy.java ConfigurationFactory.java

Author: dblevins
Date: Tue Jan 16 07:11:14 2007
New Revision: 496723

URL: http://svn.apache.org/viewvc?view=rev&rev=496723
Log:
Magic public methods to call for configuring ServiceInfos

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java?view=diff&rev=496723&r1=496722&r2=496723
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/AutoConfigAndDeploy.java Tue Jan 16 07:11:14 2007
@@ -92,7 +92,7 @@
                 String containerId = getUsableContainer(containerInfoType);
 
                 if (containerId == null){
-                    ContainerInfo containerInfo = configFactory.configureDefaultService(containerInfoType);
+                    ContainerInfo containerInfo = configFactory.configureService(containerInfoType);
                     logger.warning("Auto-creating a container for bean " + ejbDeployment.getDeploymentId() + ": Container(type=" + bean.getType() + ", id=" + containerInfo.id + ")");
                     configFactory.install(containerInfo);
                     containerId = containerInfo.id;
@@ -107,7 +107,7 @@
             // create the container if it doesn't exist
             if (!configFactory.getContainerIds().contains(ejbDeployment.getContainerId())) {
 
-                ContainerInfo containerInfo = configFactory.configureDefaultService(ConfigurationFactory.getContainerInfoType(bean.getType()));
+                ContainerInfo containerInfo = configFactory.configureService(ConfigurationFactory.getContainerInfoType(bean.getType()));
                 logger.warning("Auto-creating a container for bean " + ejbDeployment.getDeploymentId() + ": Container(type=" + bean.getType() + ", id=" + containerInfo.id + ")");
                 configFactory.install(containerInfo);
 
@@ -127,7 +127,7 @@
                     if (!connectorMap.contains(resRefName)) {
                         String name = resRefName.replaceFirst(".*/", "");
                         if (!connectorMap.contains(name)) {
-                            ConnectorInfo connectorInfo = configFactory.configureDefaultService(ConnectorInfo.class);
+                            ConnectorInfo connectorInfo = configFactory.configureService(ConnectorInfo.class);
                             id = connectorInfo.id = name;
                             logger.warning("Auto-creating a connector for res-ref-name '" + resRefName + "' in bean '" + ejbDeployment.getDeploymentId() + "': Connector(id=" + id + ").  THERE IS LITTLE CHANCE THIS WILL WORK!");
                             configFactory.install(connectorInfo);
@@ -147,7 +147,7 @@
                         if (connectorMap.size() > 0) {
                             id = connectorMap.get(0);
                         } else {
-                            ConnectorInfo connectorInfo = configFactory.configureDefaultService(ConnectorInfo.class);
+                            ConnectorInfo connectorInfo = configFactory.configureService(ConnectorInfo.class);
                             id = connectorInfo.id;
                             logger.warning("Auto-creating a connector with res-id " + link.getResId() + " for bean '"+ejbDeployment.getDeploymentId()+"'.  THERE IS LITTLE CHANCE THIS WILL WORK!");
                             configFactory.install(connectorInfo);

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java?view=diff&rev=496723&r1=496722&r2=496723
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java Tue Jan 16 07:11:14 2007
@@ -327,7 +327,7 @@
         defaultProviders.put(ConnectorInfo.class, new DefaultService("Default JDBC Database", Connector.class));
     }
 
-    protected <T extends ServiceInfo> T configureDefaultService(Class<? extends T> type) throws OpenEJBException {
+    public <T extends ServiceInfo> T configureService(Class<? extends T> type) throws OpenEJBException {
         DefaultService defaultService = defaultProviders.get(type);
 
         Service service = null;
@@ -345,27 +345,47 @@
 
     private <T extends ServiceInfo>T configureService(Service service, Class<? extends T> type) throws OpenEJBException {
         if (service == null) {
-            return configureDefaultService(type);
+            return configureService(type);
         }
 
-        String providerId = (service.getProvider() != null) ? service.getProvider() : service.getId();
+        Properties declaredProperties = getDeclaredProperties(service);
+
+        return configureService(type, service.getId(), declaredProperties, service.getProvider(), service.getClass().getSimpleName());
+    }
+
+    /**
+     *
+     * @param type required
+     * @param serviceId required
+     * @param declaredProperties optional
+     * @param providerId optional
+     * @param serviceType optional
+     * @return
+     * @throws OpenEJBException
+     */
+    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");
+        if (providerId ==  null){
+            providerId = serviceId;
+        }
+        if (declaredProperties == null){
+            declaredProperties = new Properties();
+        }
 
         ServiceProvider provider = ServiceUtils.getServiceProvider(providerId);
 
         Properties props = getDefaultProperties(provider);
 
-        Properties declaredProperties = getDeclaredProperties(service);
 
         props.putAll(declaredProperties);
 
-        String serviceId = service.getId();
         Properties serviceProperties = getSystemProperties(serviceId);
 
         props.putAll(serviceProperties);
-        Properties properties = props;
 
-        if (!provider.getProviderType().equals(service.getClass().getSimpleName())) {
-            throw new OpenEJBException(messages.format("conf.4902", service, service.getClass().getSimpleName()));
+        if (serviceType != null && !provider.getProviderType().equals(serviceType)) {
+            throw new OpenEJBException(messages.format("conf.4902", serviceId, serviceType));
         }
 
         T info = null;
@@ -377,12 +397,11 @@
         }
 
         info.serviceType = provider.getProviderType();
-        info.codebase = service.getJar();
         info.description = provider.getDescription();
         info.displayName = provider.getDisplayName();
         info.className = provider.getClassName();
-        info.id = service.getId();
-        info.properties = properties;
+        info.id = serviceId;
+        info.properties = props;
         info.constructorArgs.addAll(parseConstructorArgs(provider));
 
 //        String serviceId = serviceType + ":" + info.id;