Author: rareddy
Date: 2012-05-09 23:02:40 -0400 (Wed, 09 May 2012)
New Revision: 4087
Modified:
trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties
Log:
TEIID-2021: Removing the hard depolyment time requirement to have translators deployed
prior to VDB deployed. In this situation, the system will log a error message to console
and as well as VDB errors area. The VDB will be deployed but the VDB service will not be
started until the translator is available
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2012-05-09
18:57:43 UTC (rev 4086)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2012-05-10
03:02:40 UTC (rev 4087)
@@ -51,6 +51,7 @@
import org.teiid.adminapi.Model;
import org.teiid.adminapi.Translator;
import org.teiid.adminapi.impl.ModelMetaData;
+import org.teiid.adminapi.impl.ModelMetaData.ValidationError;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.adminapi.impl.VDBTranslatorMetaData;
import org.teiid.common.buffer.BufferManager;
@@ -86,7 +87,6 @@
if (!TeiidAttachments.isVDBDeployment(deploymentUnit)) {
return;
}
- final String deploymentName = deploymentUnit.getName();
final VDBMetaData deployment =
deploymentUnit.getAttachment(TeiidAttachments.VDB_METADATA);
// check to see if there is old vdb already deployed.
@@ -103,27 +103,24 @@
throw new
DeploymentUnitProcessingException(IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50074,
deployment));
}
}
-
- // add required connector managers; if they are not already there
- for (Translator t: deployment.getOverrideTranslators()) {
- VDBTranslatorMetaData data = (VDBTranslatorMetaData)t;
-
- String type = data.getType();
- Translator parent = this.translatorRepository.getTranslatorMetaData(type);
- if ( parent == null) {
- throw new
DeploymentUnitProcessingException(IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50077,
type, deploymentName));
- }
- }
- // make sure the translator defined exists in configuration.
+ // make sure the translator defined exists in configuration; otherwise add as error
for (ModelMetaData model:deployment.getModelMetaDatas().values()) {
if (model.isSource() && !model.getSourceNames().isEmpty()) {
for (String source:model.getSourceNames()) {
+
String translatorName = model.getSourceTranslatorName(source);
- Translator parent =
this.translatorRepository.getTranslatorMetaData(translatorName);
- if ( parent == null) {
- throw new
DeploymentUnitProcessingException(IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50077,
translatorName, deploymentName));
- }
+ if (deployment.isOverideTranslator(translatorName)) {
+ VDBTranslatorMetaData parent = deployment.getTranslator(translatorName);
+ translatorName = parent.getType();
+ }
+
+ Translator translator =
this.translatorRepository.getTranslatorMetaData(translatorName);
+ if ( translator == null) {
+ String msg = IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50077,
translatorName, deployment.getName(), deployment.getVersion());
+ model.addError(ValidationError.Severity.ERROR.name(), msg);
+ LogManager.logInfo(LogConstants.CTX_RUNTIME, msg);
+ }
}
}
}
@@ -178,19 +175,14 @@
List<String> sourceNames = model.getSourceNames();
for (String sourceName:sourceNames) {
String translatorName = model.getSourceTranslatorName(sourceName);
- if (!deployment.isOverideTranslator(translatorName)) {
- vdbService.addDependency(TeiidServiceNames.translatorServiceName(translatorName));
+ if (deployment.isOverideTranslator(translatorName)) {
+ VDBTranslatorMetaData translator = deployment.getTranslator(translatorName);
+ translatorName = translator.getType();
}
+ vdbService.addDependency(TeiidServiceNames.translatorServiceName(translatorName));
}
}
- //override translators (if any)
- for (Translator t: deployment.getOverrideTranslators()) {
- VDBTranslatorMetaData data = (VDBTranslatorMetaData)t;
- String type = data.getType();
- vdbService.addDependency(TeiidServiceNames.translatorServiceName(type));
- }
-
vdbService.addDependency(TeiidServiceNames.VDB_REPO, VDBRepository.class,
vdb.vdbRepositoryInjector);
vdbService.addDependency(TeiidServiceNames.TRANSLATOR_REPO, TranslatorRepository.class,
vdb.translatorRepositoryInjector);
vdbService.addDependency(TeiidServiceNames.executorServiceName(this.asyncThreadPoolName),
Executor.class, vdb.executorInjector);
Modified: trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties
===================================================================
--- trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties 2012-05-09
18:57:43 UTC (rev 4086)
+++ trunk/jboss-integration/src/main/resources/org/teiid/jboss/i18n.properties 2012-05-10
03:02:40 UTC (rev 4087)
@@ -78,7 +78,7 @@
TEIID50074=VDB has validity errors; failed to deploy - {0}
TEIID50075=No "path" information found to load the FUNCTION model {0}; FUNCTION
model must have path information.
TEIID50076=For {0}.{1} VDB, recursive delegation {2} found.
-TEIID50077=The parent translator type "{0}" was not found in configuration
"{1}"
+TEIID50077=The translator type "{0}" was not found in configuration; VDB
{1}.{2} will not be started until translator is available.
wrong_vdb= Wrong VDB name and/or version supplied, or VDB is not active, or not
available.
# subsystem description