You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2011/05/10 20:44:56 UTC

svn commit: r1101592 - /geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java

Author: gawor
Date: Tue May 10 18:44:55 2011
New Revision: 1101592

URL: http://svn.apache.org/viewvc?rev=1101592&view=rev
Log:
GERONIMODEVTOOLS-716: Ensure target platform is always re-created when server runtime is changed

Modified:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java?rev=1101592&r1=1101591&r2=1101592&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/GeronimoRuntimeWizardFragment.java Tue May 10 18:44:55 2011
@@ -426,20 +426,32 @@ public class GeronimoRuntimeWizardFragme
 
     public void performFinish(IProgressMonitor monitor) throws CoreException {
 
-        IStringVariableManager varManager = VariablesPlugin.getDefault().getStringVariableManager();
-
-        // whether the target platform is already created
-        if (null == varManager.getValueVariable(GERONIMO_SERVER_LOCATION_VARIABLE_NAME)) {
+        ITargetPlatformService service = 
+            (ITargetPlatformService) PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
+        
+        ITargetHandle geronimoTargetHandle = findGeronimoTargetDefinition(service);
+        
+        if (geronimoTargetHandle == null) {
+            // target definition not found - generate one 
             
-            // add string substitution variable named ${geronimo_30_server_location} 
             String geronimoServerLocation = getRuntimeDelegate().getRuntime().getLocation().toString();
             if (geronimoServerLocation.endsWith("/")) {
                 geronimoServerLocation = geronimoServerLocation.substring(0, geronimoServerLocation.length()-1);
             }
-            IValueVariable v = varManager.newValueVariable(GERONIMO_SERVER_LOCATION_VARIABLE_NAME,
-                    "The server location of Geronimo v3.0", false, geronimoServerLocation);
-            varManager.addVariables(new IValueVariable[] { v });
             
+            // add or update string substitution variable named ${geronimo_30_server_location} 
+            IStringVariableManager varManager = VariablesPlugin.getDefault().getStringVariableManager();
+            IValueVariable v = varManager.getValueVariable(GERONIMO_SERVER_LOCATION_VARIABLE_NAME);
+            if (v == null) {
+                v = varManager.newValueVariable(GERONIMO_SERVER_LOCATION_VARIABLE_NAME,
+                                                "The server location of Geronimo v3.0", 
+                                                false, 
+                                                geronimoServerLocation);
+                varManager.addVariables(new IValueVariable[] { v });
+            } else {
+                v.setValue(geronimoServerLocation);
+            }
+                        
             // copy the target file for target platform into workspace
             IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
             IPath rootLocation = root.getLocation();
@@ -451,32 +463,30 @@ public class GeronimoRuntimeWizardFragme
             URL template = bundle.getEntry(TARGET_TEMPLATE_FILE);
             
             copyFile(template, destination, getLocationEntryLists(geronimoServerLocation));
+                        
+            geronimoTargetHandle = findGeronimoTargetDefinition(service);                    
         }
         
-        ITargetPlatformService service = (ITargetPlatformService)PDECore.getDefault().acquireService(
-                ITargetPlatformService.class.getName());
         ITargetHandle activeTargetHandle = service.getWorkspaceTargetHandle();
-        ITargetHandle[] targetHandles = service.getTargets(null);
-        ITargetHandle geronimoTargetHandle = null;
-        for (ITargetHandle cur : targetHandles) {
-            if (cur.getTargetDefinition().getName().equals("Apache Geronimo 3.0")) {
-                geronimoTargetHandle = cur;
-            }
-        }
+        
         if (geronimoTargetHandle != null) {
-            boolean resetFlag = false;
-            if (activeTargetHandle == null ) {
-                resetFlag = true;
-            } else if (!activeTargetHandle.equals(geronimoTargetHandle)) {
-                resetFlag = true;
-            }                
-            if (resetFlag) {
+            if (activeTargetHandle == null || !activeTargetHandle.equals(geronimoTargetHandle)) {
                 ITargetDefinition geronimoTarget = geronimoTargetHandle.getTargetDefinition();
                 LoadTargetDefinitionJob.load(geronimoTarget);
             }            
         }
     }
     
+    private ITargetHandle findGeronimoTargetDefinition(ITargetPlatformService service) throws CoreException {
+        ITargetHandle[] targetHandles = service.getTargets(null);
+        for (ITargetHandle cur : targetHandles) {
+            if (cur.getTargetDefinition().getName().equals("Apache Geronimo 3.0")) {
+                return cur;
+            }
+        }
+        return null;
+    }
+    
     protected void copyFile(URL source, IPath dest, String replacement) throws CoreException {
         Reader reader = null;
         Writer writer = null;