[teiid-commits] teiid SVN: r2868 - branches/7.1.x/runtime/src/main/java/org/teiid/deployers.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Jan 21 08:38:38 EST 2011


Author: shawkins
Date: 2011-01-21 08:38:38 -0500 (Fri, 21 Jan 2011)
New Revision: 2868

Modified:
   branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
   branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java
Log:
TEIID-1445 expanding the fix to synchronize status sets against the vdb

Modified: branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java	2011-01-21 03:35:46 UTC (rev 2867)
+++ branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java	2011-01-21 13:38:38 UTC (rev 2868)
@@ -148,21 +148,23 @@
 		} catch (IOException e1) {
 			LogManager.logWarning(LogConstants.CTX_RUNTIME, e1, RuntimePlugin.Util.getString("vdb_save_failed", deployment.getName()+"."+deployment.getVersion())); //$NON-NLS-1$ //$NON-NLS-2$			
 		}
+			
+		boolean valid = true;
+		synchronized (deployment) {
+			if (!preview) {
+				valid = validateSources(cmr, deployment);
 				
-		boolean valid = true;
-		if (!preview) {
-			valid = validateSources(cmr, deployment);
-			
-			// Check if the VDB is fully configured.
-			if (valid) {
+				// Check if the VDB is fully configured.
+				if (valid) {
+					deployment.setStatus(VDB.Status.ACTIVE);
+				} else {
+					deployment.setStatus(VDB.Status.INACTIVE);
+				}			
+			}
+			else {
 				deployment.setStatus(VDB.Status.ACTIVE);
-			} else {
-				deployment.setStatus(VDB.Status.INACTIVE);
-			}			
+			}
 		}
-		else {
-			deployment.setStatus(VDB.Status.ACTIVE);
-		}
 		LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_deployed",deployment, valid?"active":"inactive")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
 
@@ -324,7 +326,7 @@
 			}
     	}
     	
-    	synchronized (this) {
+    	synchronized (vdb) {
 	    	if (!loaded) {
 	    		vdb.setStatus(VDB.Status.INACTIVE);
 	    		String msg = RuntimePlugin.Util.getString("failed_to_retrive_metadata", vdb.getName()+"-"+vdb.getVersion(), model.getName()); //$NON-NLS-1$ //$NON-NLS-2$

Modified: branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java
===================================================================
--- branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java	2011-01-21 03:35:46 UTC (rev 2867)
+++ branches/7.1.x/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java	2011-01-21 13:38:38 UTC (rev 2868)
@@ -67,39 +67,41 @@
 			if (vdb.getStatus() == VDB.Status.ACTIVE || vdb.isPreview()) {
 				continue;
 			}
-			ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class);
-			
-			for (Model m:vdb.getModels()) {
-				ModelMetaData model = (ModelMetaData)m;
-				if (model.getErrors().isEmpty()) {
-					continue;
+			synchronized (vdb) {
+				ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class);
+				
+				for (Model m:vdb.getModels()) {
+					ModelMetaData model = (ModelMetaData)m;
+					if (model.getErrors().isEmpty()) {
+						continue;
+					}
+	
+					String sourceName = getSourceName(resourceName, model, translator);
+					if (sourceName != null) {
+						ConnectorManager cm = cmr.getConnectorManager(sourceName);
+						model.clearErrors();
+						String status = cm.getStausMessage();
+						if (status != null && status.length() > 0) {
+							model.addError(ModelMetaData.ValidationError.Severity.ERROR.name(), status);
+							LogManager.logInfo(LogConstants.CTX_RUNTIME, status);					
+						}					
+					}
 				}
-
-				String sourceName = getSourceName(resourceName, model, translator);
-				if (sourceName != null) {
-					ConnectorManager cm = cmr.getConnectorManager(sourceName);
-					model.clearErrors();
-					String status = cm.getStausMessage();
-					if (status != null && status.length() > 0) {
-						model.addError(ModelMetaData.ValidationError.Severity.ERROR.name(), status);
-						LogManager.logInfo(LogConstants.CTX_RUNTIME, status);					
-					}					
+	
+				boolean valid = true;
+				for (Model m:vdb.getModels()) {
+					ModelMetaData model = (ModelMetaData)m;
+					if (!model.getErrors().isEmpty()) {
+						valid = false;
+						break;
+					}
 				}
-			}
-
-			boolean valid = true;
-			for (Model m:vdb.getModels()) {
-				ModelMetaData model = (ModelMetaData)m;
-				if (!model.getErrors().isEmpty()) {
-					valid = false;
-					break;
+				
+				if (valid) {
+					vdb.setStatus(VDB.Status.ACTIVE);
+					LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_activated",vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
 				}
 			}
-			
-			if (valid) {
-				vdb.setStatus(VDB.Status.ACTIVE);
-				LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_activated",vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
-			}
 		}
 	}
 	
@@ -108,25 +110,26 @@
 			if (vdb.isPreview()) {
 				continue;
 			}
-			
-			for (Model m:vdb.getModels()) {
-				ModelMetaData model = (ModelMetaData)m;
-				
-				String sourceName = getSourceName(resourceName, model, translator);
-				if (sourceName != null) {
-					vdb.setStatus(VDB.Status.INACTIVE);
-					String msg = null;
-					if (translator) {
-						msg = RuntimePlugin.Util.getString("translator_not_found", vdb.getName(), vdb.getVersion(), model.getSourceTranslatorName(sourceName)); //$NON-NLS-1$
+			synchronized (vdb) {
+				for (Model m:vdb.getModels()) {
+					ModelMetaData model = (ModelMetaData)m;
+					
+					String sourceName = getSourceName(resourceName, model, translator);
+					if (sourceName != null) {
+						vdb.setStatus(VDB.Status.INACTIVE);
+						String msg = null;
+						if (translator) {
+							msg = RuntimePlugin.Util.getString("translator_not_found", vdb.getName(), vdb.getVersion(), model.getSourceTranslatorName(sourceName)); //$NON-NLS-1$
+						}
+						else {
+							msg = RuntimePlugin.Util.getString("datasource_not_found", vdb.getName(), vdb.getVersion(), model.getSourceTranslatorName(sourceName)); //$NON-NLS-1$
+						}
+						model.addError(ModelMetaData.ValidationError.Severity.ERROR.name(), msg);
+						LogManager.logInfo(LogConstants.CTX_RUNTIME, msg);					
+						LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_inactivated",vdb.getName(), vdb.getVersion())); //$NON-NLS-1$							
 					}
-					else {
-						msg = RuntimePlugin.Util.getString("datasource_not_found", vdb.getName(), vdb.getVersion(), model.getSourceTranslatorName(sourceName)); //$NON-NLS-1$
-					}
-					model.addError(ModelMetaData.ValidationError.Severity.ERROR.name(), msg);
-					LogManager.logInfo(LogConstants.CTX_RUNTIME, msg);					
-					LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_inactivated",vdb.getName(), vdb.getVersion())); //$NON-NLS-1$							
 				}
-			}			
+			}
 		}
 	}
 



More information about the teiid-commits mailing list