You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by mc...@apache.org on 2008/01/12 03:38:27 UTC

svn commit: r611355 [2/5] - in /geronimo/devtools/eclipse-plugin/trunk/plugins: ./ org.apache.geronimo.runtime.v21/ org.apache.geronimo.runtime.v21/META-INF/ org.apache.geronimo.st.core/ org.apache.geronimo.st.ui/ org.apache.geronimo.st.ui/src/org/apac...

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/org/apache/geronimo/st/ui/internal/GeronimoRuntimeWizardFragment.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/org/apache/geronimo/st/ui/internal/GeronimoRuntimeWizardFragment.java?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/org/apache/geronimo/st/ui/internal/GeronimoRuntimeWizardFragment.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/org/apache/geronimo/st/ui/internal/GeronimoRuntimeWizardFragment.java Fri Jan 11 18:38:22 2008
@@ -76,436 +76,447 @@
  */
 public class GeronimoRuntimeWizardFragment extends WizardFragment {
 
-	private GeronimoRuntimeDelegate geronimoRuntime;
+    private GeronimoRuntimeDelegate geronimoRuntime;
 
-	protected Text installDir;
+    protected Text installDir;
 
-	private Button tomcat;
+    private Button tomcat;
 
-	private Button jetty;
+    private Button jetty;
 
-	protected Group group;
-
-	private IWizardHandle fWizard;
-
-	protected List<IVMInstall> installedJREs;
-
-	protected String[] jreNames;
-
-	protected Combo combo;
-
-	public GeronimoRuntimeWizardFragment() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#hasComposite()
-	 */
-	public boolean hasComposite() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#createComposite(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.wst.server.ui.wizard.IWizardHandle)
-	 */
-	public Composite createComposite(Composite parent, IWizardHandle handle) {
-		this.fWizard = handle;
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout grid = new GridLayout(1, false);
-		grid.marginWidth = 0;
-		container.setLayout(grid);
-		container.setLayoutData(new GridData(GridData.FILL_BOTH));
-		handle.setImageDescriptor(Activator.getImageDescriptor((Activator.IMG_WIZ_GERONIMO)));
-		handle.setTitle(Messages.bind(Messages.runtimeWizardTitle, getRuntimeName()));
-		String version = getRuntimeDelegate().getRuntime().getRuntimeType().getVersion();
-		handle.setDescription(Messages.bind(Messages.runtimeWizardDescription, version));
-		createContent(container, handle);
-		return container;
-	}
-
-	public void createContent(Composite parent, IWizardHandle handle) {
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout(3, false);
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		addJRESelection(composite);
-		addInstallDirSection(composite);
-		addInstallableRuntimeSection(composite);
-	}
-
-	protected void addInstallableRuntimeSection(Composite composite) {
-		GridData data = new GridData();
-		data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 3;
-
-		GeronimoRuntimeDelegate gRuntime = getGeronimoRuntime();
-
-		final IInstallableRuntime gWithTomcat = ServerPlugin.findInstallableRuntime(gRuntime.getInstallableTomcatRuntimeId());
-		final IInstallableRuntime gWithJetty = ServerPlugin.findInstallableRuntime(gRuntime.getInstallableJettyRuntimeId());
-
-		if (gWithTomcat != null && gWithJetty != null) {
-			group = new Group(composite, SWT.NONE);
-			group.setText(Messages.downloadOptions);
-			group.setLayoutData(data);
-			group.setLayout(composite.getLayout());
-			group.setEnabled(false);
-
-			Label webContainer = new Label(group, SWT.NONE);
-			webContainer.setText(Messages.chooseWebContainer);
-			data = new GridData();
-			data.horizontalSpan = 3;
-			webContainer.setLayoutData(data);
-
-			tomcat = new Button(group, SWT.RADIO);
-			tomcat.setSelection(true);
-			tomcat.setText(Messages.gWithTomcat);
-			data = new GridData();
-			data.horizontalSpan = 3;
-			tomcat.setLayoutData(data);
-			tomcat.setToolTipText(Messages.tooltipTomcat);
-
-			jetty = new Button(group, SWT.RADIO);
-			jetty.setText(Messages.gWithJetty);
-			data = new GridData();
-			data.horizontalSpan = 3;
-			jetty.setLayoutData(data);
-			jetty.setToolTipText(Messages.tooltipJetty);
-
-			Button install = SWTUtil.createButton(group, Messages.install);
-			data = new GridData();
-			data.horizontalSpan = 3;
-			install.setLayoutData(data);
-			install.setToolTipText(Messages.bind(Messages.tooltipInstall, getRuntimeName()));
-			install.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent se) {
-					if (installDir != null && isValidLocation()) {
-						Shell shell = installDir.getShell();
-						ConfirmInstallDialog dialog = new ConfirmInstallDialog(shell, installDir.getText());
-						dialog.open();
-						if (dialog.getReturnCode() == IDialogConstants.OK_ID) {
-
-							final IInstallableRuntime installable = tomcat.getSelection() ? gWithTomcat
-									: gWithJetty;
-							final Path installPath = new Path(installDir.getText());
-							IRunnableWithProgress runnable = new IRunnableWithProgress() {
-								public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-									try {
-										installable.install(installPath, monitor);
-									} catch (CoreException e) {
-										Trace.trace(Trace.SEVERE, "Error installing runtime", e);
-									}
-								}
-							};
-
-							try {
-								getWizard().run(true, false, runnable);
-							} catch (InterruptedException e) {
-								e.printStackTrace();
-							} catch (InvocationTargetException e) {
-								e.printStackTrace();
-							} catch (Exception e) {
-								Trace.trace(Trace.SEVERE, "Error installing runtime", e);
-							}
-
-							updateInstallDir(installPath);
-
-						}
-					}
-				}
-
-				boolean isValidLocation() {
-					return true;
-				}
-
-				void updateInstallDir(IPath installPath) {
-					InstallableRuntime installable = (InstallableRuntime) (tomcat.getSelection() ? gWithTomcat
-							: gWithJetty);
-					String version = installable.getFeatureVersion();
-//              			if (version.endsWith(".0"))
-//		                		version = version.substring(0, version.lastIndexOf(".0"));
-					installPath = installPath.append("geronimo-" + (tomcat.getSelection() ? "tomcat6" : "jetty6") + "-jee5-" + version);
-					installDir.setText(installPath.toOSString());
-				}
-			});
-		}
-	}
-
-	protected GeronimoRuntimeDelegate getGeronimoRuntime() {
-		if (geronimoRuntime == null)
-			geronimoRuntime = (GeronimoRuntimeDelegate) getRuntimeDelegate().getRuntime().loadAdapter(GeronimoRuntimeDelegate.class, null);
-		return geronimoRuntime;
-	}
-
-	protected void addInstallDirSection(Composite composite) {
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(Messages.installDir);
-		GridData data = new GridData();
-		data.horizontalSpan = 3;
-		label.setLayoutData(data);
-		String tooltipLoc = Messages.bind(Messages.tooltipLoc, getRuntimeName());
-		label.setToolTipText(tooltipLoc);
-
-		installDir = new Text(composite, SWT.BORDER);
-
-		IPath currentLocation = getRuntimeDelegate().getRuntimeWorkingCopy().getLocation();
-		if (currentLocation != null) {
-			installDir.setText(currentLocation.toOSString());
-		}
-
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		installDir.setLayoutData(data);
-		installDir.setToolTipText(tooltipLoc);
-		installDir.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				getRuntimeDelegate().getRuntimeWorkingCopy().setLocation(new Path(installDir.getText()));
-				validate();
-			}
-		});
-
-		final Composite browseComp = composite;
-		Button browse = SWTUtil.createButton(composite, Messages.browse);
-		browse.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent se) {
-				DirectoryDialog dialog = new DirectoryDialog(browseComp.getShell());
-				dialog.setMessage(Messages.installDir);
-				dialog.setFilterPath(installDir.getText());
-				String selectedDirectory = dialog.open();
-				if (selectedDirectory != null)
-					installDir.setText(selectedDirectory);
-			}
-		});
-	}
-
-	protected void addJRESelection(final Composite composite) {
-		updateJREs();
-
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(Messages.installedJRE);
-		label.setLayoutData(new GridData());
-
-		combo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
-		combo.setItems(jreNames);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		combo.setLayoutData(data);
-
-		combo.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				int sel = combo.getSelectionIndex();
-				IVMInstall vmInstall = null;
-				if (sel > 0)
-					vmInstall = (IVMInstall) installedJREs.get(sel - 1);
-				getGeronimoRuntime().setVMInstall(vmInstall);
-				validate();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-		});
-
-		Button button = SWTUtil.createButton(composite, Messages.installedJREs);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				String currentVM = combo.getText();
-				if (showPreferencePage(composite)) {
-					updateJREs();
-					combo.setItems(jreNames);
-					combo.setText(currentVM);
-					if (combo.getSelectionIndex() == -1)
-						combo.select(0);
-				}
-			}
-		});
-
-		if (getRuntimeDelegate() != null) {
-			if (getRuntimeDelegate().isUsingDefaultJRE()) {
-				combo.select(0);
-			} else {
-				combo.setText(getRuntimeDelegate().getVMInstall().getName());
-			}
-		}
-	}
-
-	protected boolean showPreferencePage(Composite composite) {
-		PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
-		IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");
-		PreferenceManager manager2 = new PreferenceManager();
-		manager2.addToRoot(node);
-		final PreferenceDialog dialog = new PreferenceDialog(composite.getShell(), manager2);
-		final boolean[] result = new boolean[] { false };
-		BusyIndicator.showWhile(composite.getDisplay(), new Runnable() {
-			public void run() {
-				dialog.create();
-				if (dialog.open() == Window.OK)
-					result[0] = true;
-			}
-		});
-		return result[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#isComplete()
-	 */
-	public boolean isComplete() {
-		IRuntimeWorkingCopy runtimeWC = getRuntimeDelegate().getRuntimeWorkingCopy();
-		IStatus status = runtimeWC.validate(null);
-		return status == null || status.getSeverity() != IStatus.ERROR;
-	}
-
-	protected void validate() {
-
-		IRuntime runtime = getRuntimeDelegate().getRuntime();
-
-		IWizardHandle wizard = getWizard();
-
-		if (runtime == null) {
-			wizard.setMessage("", IMessageProvider.ERROR);
-			return;
-		}
-
-		IRuntimeWorkingCopy runtimeWC = getRuntimeDelegate().getRuntimeWorkingCopy();
-		getRuntimeDelegate().setInstanceProperty("serverRootDirectory", installDir.getText());
-
-		if (installDir.getText() == null || installDir.getText().length() == 0) {
-			// installDir field has not been entered
-			wizard.setMessage(Messages.installDirInfo, IMessageProvider.NONE);
-		} else {
-			IStatus status = runtimeWC.validate(null);
-			if (status == null || status.isOK()) {
-				// a valid install found
-				wizard.setMessage(null, IMessageProvider.NONE);
-				group.setEnabled(false);
-			} else if (status.getCode() == GeronimoRuntimeDelegate.INCORRECT_VERSION) {
-				group.setEnabled(false);
-				if (status.getSeverity() == IStatus.ERROR) {
-					wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
-					return;
-				}
-				wizard.setMessage(status.getMessage(), IMessageProvider.WARNING);
-			} else if (status.getCode() == GeronimoRuntimeDelegate.PARTIAL_IMAGE) {
-				wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
-				return;
-			} else {
-				File file = new Path(installDir.getText()).toFile();
-				boolean enableGroup = file.isDirectory() && file.canWrite() ? true : false;
-				group.setEnabled(enableGroup);
-				if (file.isDirectory()) {
-					String message = file.canWrite() ? Messages.noImageFound : Messages.cannotInstallAtLocation;
-					wizard.setMessage(message, IMessageProvider.ERROR);
-				} else {
-					wizard.setMessage(Messages.noSuchDir, IMessageProvider.ERROR);
-				}
-				return;
-			}
-
-			if (!isValidVM())
-				wizard.setMessage(Messages.jvmWarning, IMessageProvider.WARNING);
-		}
-	}
-
-	private boolean isValidVM() {
-		if(getRuntimeDelegate().getRuntime().getRuntimeType().getVersion().startsWith("1")) {
-			IVMInstall vmInstall = getRuntimeDelegate().getVMInstall();
-			if (vmInstall instanceof IVMInstall2) {
-				String javaVersion = ((IVMInstall2) vmInstall).getJavaVersion();
-				return javaVersion != null && javaVersion.startsWith("1.4");
-			}
-		}
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#enter()
-	 */
-	public void enter() {
-		if (getRuntimeDelegate() != null)
-			getRuntimeDelegate().getRuntimeWorkingCopy().setName(createName());
-		validate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#exit()
-	 */
-	public void exit() {
-		validate();
-	}
-
-	private GeronimoRuntimeDelegate getRuntimeDelegate() {
-		IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
-		if (wc == null)
-			return null;
-		return (GeronimoRuntimeDelegate) wc.loadAdapter(GeronimoRuntimeDelegate.class, new NullProgressMonitor());
-	}
-
-	private String createName() {
-		RuntimeDelegate dl = getRuntimeDelegate();
-		IRuntimeType runtimeType = dl.getRuntime().getRuntimeType();
-		String name = runtimeType.getName();
-		IRuntime[] list = ServerCore.getRuntimes();
-		int suffix = 1;
-		String suffixName = name;
-		for (int i = 0; i < list.length; i++) {
-			if ((list[i].getName().equals(name) || list[i].getName().equals(suffixName))
-					&& !list[i].equals(dl.getRuntime()))
-				suffix++;
-			suffixName = name + " " + suffix;
-		}
-
-		if (suffix > 1)
-			return suffixName;
-		return name;
-	}
-
-	protected String getRuntimeName() {
-		if (getRuntimeDelegate() != null
-				&& getRuntimeDelegate().getRuntime() != null)
-			return getRuntimeDelegate().getRuntime().getName();
-		return null;
-	}
-
-	protected void updateJREs() {
-		installedJREs = new ArrayList<IVMInstall>();
-		IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
-		int size = vmInstallTypes.length;
-		for (int i = 0; i < size; i++) {
-			IVMInstall[] vmInstalls = vmInstallTypes[i].getVMInstalls();
-			int size2 = vmInstalls.length;
-			for (int j = 0; j < size2; j++) {
-				installedJREs.add(vmInstalls[j]);
-			}
-		}
-
-		size = installedJREs.size();
-		jreNames = new String[size + 1];
-		jreNames[0] = Messages.runtimeDefaultJRE;
-		for (int i = 0; i < size; i++) {
-			IVMInstall vmInstall = (IVMInstall) installedJREs.get(i);
-			jreNames[i + 1] = vmInstall.getName();
-		}
-	}
-
-	public IWizardHandle getWizard() {
-		return fWizard;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.ui.wizard.WizardFragment#createChildFragments(java.util.List)
-	 */
-	protected void createChildFragments(List list) {
-		list.add(new GeronimoRuntimeSourceWizardFragment());
-	}
+    protected Group group;
+
+    private IWizardHandle fWizard;
+
+    protected List<IVMInstall> installedJREs;
+
+    protected String[] jreNames;
+
+    protected Combo combo;
+
+    public GeronimoRuntimeWizardFragment() {
+        super();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#hasComposite()
+     */
+    public boolean hasComposite() {
+        return true;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#createComposite(org.eclipse.swt.widgets.Composite,
+     *      org.eclipse.wst.server.ui.wizard.IWizardHandle)
+     */
+    public Composite createComposite(Composite parent, IWizardHandle handle) {
+        this.fWizard = handle;
+        Composite container = new Composite(parent, SWT.NONE);
+        GridLayout grid = new GridLayout(1, false);
+        grid.marginWidth = 0;
+        container.setLayout(grid);
+        container.setLayoutData(new GridData(GridData.FILL_BOTH));
+        handle.setImageDescriptor(Activator.getImageDescriptor((Activator.IMG_WIZ_GERONIMO)));
+        handle.setTitle(Messages.bind(Messages.runtimeWizardTitle, getRuntimeName()));
+        String version = getRuntimeDelegate().getRuntime().getRuntimeType().getVersion();
+        handle.setDescription(Messages.bind(Messages.runtimeWizardDescription, version));
+        createContent(container, handle);
+        return container;
+    }
+
+    public void createContent(Composite parent, IWizardHandle handle) {
+
+        Composite composite = new Composite(parent, SWT.NONE);
+        GridLayout layout = new GridLayout(3, false);
+        composite.setLayout(layout);
+        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+        addJRESelection(composite);
+        addInstallDirSection(composite);
+        addInstallableRuntimeSection(composite);
+    }
+
+    protected void addInstallableRuntimeSection(Composite composite) {
+        GridData data = new GridData();
+        data = new GridData(GridData.FILL_BOTH);
+        data.horizontalSpan = 3;
+
+        GeronimoRuntimeDelegate gRuntime = getGeronimoRuntime();
+
+        final IInstallableRuntime gWithTomcat = ServerPlugin.findInstallableRuntime(gRuntime.getInstallableTomcatRuntimeId());
+        final IInstallableRuntime gWithJetty = ServerPlugin.findInstallableRuntime(gRuntime.getInstallableJettyRuntimeId());
+
+        if (gWithTomcat != null && gWithJetty != null) {
+            group = new Group(composite, SWT.NONE);
+            group.setText(Messages.downloadOptions);
+            group.setLayoutData(data);
+            group.setLayout(composite.getLayout());
+            group.setEnabled(false);
+
+            Label webContainer = new Label(group, SWT.NONE);
+            webContainer.setText(Messages.chooseWebContainer);
+            data = new GridData();
+            data.horizontalSpan = 3;
+            webContainer.setLayoutData(data);
+
+            tomcat = new Button(group, SWT.RADIO);
+            tomcat.setSelection(true);
+            tomcat.setText(Messages.gWithTomcat);
+            data = new GridData();
+            data.horizontalSpan = 3;
+            tomcat.setLayoutData(data);
+            tomcat.setToolTipText(Messages.tooltipTomcat);
+
+            jetty = new Button(group, SWT.RADIO);
+            jetty.setText(Messages.gWithJetty);
+            data = new GridData();
+            data.horizontalSpan = 3;
+            jetty.setLayoutData(data);
+            jetty.setToolTipText(Messages.tooltipJetty);
+
+            Button install = SWTUtil.createButton(group, Messages.install);
+            data = new GridData();
+            data.horizontalSpan = 3;
+            install.setLayoutData(data);
+            install.setToolTipText(Messages.bind(Messages.tooltipInstall, getRuntimeName()));
+            install.addSelectionListener(new SelectionAdapter() {
+                                             public void widgetSelected(SelectionEvent se) {
+                                                 if (installDir != null && isValidLocation()) {
+                                                     Shell shell = installDir.getShell();
+                                                     ConfirmInstallDialog dialog = new ConfirmInstallDialog(shell, installDir.getText());
+                                                     dialog.open();
+                                                     if (dialog.getReturnCode() == IDialogConstants.OK_ID) {
+
+                                                         final IInstallableRuntime installable = tomcat.getSelection() ? gWithTomcat
+                                                         : gWithJetty;
+                                                         final Path installPath = new Path(installDir.getText());
+                                                         IRunnableWithProgress runnable = new IRunnableWithProgress() {
+                                                             public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+                                                                 try {
+                                                                     installable.install(installPath, monitor);
+                                                                 }
+                                                                 catch (CoreException e) {
+                                                                     Trace.trace(Trace.SEVERE, "Error installing runtime", e);
+                                                                 }
+                                                             }
+                                                         };
+
+                                                         try {
+                                                             getWizard().run(true, false, runnable);
+                                                         }
+                                                         catch (InterruptedException e) {
+                                                             e.printStackTrace();
+                                                         }
+                                                         catch (InvocationTargetException e) {
+                                                             e.printStackTrace();
+                                                         }
+                                                         catch (Exception e) {
+                                                             Trace.trace(Trace.SEVERE, "Error installing runtime", e);
+                                                         }
+
+                                                         updateInstallDir(installPath);
+
+                                                     }
+                                                 }
+                                             }
+
+                                             boolean isValidLocation() {
+                                                 return true;
+                                             }
+
+                                             void updateInstallDir(IPath installPath) {
+                                                 InstallableRuntime installable = (InstallableRuntime) (tomcat.getSelection() ? gWithTomcat
+                                                                                                        : gWithJetty);
+                                                 String version = installable.getFeatureVersion();
+                                                 installPath = installPath.append("geronimo-" + (tomcat.getSelection() ? "tomcat6" : "jetty6") + "-jee5-" + version);
+                                                 installDir.setText(installPath.toOSString());
+                                             }
+                                         });
+        }
+        else {
+            Trace.trace(Trace.SEVERE, "Error finding installable runtime(s)");
+        }
+    }
+
+    protected GeronimoRuntimeDelegate getGeronimoRuntime() {
+        if (geronimoRuntime == null)
+            geronimoRuntime = (GeronimoRuntimeDelegate) getRuntimeDelegate().getRuntime().loadAdapter(GeronimoRuntimeDelegate.class, null);
+        return geronimoRuntime;
+    }
+
+    protected void addInstallDirSection(Composite composite) {
+        Label label = new Label(composite, SWT.NONE);
+        label.setText(Messages.installDir);
+        GridData data = new GridData();
+        data.horizontalSpan = 3;
+        label.setLayoutData(data);
+        String tooltipLoc = Messages.bind(Messages.tooltipLoc, getRuntimeName());
+        label.setToolTipText(tooltipLoc);
+
+        installDir = new Text(composite, SWT.BORDER);
+
+        IPath currentLocation = getRuntimeDelegate().getRuntimeWorkingCopy().getLocation();
+        if (currentLocation != null) {
+            installDir.setText(currentLocation.toOSString());
+        }
+
+        data = new GridData(GridData.FILL_HORIZONTAL);
+        data.horizontalSpan = 2;
+        installDir.setLayoutData(data);
+        installDir.setToolTipText(tooltipLoc);
+        installDir.addModifyListener(new ModifyListener() {
+                                         public void modifyText(ModifyEvent e) {
+                                             getRuntimeDelegate().getRuntimeWorkingCopy().setLocation(new Path(installDir.getText()));
+                                             validate();
+                                         }
+                                     });
+
+        final Composite browseComp = composite;
+        Button browse = SWTUtil.createButton(composite, Messages.browse);
+        browse.addSelectionListener(new SelectionAdapter() {
+                                        public void widgetSelected(SelectionEvent se) {
+                                            DirectoryDialog dialog = new DirectoryDialog(browseComp.getShell());
+                                            dialog.setMessage(Messages.installDir);
+                                            dialog.setFilterPath(installDir.getText());
+                                            String selectedDirectory = dialog.open();
+                                            if (selectedDirectory != null)
+                                                installDir.setText(selectedDirectory);
+                                        }
+                                    });
+    }
+
+    protected void addJRESelection(final Composite composite) {
+        updateJREs();
+
+        Label label = new Label(composite, SWT.NONE);
+        label.setText(Messages.installedJRE);
+        label.setLayoutData(new GridData());
+
+        combo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
+        combo.setItems(jreNames);
+        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+        combo.setLayoutData(data);
+
+        combo.addSelectionListener(new SelectionListener() {
+                                       public void widgetSelected(SelectionEvent e) {
+                                           int sel = combo.getSelectionIndex();
+                                           IVMInstall vmInstall = null;
+                                           if (sel > 0)
+                                               vmInstall = (IVMInstall) installedJREs.get(sel - 1);
+                                           getGeronimoRuntime().setVMInstall(vmInstall);
+                                           validate();
+                                       }
+
+                                       public void widgetDefaultSelected(SelectionEvent e) {
+                                           widgetSelected(e);
+                                       }
+                                   });
+
+        Button button = SWTUtil.createButton(composite, Messages.installedJREs);
+        button.addSelectionListener(new SelectionAdapter() {
+                                        public void widgetSelected(SelectionEvent e) {
+                                            String currentVM = combo.getText();
+                                            if (showPreferencePage(composite)) {
+                                                updateJREs();
+                                                combo.setItems(jreNames);
+                                                combo.setText(currentVM);
+                                                if (combo.getSelectionIndex() == -1)
+                                                    combo.select(0);
+                                            }
+                                        }
+                                    });
+
+        if (getRuntimeDelegate() != null) {
+            if (getRuntimeDelegate().isUsingDefaultJRE()) {
+                combo.select(0);
+            }
+            else {
+                combo.setText(getRuntimeDelegate().getVMInstall().getName());
+            }
+        }
+    }
+
+    protected boolean showPreferencePage(Composite composite) {
+        PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
+        IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");
+        PreferenceManager manager2 = new PreferenceManager();
+        manager2.addToRoot(node);
+        final PreferenceDialog dialog = new PreferenceDialog(composite.getShell(), manager2);
+        final boolean[] result = new boolean[] { false};
+        BusyIndicator.showWhile(composite.getDisplay(), new Runnable() {
+                                    public void run() {
+                                        dialog.create();
+                                        if (dialog.open() == Window.OK)
+                                            result[0] = true;
+                                    }
+                                });
+        return result[0];
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#isComplete()
+     */
+    public boolean isComplete() {
+        IRuntimeWorkingCopy runtimeWC = getRuntimeDelegate().getRuntimeWorkingCopy();
+        IStatus status = runtimeWC.validate(null);
+        return status == null || status.getSeverity() != IStatus.ERROR;
+    }
+
+    protected void validate() {
+
+        IRuntime runtime = getRuntimeDelegate().getRuntime();
+
+        IWizardHandle wizard = getWizard();
+
+        if (runtime == null) {
+            wizard.setMessage("", IMessageProvider.ERROR);
+            return;
+        }
+
+        IRuntimeWorkingCopy runtimeWC = getRuntimeDelegate().getRuntimeWorkingCopy();
+        getRuntimeDelegate().setInstanceProperty("serverRootDirectory", installDir.getText());
+
+        if (installDir.getText() == null || installDir.getText().length() == 0) {
+            // installDir field has not been entered
+            wizard.setMessage(Messages.installDirInfo, IMessageProvider.NONE);
+        }
+        else {
+            IStatus status = runtimeWC.validate(null);
+            if (status == null || status.isOK()) {
+                // a valid install found
+                wizard.setMessage(null, IMessageProvider.NONE);
+                group.setEnabled(false);
+            }
+            else if (status.getCode() == GeronimoRuntimeDelegate.INCORRECT_VERSION) {
+                group.setEnabled(false);
+                if (status.getSeverity() == IStatus.ERROR) {
+                    wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
+                    return;
+                }
+                wizard.setMessage(status.getMessage(), IMessageProvider.WARNING);
+            }
+            else if (status.getCode() == GeronimoRuntimeDelegate.PARTIAL_IMAGE) {
+                wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
+                return;
+            }
+            else {
+                File file = new Path(installDir.getText()).toFile();
+                boolean enableGroup = file.isDirectory() && file.canWrite() ? true : false;
+                group.setEnabled(enableGroup);
+                if (file.isDirectory()) {
+                    String message = file.canWrite() ? Messages.noImageFound : Messages.cannotInstallAtLocation;
+                    wizard.setMessage(message, IMessageProvider.ERROR);
+                }
+                else {
+                    wizard.setMessage(Messages.noSuchDir, IMessageProvider.ERROR);
+                }
+                return;
+            }
+
+            if (!isValidVM())
+                wizard.setMessage(Messages.jvmWarning, IMessageProvider.WARNING);
+        }
+    }
+
+    private boolean isValidVM() {
+        if (getRuntimeDelegate().getRuntime().getRuntimeType().getVersion().startsWith("1")) {
+            IVMInstall vmInstall = getRuntimeDelegate().getVMInstall();
+            if (vmInstall instanceof IVMInstall2) {
+                String javaVersion = ((IVMInstall2) vmInstall).getJavaVersion();
+                return javaVersion != null && javaVersion.startsWith("1.4");
+            }
+        }
+        return true;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#enter()
+     */
+    public void enter() {
+        if (getRuntimeDelegate() != null)
+            getRuntimeDelegate().getRuntimeWorkingCopy().setName(createName());
+        validate();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#exit()
+     */
+    public void exit() {
+        validate();
+    }
+
+    private GeronimoRuntimeDelegate getRuntimeDelegate() {
+        IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
+        if (wc == null)
+            return null;
+        return(GeronimoRuntimeDelegate) wc.loadAdapter(GeronimoRuntimeDelegate.class, new NullProgressMonitor());
+    }
+
+    private String createName() {
+        RuntimeDelegate dl = getRuntimeDelegate();
+        IRuntimeType runtimeType = dl.getRuntime().getRuntimeType();
+        String name = runtimeType.getName();
+        IRuntime[] list = ServerCore.getRuntimes();
+        int suffix = 1;
+        String suffixName = name;
+        for (int i = 0; i < list.length; i++) {
+            if ((list[i].getName().equals(name) || list[i].getName().equals(suffixName))
+                && !list[i].equals(dl.getRuntime()))
+                suffix++;
+            suffixName = name + " " + suffix;
+        }
+
+        if (suffix > 1)
+            return suffixName;
+        return name;
+    }
+
+    protected String getRuntimeName() {
+        if (getRuntimeDelegate() != null
+            && getRuntimeDelegate().getRuntime() != null)
+            return getRuntimeDelegate().getRuntime().getName();
+        return null;
+    }
+
+    protected void updateJREs() {
+        installedJREs = new ArrayList<IVMInstall>();
+        IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
+        int size = vmInstallTypes.length;
+        for (int i = 0; i < size; i++) {
+            IVMInstall[] vmInstalls = vmInstallTypes[i].getVMInstalls();
+            int size2 = vmInstalls.length;
+            for (int j = 0; j < size2; j++) {
+                installedJREs.add(vmInstalls[j]);
+            }
+        }
+
+        size = installedJREs.size();
+        jreNames = new String[size + 1];
+        jreNames[0] = Messages.runtimeDefaultJRE;
+        for (int i = 0; i < size; i++) {
+            IVMInstall vmInstall = (IVMInstall) installedJREs.get(i);
+            jreNames[i + 1] = vmInstall.getName();
+        }
+    }
+
+    public IWizardHandle getWizard() {
+        return fWizard;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.wst.server.ui.wizard.WizardFragment#createChildFragments(java.util.List)
+     */
+    protected void createChildFragments(List list) {
+        list.add(new GeronimoRuntimeSourceWizardFragment());
+    }
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v1.core/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v1.core/plugin.xml?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v1.core/plugin.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v1.core/plugin.xml Fri Jan 11 18:38:22 2008
@@ -66,6 +66,12 @@
         </installableRuntime>
     </extension>
     
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Declare the 1.0 version of the "Geronimo Deployment" <project-facet> and the <action>   -->
+    <!-- that the user can perform on the facet (i.e., install)                                  -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
     <extension point="org.eclipse.wst.common.project.facet.core.facets">
         <project-facet-version facet="org.apache.geronimo.facet" version="1.0">
             <action type="install">
@@ -98,6 +104,13 @@
             runtime-component="org.apache.geronimo.runtime" version="1.0"/>
     </extension>
     
+    
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Map the <runtime-component> (defined in org.apache.geronimo.st.core\plugin.xml) to a    -->
+    <!-- specific version of the "Geronimo Deployment" <project-facet>                           -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
     <extension id="org.apache.geronimo.defaultFacets"
         name="Geronimo Default Facets"
         point="org.eclipse.wst.common.project.facet.core.defaultFacets">

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/plugin.xml?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/plugin.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/plugin.xml Fri Jan 11 18:38:22 2008
@@ -68,6 +68,12 @@
             runtime-component="org.apache.geronimo.runtime" version="1.1"/>
     </extension>
     
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Declare the 1.1 version of the "Geronimo Deployment" <project-facet> and the <action>   -->
+    <!-- that the user can perform on the facet (i.e., install)                                  -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
     <extension point="org.eclipse.wst.common.project.facet.core.facets">        
         <project-facet-version facet="org.apache.geronimo.facet" version="1.1">
             <action type="install" id="geronimo.plan.install">
@@ -100,6 +106,13 @@
         </project-facet-version>
     </extension>
     
+    
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Map the <runtime-component> (defined in org.apache.geronimo.st.core\plugin.xml) to a    -->
+    <!-- specific version of the "Geronimo Deployment" <project-facet>                           -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
     <extension point="org.eclipse.wst.common.project.facet.core.defaultFacets" 
     	id="org.apache.geronimo.defaultFacets"
         name="Geronimo Default Facets">

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.core/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.core/plugin.xml?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.core/plugin.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.core/plugin.xml Fri Jan 11 18:38:22 2008
@@ -69,6 +69,14 @@
             runtime-component="org.apache.geronimo.runtime" version="2.0"/>
     </extension>
     
+    
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Declare the 2.0 version of the "Geronimo Deployment" <project-facet> and the <action>   -->
+    <!-- that the user can perform on the facet (i.e., install)                                  -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <!-- 
     <extension point="org.eclipse.wst.common.project.facet.core.facets">        
         <project-facet-version facet="org.apache.geronimo.facet" version="2.0">
             <action type="install" id="geronimo.plan.install">
@@ -100,13 +108,22 @@
             </constraint>
         </project-facet-version>
     </extension>
+    -->
+    
     
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Map the <runtime-component> (defined in org.apache.geronimo.st.core\plugin.xml) to a    -->
+    <!-- specific version of the "Geronimo Deployment" <project-facet>. Note that the 1.1        -->
+    <!-- version is the only supported <project-facet-version> for the 2.0 Geronimo server.      -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
     <extension point="org.eclipse.wst.common.project.facet.core.defaultFacets" 
     	id="org.apache.geronimo.defaultFacets"
         name="Geronimo Default Facets">
         <default-facets>
             <runtime-component id="org.apache.geronimo.runtime" version="2.0"/>
-            <facet id="org.apache.geronimo.facet" version="2.0"/>
+            <facet id="org.apache.geronimo.facet" version="1.1"/>
         </default-facets>
     </extension>
   

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/META-INF/MANIFEST.MF?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/META-INF/MANIFEST.MF (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/META-INF/MANIFEST.MF Fri Jan 11 18:38:22 2008
@@ -12,7 +12,8 @@
  org.eclipse.core.resources,
  org.apache.geronimo.v11.deployment.model.edit,
  org.apache.geronimo.v11.deployment.model,
- org.eclipse.wst.common.project.facet.ui
+ org.eclipse.wst.common.project.facet.ui,
+ org.apache.geronimo.st.v11.ui
 Eclipse-LazyStart: true
 Bundle-Vendor: Apache.org
 Export-Package: org.apache.geronimo.st.v20.ui,

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/plugin.xml?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/plugin.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/plugin.xml Fri Jan 11 18:38:22 2008
@@ -34,7 +34,7 @@
 
     <extension point="org.eclipse.wst.common.project.facet.ui.wizardPages">
   		<wizard-pages action="geronimo.plan.install">
-    		<page class="org.apache.geronimo.st.v20.ui.wizards.FacetInstallPage"/>
+    		<page class="org.apache.geronimo.st.v11.ui.wizards.FacetInstallPage"/>
   		</wizard-pages>
 	</extension>  
 </plugin>

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/pom.xml?rev=611355&r1=611354&r2=611355&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/pom.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v20.ui/pom.xml Fri Jan 11 18:38:22 2008
@@ -100,5 +100,10 @@
             <artifactId>org.apache.geronimo.st.ui</artifactId>
             <version>${version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>org.apache.geronimo.st.v11.ui</artifactId>
+            <version>${version}</version>
+        </dependency>
     </dependencies>
 </project>

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.classpath
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.classpath?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.classpath (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.classpath Fri Jan 11 18:38:22 2008
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.options
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.options?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.options (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.options Fri Jan 11 18:38:22 2008
@@ -0,0 +1 @@
+org.apache.geronimo.st.v21.core/debug=true
\ No newline at end of file

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.project
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.project?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.project (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/.project Fri Jan 11 18:38:22 2008
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.apache.geronimo.st.v21.core</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/META-INF/MANIFEST.MF?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/META-INF/MANIFEST.MF (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/META-INF/MANIFEST.MF Fri Jan 11 18:38:22 2008
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Geronimo v21 Server Tools Core Plug-in
+Bundle-SymbolicName: org.apache.geronimo.st.v21.core;singleton:=true
+Bundle-Version: 2.1.0
+Bundle-Activator: org.apache.geronimo.st.v21.core.Activator
+Bundle-Vendor: Apache.org
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.wst.server.core,
+ org.eclipse.debug.core,
+ org.eclipse.wst.common.project.facet.core,
+ org.apache.geronimo.runtime.v21,
+ org.apache.geronimo.st.core,
+ org.eclipse.jst.common.frameworks,
+ org.eclipse.wst.common.modulecore,
+ org.apache.geronimo.v11.deployment.model
+Eclipse-LazyStart: true
+Export-Package: 
+ org.apache.geronimo.st.v21.core,
+ org.apache.geronimo.st.v21.core.internal,
+ org.apache.geronimo.st.v21.core.operations

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.properties
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.properties?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.properties (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.properties Fri Jan 11 18:38:22 2008
@@ -0,0 +1,35 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Rev: 583586 $ $Date: 2007-10-10 15:29:32 -0400 (Wed, 10 Oct 2007) $
+#
+pluginName=Geronimo Server Tools V21 Core Plug-in
+providerName=Apache Software Foundation
+
+runtimeTypeName=Apache Geronimo v2.1 Runtime
+runtimeTypeDescription=Apache Geronimo v2.1 supports Java EE 5.0.
+runtimeTypeVendor=Apache
+
+serverTypeName=Apache Geronimo v2.1 Server
+serverTypeDescription=Apache Geronimo v2.1 Server
+
+serverRootDirectory=Application Server Directory:
+port=Port:
+rmiport=RMI Naming Port:
+ejbport=EJB Port:
+adminId=Ad&ministrator Id:
+adminPassword=Administrator Password:
+classPath=Classpath Variable:
\ No newline at end of file

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.xml?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.xml (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/plugin.xml Fri Jan 11 18:38:22 2008
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<!-- $Rev: 589873 $ $Date: 2007-10-29 17:48:35 -0400 (Mon, 29 Oct 2007) $ -->
+
+<plugin>
+
+
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Extend WTP runtimeTypes to include the new Geronimo runtime type                        -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <extension point="org.eclipse.wst.server.core.runtimeTypes">
+        <runtimeType id="org.apache.geronimo.runtime.21" version="2.1"
+            name="%runtimeTypeName"
+            description="%runtimeTypeDescription"
+            vendor="%runtimeTypeVendor"
+            class="org.apache.geronimo.st.v21.core.GeronimoRuntime">
+            <moduleType types="jst.web"       versions="2.2, 2.3, 2.4, 2.5"/>
+            <moduleType types="jst.ejb"       versions="1.1, 2.0, 2.1, 3.0"/>
+            <moduleType types="jst.connector" versions="1.0, 1.5"/>
+            <moduleType types="jst.ear"       versions="1.2, 1.3, 1.4, 5.0"/>
+            <moduleType types="jst.utility"   versions="1.0"/>
+        </runtimeType>
+    </extension>
+    
+
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Extend WTP serverTypes so that the new Geronimo server type can be asociated with the   -->
+    <!-- new Geronimo runtime type (defined above)                                               -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <extension point="org.eclipse.wst.server.core.serverTypes">
+        <serverType id="org.apache.geronimo.server.21"
+            name="%serverTypeName"
+            description="%serverTypeDescription"
+            runtime="true"
+            class="org.apache.geronimo.st.v21.core.GeronimoServer"
+            initialState="stopped"
+            supportsRemoteHosts="true"
+            startTimeout="240000"
+            stopTimeout="30000"
+            startBeforePublish="true"
+            runtimeTypeId="org.apache.geronimo.runtime.21"
+            launchConfigId="org.apache.geronimo.st.core.launchConfigurationType"
+            behaviourClass="org.apache.geronimo.st.v21.core.GeronimoServerBehaviour"
+            hasConfiguration="false"
+            launchModes="run,debug,profile">
+        </serverType>
+    </extension>
+    
+    
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Extend WTP installableRuntimes so that the new Geronimo server or runtime type          -->
+    <!-- can be discovered via the GeronimoRuntimeWizardFragment extension                       -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <extension point="org.eclipse.wst.server.core.installableRuntimes">
+        <installableRuntime id="org.apache.geronimo.runtime.tomcat.21"
+            featureVersion="2.1.0"
+            featureId="org.apache.geronimo.installableruntime.tomcat.feature"
+            featureSite="http://www.apache.org/dist/geronimo/eclipse/updates/"
+            path="geronimo-tomcat6-jee5-2.1.0.zip">
+        </installableRuntime>
+        <installableRuntime id="org.apache.geronimo.runtime.jetty.21"
+            featureVersion="2.1.0"
+            featureId="org.apache.geronimo.installableruntime.jetty.feature"
+            featureSite="http://www.apache.org/dist/geronimo/eclipse/updates/"
+            path="geronimo-jetty6-jee5-2.1.0.zip">
+        </installableRuntime>
+    </extension>
+    
+
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Map the runtime-component (defined in plugins\org.apache.geronimo.st.core\plugin.xml)   -->
+    <!-- to the new Geronimo runtime type (defined above)                                        -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <extension point="org.eclipse.jst.server.core.runtimeFacetMappings">
+        <runtimeFacetMapping
+            runtimeTypeId="org.apache.geronimo.runtime.21"
+            runtime-component="org.apache.geronimo.runtime" version="2.1"/>
+    </extension>
+    
+
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Declare the 2.1 version of the "Geronimo Deployment" <project-facet> and the <action>   -->
+    <!-- that the user can perform on the facet (i.e., install)                                  -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <!-- 
+    <extension point="org.eclipse.wst.common.project.facet.core.facets">
+        <project-facet-version facet="org.apache.geronimo.facet" version="2.1">
+            <action type="install" id="geronimo.plan.install">
+                <delegate class="org.apache.geronimo.st.v21.core.operations.GeronimoV21FacetInstallDelegate"/>
+                <config-factory class="org.apache.geronimo.st.v21.core.DeploymentPlanInstallConfig$Factory"/>
+            </action>
+            <constraint>
+                <or>
+                    <requires facet="jst.ear" version="1.2"/>
+                    <requires facet="jst.ear" version="1.3"/>
+                    <requires facet="jst.ear" version="1.4"/>
+                    <requires facet="jst.ear" version="1.4"/>
+                    <requires facet="jst.ear" version="5.0"/>
+                    <requires facet="jst.appclient" version="1.2"/>
+                    <requires facet="jst.appclient" version="1.3"/>
+                    <requires facet="jst.appclient" version="1.4"/>
+                    <requires facet="jst.connector" version="1.0"/>
+                    <requires facet="jst.connector" version="1.5"/>
+                    <requires facet="jst.ejb" version="1.1"/>
+                    <requires facet="jst.ejb" version="2.0"/>
+                    <requires facet="jst.ejb" version="2.1"/>
+                    <requires facet="jst.ejb" version="3.0"/>
+                    <requires facet="jst.web" version="2.2"/>
+                    <requires facet="jst.web" version="2.3"/>
+                    <requires facet="jst.web" version="2.4"/>
+                    <requires facet="jst.web" version="2.5"/>
+                    <requires facet="jst.utility" version="1.0"/>
+                </or>
+            </constraint>
+        </project-facet-version>
+    </extension>
+    -->
+    
+
+    <!-- ======================================================================================= -->
+    <!--                                                                                         -->
+    <!-- Map the <runtime-component> (defined in org.apache.geronimo.st.core\plugin.xml) to a    -->
+    <!-- specific version of the "Geronimo Deployment" <project-facet>. Note that the 1.1        -->
+    <!-- version is the only supported <project-facet-version> for the 2.1 Geronimo server.      -->
+    <!--                                                                                         -->
+    <!-- ======================================================================================= -->
+    <extension point="org.eclipse.wst.common.project.facet.core.defaultFacets"
+        id="org.apache.geronimo.defaultFacets"
+        name="Geronimo Default Facets">
+        <default-facets>
+            <runtime-component id="org.apache.geronimo.runtime" version="2.1"/>
+            <facet id="org.apache.geronimo.facet" version="1.1"/>
+        </default-facets>
+    </extension>
+
+</plugin>

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/pom.xml?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/pom.xml (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/pom.xml Fri Jan 11 18:38:22 2008
@@ -0,0 +1,92 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<!-- $Rev: 609739 $ $Date: 2008-01-07 13:54:14 -0500 (Mon, 07 Jan 2008) $ -->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.apache.geronimo.st.v21.core</artifactId>
+    <packaging>jar</packaging>
+    <name>${artifactId}</name>
+    <parent>
+        <groupId>org.apache.geronimo.devtools</groupId>
+        <artifactId>eclipse-plugins-parent</artifactId>
+        <version>2.1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <build>
+        <resources>
+            <resource>
+                <directory>.</directory>
+                <includes>
+                    <include>plugin.xml</include>
+                    <include>plugin.properties</include>
+                    <include>.options</include>
+                </includes>
+            </resource>
+            <resource>
+                <targetPath>META-INF</targetPath>
+                <directory>..</directory>
+                <includes>
+                    <include>LICENSE</include>
+                    <include>NOTICE</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.geronimo.devtools</groupId>
+                <artifactId>maven-eclipsepde-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>eclipse</artifactId>
+            <version>${version}</version>
+            <type>pom</type>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>org.apache.geronimo.st.core</artifactId>
+            <version>${version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>org.apache.geronimo.runtime.v21</artifactId>
+            <version>${version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>org.apache.geronimo.runtime.common</artifactId>
+            <version>${version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.devtools</groupId>
+            <artifactId>org.apache.geronimo.v11.deployment.model</artifactId>
+            <version>${version}</version>
+        </dependency>
+    </dependencies>
+</project>

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/Activator.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/Activator.java?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/Activator.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/Activator.java Fri Jan 11 18:38:22 2008
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.v21.core;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ *
+ * @version $Rev: 499184 $ $Date: 2007-01-23 18:36:18 -0500 (Tue, 23 Jan 2007) $
+ */
+public class Activator extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.apache.geronimo.st.v21.core";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+	
+	public static void log(int severity, String message, Throwable throwable) {
+		plugin.getLog().log(new Status(severity, PLUGIN_ID, 0, message, throwable));
+	}
+}

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/DeploymentPlanInstallConfig.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/DeploymentPlanInstallConfig.java?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/DeploymentPlanInstallConfig.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/DeploymentPlanInstallConfig.java Fri Jan 11 18:38:22 2008
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.v21.core;
+
+import org.apache.geronimo.st.v21.core.internal.Trace;
+import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
+
+
+/**
+ * @version $Rev: 588513 $ $Date: 2007-10-26 00:14:23 -0400 (Fri, 26 Oct 2007) $
+ */
+public class DeploymentPlanInstallConfig {
+	
+	private String groupId;
+	
+	private String artifactId;
+	
+	private String version;
+	
+	private String type;
+	
+	private boolean sharedLib;
+	
+    public static final class Factory implements IActionConfigFactory
+    {
+        public Object create()
+        {
+        	Trace.trace("Entry/Exit", "DeploymentPlanInstallConfig.create");
+            return new DeploymentPlanInstallConfig();
+        }
+    }
+
+	public String getArtifactId() {
+		return artifactId;
+	}
+
+	public void setArtifactId(String artifactId) {
+		this.artifactId = artifactId;
+	}
+
+	public String getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(String groupId) {
+		this.groupId = groupId;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getVersion() {
+		return version;
+	}
+
+	public void setVersion(String version) {
+		this.version = version;
+	}
+
+	public boolean isSharedLib() {
+		return sharedLib;
+	}
+
+	public void setSharedLib(boolean sharedLib) {
+		this.sharedLib = sharedLib;
+	}
+}

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoRuntime.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoRuntime.java?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoRuntime.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoRuntime.java Fri Jan 11 18:38:22 2008
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.v21.core;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
+import org.apache.geronimo.schema.SchemaConversionUtils;
+import org.apache.geronimo.st.core.GeronimoRuntimeDelegate;
+import org.apache.geronimo.xbeans.geronimo.GerConnectorDocument;
+import org.apache.geronimo.xbeans.geronimo.GerConnectorType;
+import org.apache.geronimo.xbeans.geronimo.j2ee.GerApplicationDocument;
+import org.apache.geronimo.xbeans.geronimo.j2ee.GerApplicationType;
+import org.apache.geronimo.xbeans.geronimo.web.GerWebAppDocument;
+import org.apache.geronimo.xbeans.geronimo.web.GerWebAppType;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * @version $Rev: 509678 $ $Date: 2007-02-20 12:43:17 -0500 (Tue, 20 Feb 2007) $
+ */
+public class GeronimoRuntime extends GeronimoRuntimeDelegate {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.geronimo.st.core.IGeronimoRuntime#fixGeronimoConnectorSchema(org.eclipse.core.resources.IFile)
+	 */
+	public XmlObject fixGeronimoConnectorSchema(IFile plan) throws XmlException {
+            XmlObject xmlplan = getXmlObject(plan);
+            if (plan != null) {
+                SchemaConversionUtils.fixGeronimoSchema(xmlplan, GerConnectorDocument.type.getDocumentElementName(),
+                    GerConnectorType.type);
+                save(xmlplan, plan);
+            }	
+            return xmlplan;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.geronimo.st.core.IGeronimoRuntime#fixGeronimoEarSchema(org.eclipse.core.resources.IFile)
+	 */
+	public XmlObject fixGeronimoEarSchema(IFile plan) throws XmlException {
+            XmlObject xmlplan = getXmlObject(plan);
+            if (plan != null) {
+                SchemaConversionUtils.fixGeronimoSchema(xmlplan, GerApplicationDocument.type.getDocumentElementName(),
+                    GerApplicationType.type);
+                save(xmlplan, plan);
+            }
+            return xmlplan;
+    }
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.geronimo.st.core.IGeronimoRuntime#fixGeronimoEjbSchema(org.eclipse.core.resources.IFile)
+	 */
+	public XmlObject fixGeronimoEjbSchema(IFile plan) throws XmlException {
+            XmlObject xmlplan = getXmlObject(plan);
+            //FIXME
+            /*if (plan != null) {
+                SchemaConversionUtils.fixGeronimoSchema(xmlplan, OpenejbOpenejbJarDocument.type.getDocumentElementName(), OpenejbOpenejbJarType.type);
+                save(xmlplan, plan);
+            }*/
+            return xmlplan;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.geronimo.st.core.IGeronimoRuntime#fixGeronimoWebSchema(org.eclipse.core.resources.IFile)
+	 */
+	public XmlObject fixGeronimoWebSchema(IFile plan) throws XmlException {
+            XmlObject xmlplan = getXmlObject(plan);
+            if (plan != null) {
+                SchemaConversionUtils.fixGeronimoSchema(xmlplan, GerWebAppDocument.type.getDocumentElementName(),
+                    GerWebAppType.type);
+                save(xmlplan, plan);
+            }
+            return xmlplan; 
+	}
+	
+	private XmlObject getXmlObject(IFile plan) {
+		if (plan.exists()) {
+			try {
+				return XmlBeansUtil.parse(plan.getLocation().toFile().toURL(), null);
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			} catch (XmlException e) {
+				e.printStackTrace();
+			}
+		}
+		return null;
+	}
+
+ 	private void save(XmlObject object, IFile file) {
+        try {
+ 	        object.save(file.getLocation().toFile());
+ 	        file.refreshLocal(IFile.DEPTH_ONE, null);
+ 	    } catch (IOException e) {
+ 	          e.printStackTrace();
+ 	    } catch (CoreException e) {
+ 		     e.printStackTrace();
+ 	    }
+ 	}
+}

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoServer.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoServer.java?rev=611355&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoServer.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/org/apache/geronimo/st/v21/core/GeronimoServer.java Fri Jan 11 18:38:22 2008
@@ -0,0 +1,203 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.v21.core;
+
+import java.io.File;
+import javax.enterprise.deploy.spi.DeploymentManager;
+import javax.enterprise.deploy.spi.factories.DeploymentFactory;
+
+import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
+import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
+import org.apache.geronimo.st.core.GeronimoRuntimeDelegate;
+import org.apache.geronimo.st.core.GeronimoServerDelegate;
+import org.apache.geronimo.st.core.IGeronimoVersionHandler;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.LibraryLocation;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.util.SocketUtil;
+
+/**
+ * @version $Rev: 554980 $ $Date: 2007-07-10 11:35:58 -0400 (Tue, 10 Jul 2007) $
+ */
+public class GeronimoServer extends GeronimoServerDelegate {
+
+    public static final String PROPERTY_IN_PLACE_SHARED_LIB = "inPlaceSharedLib";
+    public static final String PROPERTY_RUN_FROM_WORKSPACE = "runFromWorkspace";
+
+    private static IGeronimoVersionHandler versionHandler = null;
+
+    private static DeploymentFactory deploymentFactory;
+
+    static {
+        deploymentFactory = new DeploymentFactoryImpl();
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.geronimo.st.core.GenericGeronimoServer#getContextRoot(org.eclipse.wst.server.core.IModule)
+     */
+    public String getContextRoot(IModule module) {
+        return GeronimoV21Utils.getContextRoot(module);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#getDeployerURL()
+     */
+    public String getDeployerURL() {
+        return "deployer:geronimo:jmx://" + getServer().getHost() + ":" + getRMINamingPort();
+    }
+
+    @Override
+    public String getVMArgs() {
+        String runtimeLocation = getServer().getRuntime().getLocation().toString();
+        GeronimoRuntimeDelegate geronimoRuntimeDelegate = (GeronimoRuntimeDelegate) getServer().getRuntime().getAdapter(GeronimoRuntimeDelegate.class);
+        if (geronimoRuntimeDelegate == null) {
+            geronimoRuntimeDelegate = (GeronimoRuntimeDelegate) getServer().getRuntime().loadAdapter(GeronimoRuntimeDelegate.class,new NullProgressMonitor());
+        }
+        IVMInstall vmInstall = geronimoRuntimeDelegate.getVMInstall();
+        String vmInstallLocation = vmInstall.getInstallLocation().getAbsolutePath() + "/jre";
+
+        LibraryLocation[] libLocations = JavaRuntime.getLibraryLocations(vmInstall);
+        IPath vmLibDir = null;
+        for(int i = 0; i < libLocations.length; i++) {
+            LibraryLocation loc = libLocations[i];
+            IPath libDir = loc.getSystemLibraryPath().removeLastSegments(2);
+            if(libDir.toOSString().endsWith("lib")) {
+                vmLibDir = libDir;
+                break;
+            }
+        }
+
+        String cp = System.getProperty("path.separator");
+
+        //-javaagent:"GERONIMO_BASE/bin/jpa.jar"
+        String javaagent = "";
+        File jpaJar = new File(runtimeLocation + "/bin/jpa.jar");
+        if (jpaJar.exists()) {
+            javaagent = "-javaagent:\"" + runtimeLocation + "/bin/jpa.jar\"";
+        }
+
+        //-Djava.ext.dirs="GERONIMO_BASE/lib/ext;JRE_HOME/lib/ext"
+        String javaExtDirs = "-Djava.ext.dirs=\"" + runtimeLocation + "/lib/ext" + cp + vmLibDir.append("ext").toOSString() + "\"";
+
+        //-Djava.endorsed.dirs="GERONIMO_BASE/lib/endorsed;JRE_HOME/lib/endorsed"
+        String javaEndorsedDirs = "-Djava.endorsed.dirs=\"" + runtimeLocation + "/lib/endorsed" + cp + vmLibDir.append("endorsed").toOSString() + "\"";
+
+        //-Dorg.apache.geronimo.base.dir="GERONIMO_BASE"
+        String baseDir = "-Dorg.apache.geronimo.base.dir=" + runtimeLocation;
+
+        String vmArgs = javaagent + " " + javaExtDirs + " " + javaEndorsedDirs;
+
+        String superVMArgs = super.getVMArgs();
+        if (superVMArgs != null) {
+            vmArgs += " " + superVMArgs;
+        }
+
+        return vmArgs;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#getJMXServiceURL()
+     */
+    public String getJMXServiceURL() {
+        String host = getServer().getHost();
+        return "service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":" + getRMINamingPort() + "/JMXConnector";
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#getJSR88DeployerJar()
+     */
+    public IPath getJSR88DeployerJar() {
+        return getServer().getRuntime().getLocation().append("/lib/jsr88-deploymentfactory.jar");
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#getDeploymentFactory()
+     */
+    public DeploymentFactory getDeploymentFactory() {
+        return deploymentFactory;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#configureDeploymentManager(javax.enterprise.deploy.spi.DeploymentManager)
+     */
+    public void configureDeploymentManager(DeploymentManager dm) {
+        ((JMXDeploymentManager) dm).setLogConfiguration(true, true);
+        boolean enableInPlace = SocketUtil.isLocalhost(getServer().getHost()) && isRunFromWorkspace();
+        setInPlaceDeployment(dm, enableInPlace);
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.geronimo.st.core.IGeronimoServer#getVersionHandler()
+     */
+    public IGeronimoVersionHandler getVersionHandler() {
+        if (versionHandler == null)
+            versionHandler = new GeronimoV21VersionHandler();
+        return versionHandler;
+    }
+
+    public void setInPlaceDeployment(DeploymentManager dm, boolean enable) {
+        ((JMXDeploymentManager) dm).setInPlace(enable);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.geronimo.st.core.IGeronimoServer#isInPlace()
+     */
+    public boolean isInPlaceSharedLib() {
+        return getAttribute(PROPERTY_IN_PLACE_SHARED_LIB, false);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.geronimo.st.core.IGeronimoServer#isRunFromWorkspace()
+     */
+    public boolean isRunFromWorkspace() {
+        return getAttribute(PROPERTY_RUN_FROM_WORKSPACE, false);
+    }
+
+    public void setInPlaceSharedLib(boolean enable) {
+        setAttribute(PROPERTY_IN_PLACE_SHARED_LIB, enable);
+    }
+
+    public void setRunFromWorkspace(boolean enable) {
+        setAttribute(PROPERTY_RUN_FROM_WORKSPACE, enable);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.geronimo.st.core.GeronimoServerDelegate#setDefaults(org.eclipse.core.runtime.IProgressMonitor)
+     */
+    public void setDefaults(IProgressMonitor monitor) {
+        super.setDefaults(monitor);
+        setInPlaceSharedLib(false);
+        setRunFromWorkspace(false);
+    }
+
+}
\ No newline at end of file