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");