JDBC driver module-slot is not persisted in domain mode
gaol Mar 24, 2015 11:57 PMThe module-slot of jdbc-driver is NOT persisted in domain mode, but it is persisted in standalone mode.
I tested using latest local build of WilfFly (using wildfly-core Beta1). (latest WildFly commit id: d4c0174faa914e59f92dc1d097b14284154ee78c)
Java Version:
lgao /sources/wildfly/build/target/wildfly-9.0.0.Alpha2-SNAPSHOT $ java -version java version "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
I have a jdbc-driver jboss-module defined in non-default slot:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.postgresql" slot="9.3"> <resources> <resource-root path="postgresql-9.3-1103-jdbc4.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
Then I tried to configure the jdbc-driver using CLI in domain mode:
[domain@localhost:9990 /] /profile=full/subsystem=datasources/jdbc-driver=postgresql-93:add(driver-name=postgresql-93,driver-module-name=org.postgresql,module-slot=9.3)
{
"outcome" => "success",
"result" => undefined,
"server-groups" => {"main-server-group" => {"host" => {"master" => {
"server-one" => {"response" => {"outcome" => "success"}},
"server-two" => {"response" => {"outcome" => "success"}}
}}}}
}
Although the command executes successfully, the module-slot information is missing in domain.xml:
<driver name="postgresql-93" module="org.postgresql"/>
It is supposed to be:
<driver name="postgresql-93" module="org.postgresql:9.3"/>
I can still read the slot information using command:
[domain@localhost:9990 /] /profile=full/subsystem=datasources/jdbc-driver=postgresql-93:read-resource
{
"outcome" => "success",
"result" => {
"deployment-name" => undefined,
"driver-class-name" => undefined,
"driver-datasource-class-name" => undefined,
"driver-major-version" => undefined,
"driver-minor-version" => undefined,
"driver-module-name" => "org.postgresql",
"driver-name" => "postgresql-93",
"driver-xa-datasource-class-name" => undefined,
"jdbc-compliant" => undefined,
"module-slot" => "9.3",
"profile" => undefined,
"xa-datasource-class" => undefined
}
}
but I can not read the slot the information anymore after restart the server(domain mode):
[domain@localhost:9990 /] /profile=full/subsystem=datasources/jdbc-driver=postgresql-93:read-resource
{
"outcome" => "success",
"result" => {
"deployment-name" => undefined,
"driver-class-name" => undefined,
"driver-datasource-class-name" => undefined,
"driver-major-version" => undefined,
"driver-minor-version" => undefined,
"driver-module-name" => "org.postgresql",
"driver-name" => "postgresql-93",
"driver-xa-datasource-class-name" => undefined,
"jdbc-compliant" => undefined,
"module-slot" => undefined,
"profile" => undefined,
"xa-datasource-class" => undefined
}
}
This issue does not happen in standalone mode.
After did some debugging, I found that the performRuntime() method of JdbcDriverAdd.java is not called in domain mode, but is called in standalone mode. is there anything related?