[teiid-commits] teiid SVN: r4174 - trunk/jboss-integration/src/main/java/org/teiid/jboss.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Jun 11 17:04:27 EDT 2012
Author: rareddy
Date: 2012-06-11 17:04:27 -0400 (Mon, 11 Jun 2012)
New Revision: 4174
Modified:
trunk/jboss-integration/src/main/java/org/teiid/jboss/JBossLifeCycleListener.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/TeiidAdd.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
Log:
TEIID-1911: added to listen on the server_controller service transition from up to stop to capture the shutdown
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/JBossLifeCycleListener.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/JBossLifeCycleListener.java 2012-06-11 20:21:55 UTC (rev 4173)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/JBossLifeCycleListener.java 2012-06-11 21:04:27 UTC (rev 4174)
@@ -25,10 +25,12 @@
import java.util.Collections;
import java.util.List;
+import org.jboss.msc.service.AbstractServiceListener;
import org.jboss.msc.service.ServiceContainer.TerminateListener;
+import org.jboss.msc.service.ServiceController;
import org.teiid.deployers.ContainerLifeCycleListener;
-class JBossLifeCycleListener implements TerminateListener, ContainerLifeCycleListener {
+class JBossLifeCycleListener extends AbstractServiceListener<Object> implements TerminateListener, ContainerLifeCycleListener {
private boolean shutdownInProgress = false;
private List<ContainerLifeCycleListener.LifeCycleEventListener> listeners = Collections.synchronizedList(new ArrayList<ContainerLifeCycleListener.LifeCycleEventListener>());
@@ -49,4 +51,15 @@
public void addListener(LifeCycleEventListener listener) {
listeners.add(listener);
}
+
+ @Override
+ public void transition(final ServiceController controller, final ServiceController.Transition transition) {
+ if (transition.equals(ServiceController.Transition.UP_to_STOP_REQUESTED)) {
+ this.shutdownInProgress = true;
+ }
+ else if (transition.equals(ServiceController.Transition.STOP_REQUESTED_to_UP)) {
+ this.shutdownInProgress = false;
+ }
+
+ }
}
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/TeiidAdd.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/TeiidAdd.java 2012-06-11 20:21:55 UTC (rev 4173)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/TeiidAdd.java 2012-06-11 21:04:27 UTC (rev 4174)
@@ -50,6 +50,7 @@
import org.jboss.as.naming.service.BinderService;
import org.jboss.as.server.AbstractDeploymentChainStep;
import org.jboss.as.server.DeploymentProcessorTarget;
+import org.jboss.as.server.Services;
import org.jboss.as.server.deployment.Phase;
import org.jboss.dmr.ModelNode;
import org.jboss.modules.Module;
@@ -377,6 +378,7 @@
newControllers.add(controller);
ServiceContainer container = controller.getServiceContainer();
container.addTerminateListener(shutdownListener);
+ container.getService(Services.JBOSS_SERVER_CONTROLLER).addListener(shutdownListener);
// add JNDI for event distributor
final ReferenceFactoryService<EventDistributorFactory> referenceFactoryService = new ReferenceFactoryService<EventDistributorFactory>();
@@ -407,7 +409,7 @@
processorTarget.addDeploymentProcessor(Phase.STRUCTURE, Phase.STRUCTURE_WAR_DEPLOYMENT_INIT|0x0001,new VDBStructureDeployer());
processorTarget.addDeploymentProcessor(Phase.PARSE, Phase.PARSE_WEB_DEPLOYMENT|0x0001, new VDBParserDeployer());
processorTarget.addDeploymentProcessor(Phase.DEPENDENCIES, Phase.DEPENDENCIES_WAR_MODULE|0x0001, new VDBDependencyDeployer());
- processorTarget.addDeploymentProcessor(Phase.INSTALL, Phase.INSTALL_WAR_DEPLOYMENT|0x1000, new VDBDeployer(translatorRepo, asyncThreadPoolName, statusChecker));
+ processorTarget.addDeploymentProcessor(Phase.INSTALL, Phase.INSTALL_WAR_DEPLOYMENT|0x1000, new VDBDeployer(translatorRepo, asyncThreadPoolName, statusChecker, shutdownListener));
// translator deployers
processorTarget.addDeploymentProcessor(Phase.STRUCTURE, Phase.STRUCTURE_JDBC_DRIVER|0x0001,new TranslatorStructureDeployer());
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2012-06-11 20:21:55 UTC (rev 4173)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java 2012-06-11 21:04:27 UTC (rev 4174)
@@ -37,24 +37,23 @@
import org.jboss.modules.ModuleIdentifier;
import org.jboss.modules.ModuleLoadException;
import org.jboss.modules.ModuleLoader;
-import org.jboss.msc.service.AbstractServiceListener;
import org.jboss.msc.service.Service;
import org.jboss.msc.service.ServiceBuilder;
+import org.jboss.msc.service.ServiceBuilder.DependencyType;
import org.jboss.msc.service.ServiceController;
+import org.jboss.msc.service.ServiceController.Mode;
+import org.jboss.msc.service.ServiceController.State;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.StartContext;
import org.jboss.msc.service.StartException;
import org.jboss.msc.service.StopContext;
-import org.jboss.msc.service.ServiceBuilder.DependencyType;
-import org.jboss.msc.service.ServiceController.Mode;
-import org.jboss.msc.service.ServiceController.State;
import org.teiid.adminapi.Model;
import org.teiid.adminapi.Translator;
import org.teiid.adminapi.VDBImport;
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.adminapi.impl.ModelMetaData.ValidationError;
import org.teiid.common.buffer.BufferManager;
import org.teiid.deployers.UDFMetaData;
import org.teiid.deployers.VDBRepository;
@@ -77,11 +76,13 @@
private TranslatorRepository translatorRepository;
private String asyncThreadPoolName;
private VDBStatusChecker vdbStatusChecker;
+ JBossLifeCycleListener shutdownListener;
- public VDBDeployer (TranslatorRepository translatorRepo, String poolName, VDBStatusChecker vdbStatusChecker) {
+ public VDBDeployer (TranslatorRepository translatorRepo, String poolName, VDBStatusChecker vdbStatusChecker, JBossLifeCycleListener shutdownListener) {
this.translatorRepository = translatorRepo;
this.asyncThreadPoolName = poolName;
this.vdbStatusChecker = vdbStatusChecker;
+ this.shutdownListener = shutdownListener;
}
public void deploy(final DeploymentPhaseContext context) throws DeploymentUnitProcessingException {
@@ -196,21 +197,6 @@
vdbService.addDependency(TeiidServiceNames.BUFFER_MGR, BufferManager.class, vdb.bufferManagerInjector);
vdbService.addDependency(DependencyType.OPTIONAL, TeiidServiceNames.OBJECT_REPLICATOR, ObjectReplicator.class, vdb.objectReplicatorInjector);
vdbService.setInitialMode(Mode.PASSIVE).install();
-
- ServiceController<?> scMain = deploymentUnit.getServiceRegistry().getService(deploymentUnit.getServiceName().append("contents")); //$NON-NLS-1$
- scMain.addListener(new AbstractServiceListener<Object>() {
- @Override
- public void serviceRemoveRequested(final ServiceController controller) {
- final VDBMetaData vdb = deploymentUnit.getAttachment(TeiidAttachments.VDB_METADATA);
-
- ServiceController<?> sc = deploymentUnit.getServiceRegistry().getService(TeiidServiceNames.OBJECT_SERIALIZER);
- if (sc != null) {
- ObjectSerializer serilalizer = ObjectSerializer.class.cast(sc.getValue());
- serilalizer.removeAttachments(vdb);
- LogManager.logTrace(LogConstants.CTX_RUNTIME, "VDB "+vdb.getName()+" metadata removed"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- });
}
private void dataSourceDependencies(VDBMetaData deployment, DependentServices svcListener) {
@@ -280,6 +266,17 @@
if (!TeiidAttachments.isVDBDeployment(deploymentUnit)) {
return;
}
+
+ if (!this.shutdownListener.isShutdownInProgress()) {
+ final VDBMetaData vdb = deploymentUnit.getAttachment(TeiidAttachments.VDB_METADATA);
+
+ ServiceController<?> sc = deploymentUnit.getServiceRegistry().getService(TeiidServiceNames.OBJECT_SERIALIZER);
+ if (sc != null) {
+ ObjectSerializer serilalizer = ObjectSerializer.class.cast(sc.getValue());
+ serilalizer.removeAttachments(vdb);
+ LogManager.logTrace(LogConstants.CTX_RUNTIME, "VDB "+vdb.getName()+" metadata removed"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
}
private MetadataRepository getMetadataRepository(VDBMetaData vdb, String modelName, IndexMetadataRepository indexRepo) throws DeploymentUnitProcessingException {
More information about the teiid-commits
mailing list