This is an automated email from the ASF dual-hosted git repository.

jungm pushed a commit to branch xbean-4.30-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/xbean-4.30-SNAPSHOT by this 
push:
     new 5cc3fa5347 support constructor-types for uri definitions and xml
5cc3fa5347 is described below

commit 5cc3fa5347831beae289a9da20f347ecf4e406c2
Author: Markus Jung <[email protected]>
AuthorDate: Mon Jan 5 14:53:36 2026 +0100

    support constructor-types for uri definitions and xml
---
 .../java/org/apache/openejb/config/ConfigurationFactory.java |  2 ++
 .../src/main/java/org/apache/openejb/config/Service.java     |  2 ++
 .../org/apache/openejb/config/provider/ProviderManager.java  |  2 +-
 .../java/org/apache/openejb/config/sys/AbstractService.java  | 12 ++++++++++++
 .../java/org/apache/openejb/config/sys/StackHandler.java     |  3 +++
 .../openejb/config/typed/BmpEntityContainerBuilder.java      |  1 +
 .../openejb/config/typed/CmpEntityContainerBuilder.java      |  2 ++
 .../org/apache/openejb/config/typed/DataSourceBuilder.java   |  2 ++
 .../apache/openejb/config/typed/ManagedContainerBuilder.java |  1 +
 .../openejb/config/typed/MessageDrivenContainerBuilder.java  |  1 +
 .../java/org/apache/openejb/config/typed/QueueBuilder.java   |  1 +
 .../openejb/config/typed/SingletonContainerBuilder.java      |  1 +
 .../java/org/apache/openejb/config/typed/TopicBuilder.java   |  1 +
 .../openejb/config/typed/TransactionManagerBuilder.java      |  1 +
 14 files changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
index dd3383cc8e..1f8f0d85ac 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
@@ -797,6 +797,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
                 service.setProvider(map.remove("provider"));
                 service.setClassName(map.remove("class-name"));
                 service.setConstructor(map.remove("constructor"));
+                
service.setConstructorArgTypes(map.remove("constructor-types"));
                 service.setFactoryName(map.remove("factory-name"));
                 
service.setPropertiesProvider(map.remove("properties-provider"));
                 service.setTemplate(map.remove("template"));
@@ -1462,6 +1463,7 @@ public class ConfigurationFactory implements 
OpenEjbConfigurationFactory {
             provider.getTypes().add(service.getType());
             provider.setClassName(service.getClassName());
             provider.setConstructor(service.getConstructor());
+            provider.setConstructorTypes(service.getConstructorArgTypes());
             provider.setFactoryName(service.getFactoryName());
             return provider;
         }
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java 
b/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
index 370096ef3b..5d0b8a7ab9 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/Service.java
@@ -60,6 +60,8 @@ public interface Service {
 
     String getConstructor();
 
+    String getConstructorArgTypes();
+
     String getFactoryName();
 
     void setClasspath(String classpath);
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/provider/ProviderManager.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/provider/ProviderManager.java
index d5885d2da4..b4e3f37f48 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/provider/ProviderManager.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/provider/ProviderManager.java
@@ -131,7 +131,7 @@ public class ProviderManager {
             child.setConstructor(parent.getConstructor());
         }
         if (n(child.getConstructorTypes())) {
-            child.setConstructor(parent.getConstructorTypes());
+            child.setConstructorTypes(parent.getConstructorTypes());
         }
         if (n(child.getFactoryName())) {
             child.setFactoryName(parent.getFactoryName());
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
index b2b42cafd0..0522a7e6d7 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/AbstractService.java
@@ -83,6 +83,9 @@ public abstract class AbstractService implements Service {
     @XmlAttribute(name = "constructor")
     protected String constructor;
 
+    @XmlAttribute(name = "constructor-types")
+    protected String constructorArgTypes;
+
     /**
      * Mutually exclusive with 'provider'
      */
@@ -231,6 +234,15 @@ public abstract class AbstractService implements Service {
         this.constructor = constructor;
     }
 
+    @Override
+    public String getConstructorArgTypes() {
+        return constructorArgTypes;
+    }
+
+    public void setConstructorArgTypes(String constructorArgTypes) {
+        this.constructorArgTypes = constructorArgTypes;
+    }
+
     public String getFactoryName() {
         return factoryName;
     }
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/StackHandler.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/StackHandler.java
index 4cc1db8ea1..694bc97bbe 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/StackHandler.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/StackHandler.java
@@ -177,6 +177,9 @@ public class StackHandler extends DefaultHandler {
             if (attributes.getValue("constructor") != null) {
                 service.setConstructor(attributes.getValue("constructor"));
             }
+            if (attributes.getValue("constructor-types") != null) {
+                
service.setConstructorArgTypes(attributes.getValue("constructor-types"));
+            }
             if (attributes.getValue("factory-name") != null) {
                 service.setFactoryName(attributes.getValue("factory-name"));
             }
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/BmpEntityContainerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/BmpEntityContainerBuilder.java
index 4df9ccf939..66f70cd6d6 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/BmpEntityContainerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/BmpEntityContainerBuilder.java
@@ -39,6 +39,7 @@ public class BmpEntityContainerBuilder extends Container {
         setId("BmpEntityContainer");
 
         setConstructor("id, securityService, poolSize");
+        setConstructorArgTypes("java.lang.Object, 
org.apache.openejb.spi.SecurityService, int");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/CmpEntityContainerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/CmpEntityContainerBuilder.java
index 53d2d907a1..dd94abac92 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/CmpEntityContainerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/CmpEntityContainerBuilder.java
@@ -39,6 +39,8 @@ public class CmpEntityContainerBuilder extends Container {
         setId("CmpEntityContainer");
 
         setConstructor("id, transactionManager, securityService, 
cmpEngineFactory");
+        setConstructorArgTypes("java.lang.Object, 
jakarta.transaction.TransactionManager, org.apache.openejb.spi.SecurityService, 
java.lang.String");
+
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
index 60ab3599c2..5a2a93f1c3 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
@@ -99,6 +99,8 @@ public class DataSourceBuilder extends Resource {
         setId("DataSource");
 
         setConstructor("serviceId, jtaManaged, jdbcDriver, definition, 
maxWaitTime, timeBetweenEvictionRuns, minEvictableIdleTime, 
OpenEJBResourceClasspath");
+        
setConstructorArgTypes("java.lang.String,boolean,java.lang.Class,java.lang.String,org.apache.openejb.util.Duration,org.apache.openejb.util.Duration,org.apache.openejb.util.Duration,boolean");
+
 
         setFactoryName("create");
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ManagedContainerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ManagedContainerBuilder.java
index ac5177c706..3aa40d183d 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ManagedContainerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ManagedContainerBuilder.java
@@ -36,6 +36,7 @@ public class ManagedContainerBuilder extends Container {
         setId("ManagedContainer");
 
         setConstructor("id, securityService");
+        setConstructorArgTypes("java.lang.Object, 
org.apache.openejb.spi.SecurityService");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/MessageDrivenContainerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/MessageDrivenContainerBuilder.java
index 94721f9811..123e75e64d 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/MessageDrivenContainerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/MessageDrivenContainerBuilder.java
@@ -45,6 +45,7 @@ public class MessageDrivenContainerBuilder extends Container {
         setId("MessageDrivenContainer");
 
         setConstructor("id, securityService, resourceAdapter, 
messageListenerInterface, activationSpecClass, instanceLimit, 
failOnUnknownActivationSpec");
+        setConstructorArgTypes("java.lang.Object, 
org.apache.openejb.spi.SecurityService, jakarta.resource.spi.ResourceAdapter, 
java.lang.Class, java.langClass, int, boolean");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/QueueBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/QueueBuilder.java
index d163cc0324..538be302a0 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/QueueBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/QueueBuilder.java
@@ -39,6 +39,7 @@ public class QueueBuilder extends Resource {
         setId("Queue");
 
         setConstructor("destination");
+        setConstructorArgTypes("java.lang.String");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/SingletonContainerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/SingletonContainerBuilder.java
index 9a9d660a89..634f7e4af4 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/SingletonContainerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/SingletonContainerBuilder.java
@@ -44,6 +44,7 @@ public class SingletonContainerBuilder extends Container {
         setId("SingletonContainer");
 
         setConstructor("id, securityService");
+        setConstructorArgTypes("java.lang.Object, 
org.apache.openejb.spi.SecurityService");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TopicBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TopicBuilder.java
index 854bf79492..fc8b0aeaf7 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TopicBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TopicBuilder.java
@@ -39,6 +39,7 @@ public class TopicBuilder extends Resource {
         setId("Topic");
 
         setConstructor("destination");
+        setConstructorArgTypes("java.lang.String");
 
     }
 
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
index f7296c5bea..e03dea04fc 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
@@ -71,6 +71,7 @@ public class TransactionManagerBuilder extends 
TransactionManager {
         setId("TransactionManager");
 
         setConstructor("defaultTransactionTimeoutSeconds, 
defaultTransactionTimeout, txRecovery, tmId, bufferClassName, bufferSizeKb, 
checksumEnabled, adler32Checksum, flushSleepTimeMilliseconds, flushSleepTime, 
logFileDir, logFileExt, logFileName, maxBlocksPerFile, maxBuffers, maxLogFiles, 
minBuffers, threadsWaitingForceThreshold");
+        setConstructorArgTypes("java.lang.Integer, 
org.apache.openejb.util.Duration, boolean, byte[], java.lang.String, int, 
boolean, boolean, java.lang.Integer, org.apache.openejb.util.Duration, 
java.lang.String, java.lang.String, java.lang.String, int, int, int, int, int");
 
         setFactoryName("create");
 

Reply via email to