Author: rareddy
Date: 2011-10-27 10:44:07 -0400 (Thu, 27 Oct 2011)
New Revision: 3590
Modified:
branches/as7/admin/src/main/java/org/teiid/adminapi/Admin.java
branches/as7/admin/src/main/java/org/teiid/adminapi/AdminFactory.java
branches/as7/admin/src/main/resources/org/teiid/adminapi/i18n.properties
branches/as7/build/kits/jboss-as7/standalone/configuration/standalone-teiid.xml
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidExtension.java
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidOperationHandler.java
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
branches/as7/pom.xml
branches/as7/runtime/pom.xml
Log:
TEIID-1720: Upgrade 7.1.0Alpha2, Admin implementation of data sources
Modified: branches/as7/admin/src/main/java/org/teiid/adminapi/Admin.java
===================================================================
--- branches/as7/admin/src/main/java/org/teiid/adminapi/Admin.java 2011-10-26 20:02:37 UTC
(rev 3589)
+++ branches/as7/admin/src/main/java/org/teiid/adminapi/Admin.java 2011-10-27 14:44:07 UTC
(rev 3590)
@@ -287,4 +287,11 @@
* @throws AdminException
*/
Set<String> getDataSourceTemplateNames() throws AdminException;
+
+ /**
+ * Tell the engine that the given source is available. Pending dynamic vdb metadata
loads will be resumed.
+ * @param jndiName
+ * @throws AdminException
+ */
+ void markDataSourceAvailable(String jndiName) throws AdminException;
}
Modified: branches/as7/admin/src/main/java/org/teiid/adminapi/AdminFactory.java
===================================================================
--- branches/as7/admin/src/main/java/org/teiid/adminapi/AdminFactory.java 2011-10-26
20:02:37 UTC (rev 3589)
+++ branches/as7/admin/src/main/java/org/teiid/adminapi/AdminFactory.java 2011-10-27
14:44:07 UTC (rev 3590)
@@ -191,41 +191,197 @@
}
}
- private void createConnectionFactoryRequest(String deploymentName, String templateName,
Properties properties, DefaultOperationRequestBuilder builder) throws AdminException {
- builder.addProperty("archive", templateName);
- builder.addProperty("transaction-support",
properties.getProperty("transaction-support", "NoTransaction"));
- properties.remove("transaction-support");
+ private void createConnectionFactory(String deploymentName, String templateName,
Properties properties) throws AdminException {
+ Set<String> resourceAdapters = getDeployedResourceAdapterNames();
+ if (!resourceAdapters.contains(templateName)) {
+ addResourceAdapter(templateName);
+ }
+
+ ///subsystem=resource-adapters/resource-adapter=teiid-connector-file.rar/connection-definitions=fooDS:add(class-name=org.teiid.resource.adapter.file.FileManagedConnectionFactory,
jndi-name=java\:\/fooDS, pool-name=foo-pool)
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+
+ try {
+ builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("resource-adapter", templateName); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.addNode("connection-definitions", deploymentName);
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.setOperationName("add");
+ builder.addProperty("jndi-name",
"java:/"+deploymentName);
+ builder.addProperty("pool-name", deploymentName);
+ request = builder.buildRequest();
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ throw new
AdminProcessingException(Util.getFailureDescription(outcome));
+ }
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+
+ // add all the config properties
+ Enumeration keys = properties.propertyNames();
+ while (keys.hasMoreElements()) {
+ String key = (String)keys.nextElement();
+ addConfigProperty(templateName, deploymentName, key,
properties.getProperty(key));
+ }
}
+ //
/subsystem=resource-adapters/resource-adapter=teiid-connector-file.rar/connection-definitions=fooDS/config-properties=ParentDirectory2:add(value=/home/rareddy/testing)
+ private void addConfigProperty(String templateName, String deploymentName, String key,
String value) throws AdminProcessingException {
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+ try {
+ builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("resource-adapter", templateName); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.addNode("connection-definitions", deploymentName);
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("config-properties", key); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.setOperationName("add");
+ builder.addProperty("value", value);
+ request = builder.buildRequest();
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ throw new
AdminProcessingException(Util.getFailureDescription(outcome));
+ }
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+ }
+
+ //
/subsystem=resource-adapters/resource-adapter=teiid-connector-ws.rar:add(archive=teiid-connector-ws.rar,
transaction-support=NoTransaction)
+ private void addResourceAdapter(String rarName) throws AdminProcessingException {
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+
+ try {
+ builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("resource-adapter", rarName); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.setOperationName("add");
+ request = builder.buildRequest();
+ request.get("archive").set(rarName);
+
request.get("transaction-support").set("NoTransaction");
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ throw new
AdminProcessingException(Util.getFailureDescription(outcome));
+ }
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+ }
+
+ class AbstractMetadatMapper implements MetadataMapper<String>{
+ @Override
+ public ModelNode wrap(String obj, ModelNode node) {
+ return null;
+ }
+ @Override
+ public String unwrap(ModelNode node) {
+ return null;
+ }
+ @Override
+ public ModelNode describe(ModelNode node) {
+ return null;
+ }
+ }
+
+ public List<String> getInstalledJDBCDrivers() throws AdminException {
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+
+ try {
+ builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.setOperationName("installed-drivers-list");
+ request = builder.buildRequest();
+
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ throw new
AdminProcessingException(Util.getFailureDescription(outcome));
+ }
+ List<String> drivers = getList(outcome, new AbstractMetadatMapper() {
+ @Override
+ public String unwrap(ModelNode node) {
+ if (node.hasDefined("driver-name")) {
+ return node.get("driver-name").asString();
+ }
+ return null;
+ }
+ });
+ return drivers;
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+ }
+
@Override
public void createDataSource(String deploymentName, String templateName, Properties
properties) throws AdminException {
+
+ Collection<String> dsNames = getDataSourceNames();
+ if (dsNames.contains(deploymentName) || (deploymentName.startsWith("java:/")
&& dsNames.contains(deploymentName.substring(6)))) {
+ throw new
AdminProcessingException(AdminPlugin.Util.getString("datasource_exists",
deploymentName));
+ }
+
+ Set<String> resourceAdapters = getAvailableResourceAdapterNames();
+ if (resourceAdapters.contains(templateName)) {
+ createConnectionFactory(deploymentName, templateName, properties);
+ return;
+ }
+
+ List<String> drivers = getInstalledJDBCDrivers();
+ if (!drivers.contains(templateName)) {
+ throw new
AdminProcessingException(AdminPlugin.Util.getString("driver_not_defined",
templateName));
+ }
+
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
final ModelNode request;
try {
- // data-source jdbc-driver xa-data-source resource-adapters
- if (templateName.equals("data-source")) {
- builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("data-source", deploymentName); //$NON-NLS-1$
- }
- else if (templateName.equals("xa-data-source")) {
- builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("xa-data-source", deploymentName); //$NON-NLS-1$
- }
- else if (templateName.equals("resource-adapters")) {
- builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("resource-adapter", deploymentName);
//$NON-NLS-1$
- createConnectionFactoryRequest(deploymentName, templateName, properties,
builder);
- }
+ builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("data-source", deploymentName); //$NON-NLS-1$
builder.setOperationName("add");
- request = builder.buildRequest();
- builder.addProperty("jndi-name",
"java:/"+deploymentName);
- Enumeration keys = properties.propertyNames();
- while (keys.hasMoreElements()) {
- String key = (String)keys.nextElement();
- builder.addProperty(key, properties.getProperty(key));
+ builder.addProperty("jndi-name",
deploymentName.startsWith("java:/")?deploymentName:"java:/"+deploymentName);
+ builder.addProperty("driver-name", templateName);
+
+ builder.addProperty("pool-name", deploymentName);
+ builder.addProperty("pool-prefill", "false");
+ builder.addProperty("max-pool-size", "20");
+ builder.addProperty("min-pool-size", "10");
+
+ if (properties != null) {
+ builder.addProperty("connection-url",
properties.getProperty("connection-url"));
+ if (properties.getProperty("user-name") != null) {
+ builder.addProperty("user-name",
properties.getProperty("user-name"));
+ }
+ if (properties.getProperty("password") != null) {
+ builder.addProperty("password",
properties.getProperty("password"));
+ }
+ if (properties.getProperty("check-valid-connection-sql") != null)
{
+ builder.addProperty("check-valid-connection-sql",
properties.getProperty("check-valid-connection-sql"));
+ }
}
+ else {
+ throw new
AdminProcessingException(AdminPlugin.Util.getString("connection_url_required"));
+ }
+
+ request = builder.buildRequest();
} catch (OperationFormatException e) {
throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
}
@@ -235,17 +391,62 @@
if (!Util.isSuccess(outcome)) {
throw new
AdminProcessingException(Util.getFailureDescription(outcome));
}
- } catch (Exception e) {
+ } catch (IOException e) {
throw new AdminProcessingException(e);
}
}
@Override
public void deleteDataSource(String deployedName) throws AdminException {
- // rameshTODO Auto-generated method stub
+ Collection<String> dsNames = getDataSourceNames();
+ if (!dsNames.contains(deployedName) || (deployedName.startsWith("java:/")
&& !dsNames.contains(deployedName.substring(6)))) {
+ throw new
AdminProcessingException(AdminPlugin.Util.getString("datasource_doesnot_exists",
deployedName));
+ }
+ boolean deleted = deleteDS(deployedName, false, "datasources",
"data-source");
+
+ // check xa connections
+ if (!deleted) {
+ deleted = deleteDS(deployedName, false, "datasources",
"xa-data-source");
+ }
+
+ // check connection factories
+ if (!deleted) {
+ Map<String, String> raDSMap = getResourceAdapterDataSources();
+ String rarName = raDSMap.get(deployedName);
+ if (rarName != null) {
+ deleted = deleteDS(rarName, true, "resource-adapters",
"resource-adapter", deployedName);
+ }
+ }
}
+ private boolean deleteDS(String deployedName, boolean connFactory, String... subsystem)
throws AdminProcessingException {
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+
+ try {
+ builder.addNode("subsystem", subsystem[0]); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.addNode(subsystem[1], deployedName);
+ if (connFactory) {
+ builder.addNode("connection-definitions", subsystem[2]);
+ }
+ builder.setOperationName("remove");
+ request = builder.buildRequest();
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ return false;
+ }
+ return true;
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+ }
+
@Override
public void undeploy(String deployedName) throws AdminException {
try {
@@ -418,35 +619,43 @@
datasourceNames.addAll(getChildNodeNames("datasources",
"data-source"));
datasourceNames.addAll(getChildNodeNames("datasources",
"xa-data-source"));
- Set<String> resourceAdapters = getResourceAdapterNames();
+ datasourceNames.addAll(getResourceAdapterDataSources().keySet());
+ return datasourceNames;
+ }
+
+ private Map<String, String> getResourceAdapterDataSources() throws AdminException
{
+ HashMap<String, String> datasourceNames = new HashMap<String, String>();
+ Set<String> resourceAdapters = getDeployedResourceAdapterNames();
for (String resource:resourceAdapters) {
-
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
- try {
- builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("resource-adapter", resource); //$NON-NLS-1$
//$NON-NLS-2$
- builder.setOperationName("read-resource");
- ModelNode request = builder.buildRequest();
-
- ModelNode outcome = this.connection.execute(request);
- if (Util.isSuccess(outcome)) {
- if (outcome.hasDefined("result")) {
- ModelNode result = outcome.get("result");
- if (result.hasDefined("connection-definitions")) {
- List<ModelNode> connDefs =
result.get("connection-definitions").asList();
- for (ModelNode conn:connDefs) {
- datasourceNames.add(conn.get("jndi-name").asString());
- }
- }
- }
- }
- } catch (OperationFormatException e) {
- throw new AdminProcessingException("Failed to build operation",
e); //$NON-NLS-1$
- } catch (IOException e) {
- throw new AdminProcessingException("Failed to build operation", e);
//$NON-NLS-1$
- }
+ try {
+ builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("resource-adapter", resource); //$NON-NLS-1$
//$NON-NLS-2$
+ builder.setOperationName("read-resource");
+ ModelNode request = builder.buildRequest();
+
+ ModelNode outcome = this.connection.execute(request);
+ if (Util.isSuccess(outcome)) {
+ if (outcome.hasDefined("result")) {
+ ModelNode result = outcome.get("result");
+ if (result.hasDefined("connection-definitions")) {
+ List<ModelNode> connDefs =
result.get("connection-definitions").asList();
+ for (ModelNode conn:connDefs) {
+ Iterator<String> it = conn.keys().iterator();
+ if (it.hasNext()) {
+ datasourceNames.put(it.next(), resource);
+ }
+ }
+ }
+ }
+ }
+ } catch (OperationFormatException e) {
+ throw new AdminProcessingException("Failed to build operation", e);
//$NON-NLS-1$
+ } catch (IOException e) {
+ throw new AdminProcessingException("Failed to build operation", e);
//$NON-NLS-1$
+ }
}
- return datasourceNames;
+ return datasourceNames;
}
/**
@@ -455,7 +664,7 @@
* @return
* @throws AdminException
*/
- private Set<String> getResourceAdapterNames() throws AdminException {
+ private Set<String> getDeployedResourceAdapterNames() throws AdminException {
Set<String> templates = new HashSet<String>();
final ModelNode request = buildRequest("resource-adapters",
"read-children-names", "child-type",
"resource-adapter");//$NON-NLS-1$
try {
@@ -469,14 +678,39 @@
}
return Collections.emptySet();
}
-
+ // :read-children-names(child-type=deployment)
+ private Set<String> getAvailableResourceAdapterNames() throws AdminException {
+ Set<String> templates = new HashSet<String>();
+ DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
+ final ModelNode request;
+ try {
+ builder.setOperationName("read-children-names");
+ builder.addProperty("child-type", "deployment");
+ request = builder.buildRequest();
+ } catch (OperationFormatException e) {
+ throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
+ }
+
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ List<String> deployments = Util.getList(outcome);
+ for (String deployment:deployments) {
+ if (deployment.endsWith(".rar")) {
+ templates.add(deployment);
+ }
+ }
+ } catch (IOException e) {
+ throw new AdminProcessingException(e);
+ }
+ return templates;
+ }
+
@Override
public Set<String> getDataSourceTemplateNames() throws AdminException {
Set<String> templates = new HashSet<String>();
- templates.add("data-source");
- templates.add("xa-data-source");
- templates.addAll(getResourceAdapterNames());
+ templates.addAll(getInstalledJDBCDrivers());
+ templates.addAll(getAvailableResourceAdapterNames());
return templates;
}
@@ -570,24 +804,27 @@
*/
@Override
public Collection<PropertyDefinition> getTemplatePropertyDefinitions(String
templateName) throws AdminException {
+
+ boolean connectionFactory = false;
+ Set<String> resourceAdapters = getAvailableResourceAdapterNames();
+ if (resourceAdapters.contains(templateName)) {
+ connectionFactory = true;
+ }
+
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
ModelNode request = null;
try {
- // data-source,xa-data-source,resource-adapters
- if (templateName.equals("data-source")) {
+ if (connectionFactory) {
+ builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
+ builder.addNode("resource-adapter", templateName); //$NON-NLS-1$
+ builder.addNode("connection-definitions", "any");
//$NON-NLS-1$
+ }
+ else {
builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
builder.addNode("data-source", "any"); //$NON-NLS-1$
- }
- else if (templateName.equals("xa-data-source")) {
- builder.addNode("subsystem", "datasources");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("xa-data-source", "any");
//$NON-NLS-1$
- }
- else {
- builder.addNode("subsystem", "resource-adapters");
//$NON-NLS-1$ //$NON-NLS-2$
- builder.addNode("resource-adapter", templateName); //$NON-NLS-1$
- }
+ }
- builder.setOperationName("read-resource-description");
+ builder.setOperationName("read-resource-description");
//$NON-NLS-1$
request = builder.buildRequest();
} catch (OperationFormatException e) {
throw new IllegalStateException("Failed to build operation", e);
//$NON-NLS-1$
@@ -772,29 +1009,6 @@
return Collections.emptyList();
}
- public List<String> getTransports() {
- DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
- final ModelNode request;
- try {
- builder.addNode("subsystem", "teiid"); //$NON-NLS-1$
//$NON-NLS-2$
- builder.setOperationName("read-children-names");
- builder.addProperty("child-type", "transport");
- request = builder.buildRequest();
- } catch (OperationFormatException e) {
- throw new IllegalStateException("Failed to build operation", e);
- }
-
- try {
- ModelNode outcome = this.connection.execute(request);
- if (Util.isSuccess(outcome)) {
- return Util.getList(outcome);
- }
- } catch (Exception e) {
- }
-
- return Collections.emptyList();
- }
-
private ModelNode buildRequest(String subsystem, String operationName, String...
params) {
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
final ModelNode request;
@@ -823,13 +1037,7 @@
List<T> list = new ArrayList<T>(nodeList.size());
for(ModelNode node : nodeList) {
- Set<String> keys = node.keys();
- if (!keys.isEmpty()) {
- list.addAll(getList(node.get(0), mapper));
- }
- else {
- list.add(mapper.unwrap(node));
- }
+ list.add(mapper.unwrap(node));
}
return list;
}
@@ -994,7 +1202,19 @@
} catch (Exception e) {
throw new AdminProcessingException(e);
}
- }
+ }
+
+ @Override
+ public void markDataSourceAvailable(String jndiName) throws AdminException {
+ final ModelNode request = buildRequest("teiid",
"mark-datasource-available","ds-name", jndiName);//$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$
+ try {
+ ModelNode outcome = this.connection.execute(request);
+ if (!Util.isSuccess(outcome)) {
+ throw new AdminProcessingException(Util.getFailureDescription(outcome));
+ }
+ } catch (Exception e) {
+ throw new AdminProcessingException(e);
+ }
+ }
}
-
}
Modified: branches/as7/admin/src/main/resources/org/teiid/adminapi/i18n.properties
===================================================================
--- branches/as7/admin/src/main/resources/org/teiid/adminapi/i18n.properties 2011-10-26
20:02:37 UTC (rev 3589)
+++ branches/as7/admin/src/main/resources/org/teiid/adminapi/i18n.properties 2011-10-27
14:44:07 UTC (rev 3590)
@@ -69,4 +69,9 @@
allow-update.describe = update allowed
allow-delete.describe = delete allowed
allow-execute.describe = execute allowed
-allow-alter.describe = alter allowed
\ No newline at end of file
+allow-alter.describe = alter allowed
+
+driver_not_defined=Driver {0} is not configured in the system, install the JDBC driver
first
+connection_url_required=connection-url is required property
+datasource_exists=Data source with name {0} already exists; choose a different deployment
name
+datasource_doesnot_exists=Data Source with name {0} does not exists in the system. Check
the deployment name.
\ No newline at end of file
Modified: branches/as7/build/kits/jboss-as7/standalone/configuration/standalone-teiid.xml
===================================================================
---
branches/as7/build/kits/jboss-as7/standalone/configuration/standalone-teiid.xml 2011-10-26
20:02:37 UTC (rev 3589)
+++
branches/as7/build/kits/jboss-as7/standalone/configuration/standalone-teiid.xml 2011-10-27
14:44:07 UTC (rev 3590)
@@ -20,7 +20,7 @@
~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-->
-<server xmlns="urn:jboss:domain:1.0">
+<server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
@@ -28,21 +28,24 @@
<extension module="org.jboss.as.deployment-scanner"/>
<extension module="org.jboss.as.ee"/>
<extension module="org.jboss.as.ejb3"/>
+ <extension module="org.jboss.as.jacorb"/>
<extension module="org.jboss.as.jaxrs"/>
<extension module="org.jboss.as.jmx"/>
<extension module="org.jboss.as.jpa"/>
<extension module="org.jboss.as.logging"/>
+ <extension module="org.jboss.as.mail"/>
+ <extension module="org.jboss.as.messaging"/>
<extension module="org.jboss.as.naming"/>
<extension module="org.jboss.as.osgi"/>
- <extension module="org.jboss.as.pojo"/>
<extension module="org.jboss.as.remoting"/>
<extension module="org.jboss.as.sar"/>
<extension module="org.jboss.as.security"/>
<extension module="org.jboss.teiid"/>
<extension module="org.jboss.as.threads"/>
<extension module="org.jboss.as.transactions"/>
- <extension module="org.jboss.as.web" />
- <extension module="org.jboss.as.weld" />
+ <extension module="org.jboss.as.web"/>
+ <extension module="org.jboss.as.webservices"/>
+ <extension module="org.jboss.as.weld"/>
</extensions>
<management>
@@ -86,6 +89,13 @@
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
+ <logger category="jacorb">
+ <level name="WARN"/>
+ </logger>
+ <!-- set jacorb.config to ERROR to avoid the "jacorb.properties not
found" messages during startup -->
+ <logger category="jacorb.config">
+ <level name="ERROR"/>
+ </logger>
<root-logger>
<level name="INFO"/>
@@ -97,7 +107,8 @@
</subsystem>
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
- <datasource jndi-name="java:jboss/datasources/ExampleDS"
enabled="true" use-java-context="true" pool-name="H2DS">
+ <datasource jndi-name="java:jboss/datasources/ExampleDS"
enabled="true" use-java-context="true"
+ pool-name="H2DS">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<pool></pool>
@@ -148,25 +159,47 @@
</datasources>
</subsystem>
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0">
- <deployment-scanner scan-interval="5000"
relative-to="jboss.server.base.dir" path="deployments" />
+ <deployment-scanner scan-interval="5000"
relative-to="jboss.server.base.dir" path="deployments"/>
</subsystem>
<subsystem xmlns="urn:jboss:domain:ee:1.0" />
- <subsystem xmlns="urn:jboss:domain:ejb3:1.1"
lite="true">
+ <subsystem xmlns="urn:jboss:domain:ejb3:1.2" >
+
+ <remote connector-ref="remoting-connector"
thread-pool-name="default" />
+ <async thread-pool-name="default" />
+
+ <timer-service thread-pool-name="default" >
+ <data-store path="timer-service-data"
relative-to="jboss.server.data.dir"/>
+ </timer-service>
+
<!-- EJB3 pools -->
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool"
max-pool-size="20" instance-acquisition-timeout="5"
instance-acquisition-timeout-unit="MINUTES"/>
+
+ <strict-max-pool name="mdb-strict-max-pool"
max-pool-size="20" instance-acquisition-timeout="5"
+
instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
+ <!-- Default MDB configurations -->
+ <mdb>
+ <resource-adapter-ref
resource-adapter-name="hornetq-ra"/>
+ <bean-instance-pool-ref
pool-name="mdb-strict-max-pool"/>
+ </mdb>
+
<!-- Session bean configurations -->
<session-bean>
<stateless>
<bean-instance-pool-ref
pool-name="slsb-strict-max-pool"/>
</stateless>
+ <stateful default-access-timeout="5000"/>
+ <singleton default-access-timeout="5000"/>
</session-bean>
+ <thread-pools>
+ <thread-pool name="default" max-threads="10"
keepalive-time="100" />
+ </thread-pools>
</subsystem>
<subsystem xmlns="urn:jboss:domain:infinispan:1.0"
default-cache-container="hibernate">
<cache-container name="hibernate"
default-cache="local-query">
@@ -189,96 +222,174 @@
</local-cache>
</cache-container>
</subsystem>
+ <subsystem xmlns="urn:jboss:domain:jacorb:1.0">
+ <orb name="JBoss" print-version="off"
giop-minor-version="2">
+ <connection max-managed-buf-size="24"
outbuf-cache-timeout="-1"/>
+ <naming root-context="JBoss/Naming/root"
export-corbaloc="on"/>
+ </orb>
+ <poa monitoring="off" queue-wait="off">
+ <request-processors pool-size="2"
max-threads="8"/>
+ </poa>
+ <interop sun="on" chunk-custom-rmi-valuetypes="on"
strict-check-on-tc-creation="off"/>
+ </subsystem>
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
<subsystem xmlns="urn:jboss:domain:jca:1.0">
- <archive-validation enabled="false" />
- <bean-validation enabled="false" />
+ <archive-validation enabled="false"/>
+ <bean-validation enabled="false"/>
<default-workmanager>
<short-running-threads blocking="true">
- <core-threads count="10"
per-cpu="20"/>
- <queue-length count="10"
per-cpu="20"/>
- <max-threads count="10" per-cpu="20"/>
- <keepalive-time time="10"
unit="seconds"/>
+ <core-threads count="10" per-cpu="20"/>
+ <queue-length count="10" per-cpu="20"/>
+ <max-threads count="10" per-cpu="20"/>
+ <keepalive-time time="10" unit="seconds"/>
</short-running-threads>
<long-running-threads blocking="true">
- <core-threads count="10"
per-cpu="20"/>
- <queue-length count="10"
per-cpu="20"/>
- <max-threads count="10" per-cpu="20"/>
- <keepalive-time time="10"
unit="seconds"/>
+ <core-threads count="10" per-cpu="20"/>
+ <queue-length count="10" per-cpu="20"/>
+ <max-threads count="10" per-cpu="20"/>
+ <keepalive-time time="10" unit="seconds"/>
</long-running-threads>
</default-workmanager>
</subsystem>
- <subsystem xmlns="urn:jboss:domain:jmx:1.0">
+ <subsystem xmlns="urn:jboss:domain:jmx:1.1"
show-model="true">
<jmx-connector registry-binding="jmx-connector-registry"
server-binding="jmx-connector-server" />
</subsystem>
<subsystem xmlns="urn:jboss:domain:jpa:1.0">
<jpa default-datasource=""/>
</subsystem>
- <subsystem xmlns="urn:jboss:domain:naming:1.0" />
- <subsystem xmlns="urn:jboss:domain:pojo:1.0" />
- <subsystem xmlns="urn:jboss:domain:osgi:1.0"
activation="lazy">
+ <subsystem xmlns="urn:jboss:domain:mail:1.0">
+ <mail-session jndi-name="java:jboss/mail/Default">
+ <smtp-server address="localhost" port="25"/>
+ </mail-session>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:messaging:1.1">
+ <hornetq-server>
+ <!-- Default journal file size is 10Mb, reduced here to 100k for
faster first boot -->
+ <journal-file-size>102400</journal-file-size>
+ <journal-min-files>2</journal-min-files>
+ <journal-type>NIO</journal-type>
+ <!-- disable messaging persistence -->
+ <persistence-enabled>false</persistence-enabled>
+
+ <connectors>
+ <netty-connector name="netty"
socket-binding="messaging"/>
+ <netty-connector name="netty-throughput"
socket-binding="messaging-throughput">
+ <param key="batch-delay" value="50"/>
+ </netty-connector>
+ <in-vm-connector name="in-vm"
server-id="0"/>
+ </connectors>
+
+ <acceptors>
+ <netty-acceptor name="netty"
socket-binding="messaging"/>
+ <netty-acceptor name="netty-throughput"
socket-binding="messaging-throughput">
+ <param key="batch-delay" value="50"/>
+ <param key="direct-deliver"
value="false"/>
+ </netty-acceptor>
+ <in-vm-acceptor name="in-vm"
server-id="0"/>
+ </acceptors>
+
+ <security-settings>
+ <security-setting match="#">
+ <permission type="createNonDurableQueue"
roles="guest"/>
+ <permission type="deleteNonDurableQueue"
roles="guest"/>
+ <permission type="consume"
roles="guest"/>
+ <permission type="send"
roles="guest"/>
+ </security-setting>
+ </security-settings>
+
+ <address-settings>
+ <!--default for catch all-->
+ <address-setting match="#">
+
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
+
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
+ <redelivery-delay>0</redelivery-delay>
+ <max-size-bytes>10485760</max-size-bytes>
+
<message-counter-history-day-limit>10</message-counter-history-day-limit>
+ <address-full-policy>BLOCK</address-full-policy>
+ </address-setting>
+ </address-settings>
+
+ <!--JMS Stuff-->
+ <jms-connection-factories>
+ <connection-factory name="InVmConnectionFactory">
+ <connectors>
+ <connector-ref connector-name="in-vm"/>
+ </connectors>
+ <entries>
+ <entry name="java:/ConnectionFactory"/>
+ </entries>
+ </connection-factory>
+ <connection-factory name="RemoteConnectionFactory">
+ <connectors>
+ <connector-ref connector-name="netty"/>
+ </connectors>
+ <entries>
+ <entry name="RemoteConnectionFactory"/>
+ </entries>
+ </connection-factory>
+ <pooled-connection-factory name="hornetq-ra">
+ <transaction mode="xa"/>
+ <connectors>
+ <connector-ref connector-name="in-vm"/>
+ </connectors>
+ <entries>
+ <entry name="java:/JmsXA"/>
+ </entries>
+ </pooled-connection-factory>
+ </jms-connection-factories>
+
+ <jms-destinations>
+ <jms-queue name="testQueue">
+ <entry name="queue/test"/>
+ </jms-queue>
+ <jms-topic name="testTopic">
+ <entry name="topic/test"/>
+ </jms-topic>
+ </jms-destinations>
+ </hornetq-server>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:naming:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:osgi:1.1"
activation="lazy">
<configuration
pid="org.apache.felix.webconsole.internal.servlet.OsgiManager">
- <property
name="manager.root">jboss-osgi</property>
+ <property name="manager.root"
value="jboss-osgi"/>
</configuration>
<properties>
- <!--
- A comma seperated list of module identifiers. Each system module
- is added as a dependency to the OSGi framework module. The packages
- from these system modules can be made visible as framework system
packages.
-
http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Constants.html#FRAME...
- -->
- <property name="org.jboss.osgi.system.modules">
- org.apache.commons.logging,
- org.apache.log4j,
- org.jboss.as.osgi,
- org.slf4j,
- </property>
- <!--
- Framework environment property identifying extra packages which the
system bundle
- must export from the current execution environment
- -->
- <property
name="org.osgi.framework.system.packages.extra">
- org.apache.commons.logging;version=1.1.1,
- org.apache.log4j;version=1.2,
- org.jboss.as.osgi.service;version=7.0,
- org.jboss.osgi.deployment.interceptor;version=1.0,
- org.jboss.osgi.spi.capability;version=1.0,
- org.jboss.osgi.spi.util;version=1.0,
- org.jboss.osgi.testing;version=1.0,
- org.jboss.osgi.vfs;version=1.0,
- org.slf4j;version=1.5.10,
- </property>
<!-- Specifies the beginning start level of the framework -->
<property
name="org.osgi.framework.startlevel.beginning">1</property>
</properties>
- <modules>
+ <capabilities>
<!-- modules registered with the OSGi layer on startup -->
- <module identifier="javaee.api"/>
- <module identifier="org.jboss.logging"/>
+ <capability name="javax.api"/>
+ <capability name="javax.servlet.api"/>
+ <capability name="javax.transaction.api"/>
<!-- bundles installed on startup -->
- <module identifier="org.apache.aries.util"/>
- <module identifier="org.jboss.osgi.webconsole"/>
- <module identifier="org.osgi.compendium"/>
+ <capability name="org.apache.aries.util"/>
+ <capability name="org.jboss.osgi.webconsole"/>
+ <capability name="org.osgi.compendium"/>
<!-- bundles started in startlevel 1 -->
- <module identifier="org.apache.felix.log"
startlevel="1"/>
- <module identifier="org.jboss.osgi.logging"
startlevel="1"/>
- <module identifier="org.apache.felix.configadmin"
startlevel="1"/>
- <module identifier="org.jboss.as.osgi.configadmin"
startlevel="1"/>
+ <capability name="org.apache.felix.log"
startlevel="1"/>
+ <capability name="org.jboss.osgi.logging"
startlevel="1"/>
+ <capability name="org.apache.felix.configadmin"
startlevel="1"/>
+ <capability name="org.jboss.as.osgi.configadmin"
startlevel="1"/>
<!-- bundles started in startlevel 2 -->
- <module identifier="org.apache.aries.jmx"
startlevel="2"/>
- <module identifier="org.apache.felix.eventadmin"
startlevel="2"/>
- <module identifier="org.apache.felix.metatype"
startlevel="2"/>
- <module identifier="org.apache.felix.scr"
startlevel="2"/>
- <module identifier="org.apache.felix.webconsole"
startlevel="2"/>
- <module identifier="org.jboss.osgi.jmx"
startlevel="2"/>
- <module identifier="org.jboss.osgi.http"
startlevel="2"/>
+ <capability name="org.apache.aries.jmx"
startlevel="2"/>
+ <capability name="org.apache.felix.eventadmin"
startlevel="2"/>
+ <capability name="org.apache.felix.metatype"
startlevel="2"/>
+ <capability name="org.apache.felix.scr"
startlevel="2"/>
+ <capability name="org.apache.felix.webconsole"
startlevel="2"/>
+ <capability name="org.jboss.netty"
startlevel="2"/>
+ <capability name="org.jboss.osgi.jmx"
startlevel="2"/>
+ <capability name="org.jboss.osgi.http"
startlevel="2"/>
+ <capability name="org.projectodd.stilts"
startlevel="2"/>
<!-- bundles started in startlevel 3 -->
- <module identifier="org.jboss.osgi.blueprint"
startlevel="3"/>
- <module identifier="org.jboss.osgi.webapp"
startlevel="3"/>
- <module identifier="org.jboss.osgi.xerces"
startlevel="3"/>
- </modules>
+ <capability name="org.jboss.osgi.blueprint"
startlevel="3"/>
+ <capability name="org.jboss.osgi.webapp"
startlevel="3"/>
+ <capability name="org.jboss.osgi.xerces"
startlevel="3"/>
+ </capabilities>
</subsystem>
- <subsystem xmlns="urn:jboss:domain:remoting:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:remoting:1.0">
+ <connector name="remoting-connector"
socket-binding="remoting"/>
+ </subsystem>
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">
<resource-adapters>
<resource-adapter>
@@ -302,9 +413,19 @@
<security-domains>
<security-domain name="other"
cache-type="default">
<authentication>
- <login-module code="Disabled"
flag="required"/>
+ <login-module code="UsersRoles"
flag="required"/>
</authentication>
</security-domain>
+ <security-domain name="jboss-web-policy"
cache-type="default">
+ <authorization>
+ <policy-module code="Delegating"
flag="required"/>
+ </authorization>
+ </security-domain>
+ <security-domain name="jboss-ejb-policy"
cache-type="default">
+ <authorization>
+ <policy-module code="Delegating"
flag="required"/>
+ </authorization>
+ </security-domain>
<security-domain name="teiid-security"
cache-type="default">
<authentication>
<login-module code="UsersRoles"
flag="required">
@@ -365,7 +486,7 @@
<recovery-environment socket-binding="txn-recovery-environment"
status-socket-binding="txn-status-manager"/>
<core-environment>
<process-id>
- <uuid />
+ <uuid/>
</process-id>
</core-environment>
<coordinator-environment default-timeout="300"/>
@@ -373,11 +494,35 @@
<subsystem xmlns="urn:jboss:domain:web:1.0"
default-virtual-server="default-host">
<connector name="http" scheme="http"
protocol="HTTP/1.1" socket-binding="http"/>
<virtual-server name="default-host"
enable-welcome-root="true">
- <alias name="localhost" />
- <alias name="example.com" />
+ <alias name="localhost"/>
+ <alias name="example.com"/>
</virtual-server>
</subsystem>
- <subsystem xmlns="urn:jboss:domain:weld:1.0" />
+ <subsystem xmlns="urn:jboss:domain:webservices:1.0">
+ <modify-wsdl-address>true</modify-wsdl-address>
+ <wsdl-host>localhost</wsdl-host>
+ <!--
+ <wsdl-port>8080</wsdl-port>
+ <wsdl-secure-port>8443</wsdl-secure-port>
+ -->
+ <endpoint-config
xmlns:ws="urn:jboss:jbossws-jaxws-config:4.0">
+ <ws:config-name>Standard-Endpoint-Config</ws:config-name>
+ </endpoint-config>
+ <endpoint-config
xmlns:ws="urn:jboss:jbossws-jaxws-config:4.0">
+ <ws:config-name>Recording-Endpoint-Config</ws:config-name>
+ <ws:pre-handler-chains>
+ <handler-chain
xmlns="http://java.sun.com/xml/ns/javaee">
+ <protocol-bindings>##SOAP11_HTTP ##SOAP11_HTTP_MTOM
##SOAP12_HTTP ##SOAP12_HTTP_MTOM
+ </protocol-bindings>
+ <handler>
+ <handler-name>RecordingHandler</handler-name>
+
<handler-class>org.jboss.ws.common.invocation.RecordingServerHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </ws:pre-handler-chains>
+ </endpoint-config>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:weld:1.0"/>
</profile>
<interfaces>
@@ -385,16 +530,20 @@
<inet-address
value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
- <inet-address
value="${jboss.bind.address.public:127.0.0.1}"/>
+ <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets"
default-interface="public">
<socket-binding name="http" port="8080"/>
<socket-binding name="https" port="8443"/>
+ <socket-binding name="jacorb" port="3528"/>
+ <socket-binding name="jacorb-ssl" port="3529"/>
<socket-binding name="jmx-connector-registry"
interface="management" port="1090"/>
<socket-binding name="jmx-connector-server"
interface="management" port="1091"/>
<socket-binding name="jndi" port="1099"/>
+ <socket-binding name="messaging" port="5445"/>
+ <socket-binding name="messaging-throughput"
port="5455"/>
<socket-binding name="osgi-http" interface="management"
port="8090"/>
<socket-binding name="remoting" port="4447"/>
<socket-binding name="txn-recovery-environment"
port="4712"/>
Modified:
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidExtension.java
===================================================================
---
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidExtension.java 2011-10-26
20:02:37 UTC (rev 3589)
+++
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidExtension.java 2011-10-27
14:44:07 UTC (rev 3590)
@@ -139,6 +139,7 @@
new ListTransactions().register(teiidSubsystem);
new TerminateTransaction().register(teiidSubsystem);
new ExecuteQuery().register(teiidSubsystem);
+ new MarkDataSourceAvailable().register(teiidSubsystem);
}
@Override
Modified:
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidOperationHandler.java
===================================================================
---
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidOperationHandler.java 2011-10-26
20:02:37 UTC (rev 3589)
+++
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/TeiidOperationHandler.java 2011-10-27
14:44:07 UTC (rev 3590)
@@ -64,6 +64,7 @@
import org.teiid.client.util.ResultsFuture;
import org.teiid.core.TeiidComponentException;
import org.teiid.deployers.VDBRepository;
+import org.teiid.deployers.VDBStatusChecker;
import org.teiid.dqp.internal.datamgr.TranslatorRepository;
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
@@ -449,6 +450,29 @@
}
}
+class MarkDataSourceAvailable extends TeiidOperationHandler{
+ protected MarkDataSourceAvailable() {
+ super("mark-datasource-available"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void executeOperation(OperationContext context, DQPCore engine, ModelNode
operation) throws OperationFailedException {
+ if (!operation.hasDefined(OperationsConstants.DS_NAME)) {
+ throw new OperationFailedException(new
ModelNode().set(IntegrationPlugin.Util.getString(OperationsConstants.DS_NAME+MISSING)));
+ }
+ String dsName = operation.get(OperationsConstants.DS_NAME).asString();
+ ServiceController<?> sc =
context.getServiceRegistry(false).getRequiredService(TeiidServiceNames.VDB_STATUS_CHECKER);
+ VDBStatusChecker vsc = VDBStatusChecker.class.cast(sc.getValue());
+ vsc.dataSourceAdded(dsName);
+ }
+
+ protected void describeParameters(ModelNode operationNode, ResourceBundle bundle) {
+ operationNode.get(REQUEST_PROPERTIES, OperationsConstants.DS_NAME,
TYPE).set(ModelType.STRING);
+ operationNode.get(REQUEST_PROPERTIES, OperationsConstants.DS_NAME,
REQUIRED).set(true);
+ operationNode.get(REQUEST_PROPERTIES, OperationsConstants.DS_NAME,
DESCRIPTION).set(getParameterDescription(bundle, OperationsConstants.DS_NAME));
+ }
+}
+
class WorkerPoolStatistics extends TeiidOperationHandler{
protected WorkerPoolStatistics() {
Modified: branches/as7/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
===================================================================
---
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2011-10-26
20:02:37 UTC (rev 3589)
+++
branches/as7/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2011-10-27
14:44:07 UTC (rev 3590)
@@ -203,10 +203,8 @@
String dsName = model.getSourceConnectionJndiName(sourceName);
ServiceName svcName = ServiceName.JBOSS.append("data-source",
getJndiName(dsName)); //$NON-NLS-1$
if (!jdbcSource) {
- // TODO: add service dependency on connection-factory (this is pending in AS7)
- svcName = ServiceName.JBOSS.append("resource-adaptor",
getJndiName(dsName)); //$NON-NLS-1$
+ svcName = ServiceName.JBOSS.append("connector",
"connection-factory", getJndiName(dsName)); //$NON-NLS-1$ //$NON-NLS-2$
}
-
svcListener.serviceFound(dsName, svcName);
}
}
Modified: branches/as7/pom.xml
===================================================================
--- branches/as7/pom.xml 2011-10-26 20:02:37 UTC (rev 3589)
+++ branches/as7/pom.xml 2011-10-27 14:44:07 UTC (rev 3590)
@@ -450,8 +450,13 @@
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.0.0.GA</version>
- </dependency>
+ </dependency>
<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-generator</artifactId>
+ <version>1.0.0.CR1</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-clustering-jgroups</artifactId>
<version>${jbossas-version}</version>
Modified: branches/as7/runtime/pom.xml
===================================================================
--- branches/as7/runtime/pom.xml 2011-10-26 20:02:37 UTC (rev 3589)
+++ branches/as7/runtime/pom.xml 2011-10-27 14:44:07 UTC (rev 3590)
@@ -76,6 +76,11 @@
<artifactId>jboss-as-security</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-generator</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!--
<dependency>