You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by rg...@apache.org on 2004/12/14 00:35:48 UTC
svn commit: r111764 - in forrest/trunk/tools/eclipse: . src/org/apache/forrest src/org/apache/forrest/eclipse src/org/apache/forrest/eclipse/job src/org/apache/forrest/eclipse/popup/actions
Author: rgardler
Date: Mon Dec 13 15:35:48 2004
New Revision: 111764
URL: http://svn.apache.org/viewcvs?view=rev&rev=111764
Log:
refactoring to allow more controllable execution of Forrest
Added:
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestBuilder.java (contents, props changed)
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestJob.java (contents, props changed)
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestManager.java (contents, props changed)
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestStopper.java (contents, props changed)
Removed:
forrest/trunk/tools/eclipse/src/org/apache/forrest/ForrestRunner.java
Modified:
forrest/trunk/tools/eclipse/.classpath
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java
Modified: forrest/trunk/tools/eclipse/.classpath
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/.classpath?view=diff&rev=111764&p1=forrest/trunk/tools/eclipse/.classpath&r1=111763&p2=forrest/trunk/tools/eclipse/.classpath&r2=111764
==============================================================================
--- forrest/trunk/tools/eclipse/.classpath (original)
+++ forrest/trunk/tools/eclipse/.classpath Mon Dec 13 15:35:48 2004
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/"/>
- <classpathentry exported="true" kind="lib" path="lib/ant-apache-log4j.jar"/>
<classpathentry exported="true" kind="lib" path="lib/log4j-1.2.9.jar"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
Deleted: /forrest/trunk/tools/eclipse/src/org/apache/forrest/ForrestRunner.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/ForrestRunner.java?view=auto&rev=111763
==============================================================================
Modified: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java?view=diff&rev=111764&p1=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java&r1=111763&p2=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java&r2=111764
==============================================================================
--- forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java (original)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/ForrestPlugin.java Mon Dec 13 15:35:48 2004
@@ -30,6 +30,7 @@
* The main plugin class to be used in the desktop.
*/
public class ForrestPlugin extends AbstractUIPlugin {
+ public final static String ID = "org.apache.forrest.eclipse";
//The shared instance.
private static ForrestPlugin plugin;
Added: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestBuilder.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestBuilder.java?view=auto&rev=111764
==============================================================================
--- (empty file)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestBuilder.java Mon Dec 13 15:35:48 2004
@@ -0,0 +1,66 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.forrest.eclipse.job;
+
+import java.io.File;
+
+import org.apache.forrest.eclipse.ForrestPlugin;
+import org.apache.forrest.eclipse.preference.ForrestPreferences;
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+
+/**
+ * Run a version of FOrrest
+ */
+public class ForrestBuilder extends ForrestJob {
+ /**
+ * Logger for this class
+ */
+ protected static final Logger logger = Logger.getLogger(ForrestBuilder.class);
+
+ /**
+ * Create a Forrest runner that will run a JEtty server on a given directory
+ * @param workingDir - the working directory for the command
+ */
+ protected ForrestBuilder(String workingDir) {
+ super("Forrest Runner");
+
+ this.workingDir = workingDir;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public IStatus run(IProgressMonitor monitor) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("run(IProgressMonitor) - start");
+ }
+
+ IStatus status = null;
+ String fhome = ForrestPlugin.getDefault().getPluginPreferences()
+ .getString(ForrestPreferences.FORREST_HOME);
+ StringBuffer sb = new StringBuffer("-Dproject.home=");
+ sb.append(workingDir);
+ sb.append(" -Dbasedir=");
+ sb.append(fhome + File.separatorChar + "main");
+ sb.append(" site");
+ status = runAnt(monitor, sb.toString());
+ return status;
+ }
+
+}
\ No newline at end of file
Added: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestJob.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestJob.java?view=auto&rev=111764
==============================================================================
--- (empty file)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestJob.java Mon Dec 13 15:35:48 2004
@@ -0,0 +1,85 @@
+/*
+ * Created on 13-Dec-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.forrest.eclipse.job;
+
+import java.io.File;
+import java.net.URL;
+
+import org.apache.forrest.eclipse.ForrestPlugin;
+import org.apache.forrest.eclipse.preference.ForrestPreferences;
+import org.apache.log4j.Logger;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.eclipse.ant.core.AntRunner;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+
+/**
+ * @author Ross Gardler
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public abstract class ForrestJob extends Job {
+ /**
+ * Logger for this class
+ */
+ protected static final Logger logger = Logger.getLogger(ForrestJob.class);
+
+ public static final int EXCEPTION_UNIDENTIFIED = 1001;
+
+ /**
+ * @param name
+ */
+ public ForrestJob(String name) {
+ super(name);
+
+ ForrestPlugin plugin = ForrestPlugin.getDefault();
+ URL urlPluginDir = plugin.getBundle().getEntry("/");
+ String strLog4jConf = "D:\\projects\\burrokeet\\forrestplugin\\conf\\log4j.xml";
+ DOMConfigurator.configure(strLog4jConf);
+ }
+
+ protected String workingDir;
+
+ /**
+ * @param monitor
+ * @param cmdString
+ * @return
+ */
+ protected IStatus runAnt(IProgressMonitor monitor, String cmdString) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("runAnt(IProgressMonitor, String) - start");
+ }
+
+ IStatus status = Status.OK_STATUS;
+
+ if (cmdString != null) {
+ String fhome = ForrestPlugin.getDefault().getPluginPreferences()
+ .getString(ForrestPreferences.FORREST_HOME);
+ AntRunner runner = new AntRunner();
+ String antFile = fhome + File.separatorChar + "main" + File.separatorChar + "forrest.build.xml";
+ try {
+ runner.setBuildFileLocation(antFile);
+ runner.setArguments(cmdString);
+ logger.info("Running ANT with command string = " + cmdString);
+ runner.run(monitor);
+ } catch (CoreException e) {
+ logger.error("run(IProgressMonitor)", e);
+ status = new Status(Status.ERROR, null, ForrestRunner.EXCEPTION_UNIDENTIFIED, "Forrest Server Exception", null);
+ }
+ }
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("runAnt(IProgressMonitor, String) - end");
+ }
+ return status;
+ }
+
+}
Added: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestManager.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestManager.java?view=auto&rev=111764
==============================================================================
--- (empty file)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestManager.java Mon Dec 13 15:35:48 2004
@@ -0,0 +1,74 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.forrest.eclipse.job;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.jobs.Job;
+
+/**
+ * Manages instances of Forrest that are running on the local server.
+ */
+public class ForrestManager {
+ /**
+ * Logger for this class
+ */
+ private static final Logger logger = Logger.getLogger(ForrestManager.class);
+
+ public static final String COMMAND_BUILD = "site";
+ public static final String COMMAND_START = "run";
+ public static final String COMMAND_STOP = "stop";
+
+ private static final int UNKOWN_COMMAND = 0;
+ private static final int BUILD = 1;
+ private static final int START = 2;
+ private static final int STOP = 3;
+
+ private static final ForrestManager INSTANCE = new ForrestManager();
+
+ /**
+ * Create a manager, this is not intended to be called from your code.
+ * Use Manager.getInstance() instead.
+ */
+ private ForrestManager() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public static ForrestManager getInstance() {
+ return ForrestManager.INSTANCE;
+ }
+
+ /**
+ * Create a Forrest Job.
+ * @param workingDir - the directory on which the job is to work
+ * @param cmd - the command the job is to carry out
+ * @return
+ */
+ public Job getForrestJob(String workingDir, String cmd) {
+ Job theJob;
+ if (cmd.equals(COMMAND_STOP)) {
+ theJob = new ForrestStopper(workingDir);
+ } else if (cmd.equals(COMMAND_START)){
+ theJob = new ForrestRunner(workingDir);
+ } else if (cmd.equals(COMMAND_BUILD)) {
+ theJob = new ForrestBuilder(workingDir);
+ } else {
+ theJob = null;
+ }
+ return theJob;
+ }
+
+}
Added: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java?view=auto&rev=111764
==============================================================================
--- (empty file)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java Mon Dec 13 15:35:48 2004
@@ -0,0 +1,74 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.forrest.eclipse.job;
+
+import java.io.File;
+
+import org.apache.forrest.eclipse.ForrestPlugin;
+import org.apache.forrest.eclipse.preference.ForrestPreferences;
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+
+/**
+ * Run a version of FOrrest
+ */
+public class ForrestRunner extends ForrestJob {
+ /**
+ * Logger for this class
+ */
+ protected static final Logger logger = Logger.getLogger(ForrestRunner.class);
+
+ private static final int EXCEPTION_UNABLE_TO_START = 2010;
+ private static final int EXCEPTION_UNABLE_TO_STOP = 2020;
+
+ /**
+ * Create a Forrest runner that will run a JEtty server on a given directory
+ * @param workingDir - the working directory for the command
+ */
+ protected ForrestRunner(String workingDir) {
+ super("Forrest Runner");
+
+ this.workingDir = workingDir;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public IStatus run(IProgressMonitor monitor) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("run(IProgressMonitor) - start");
+ }
+
+ IStatus status = null;
+ String fhome = ForrestPlugin.getDefault().getPluginPreferences()
+ .getString(ForrestPreferences.FORREST_HOME);
+ StringBuffer sb = new StringBuffer("-Dproject.home=");
+ sb.append(workingDir);
+ sb.append(" -Dbasedir=");
+ sb.append(fhome + File.separatorChar + "main");
+ sb.append(" ");
+ sb.append("run");
+
+ status = runAnt(monitor, sb.toString());
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("run(IProgressMonitor) - end");
+ }
+ return status;
+ }
+}
\ No newline at end of file
Added: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestStopper.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestStopper.java?view=auto&rev=111764
==============================================================================
--- (empty file)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestStopper.java Mon Dec 13 15:35:48 2004
@@ -0,0 +1,60 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed 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.forrest.eclipse.job;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+
+/**
+ * Run a version of FOrrest
+ */
+public class ForrestStopper extends ForrestJob {
+ /**
+ * Logger for this class
+ */
+ protected static final Logger logger = Logger.getLogger(ForrestStopper.class);
+
+ /**
+ * Create a Forrest runner that will run a JEtty server on a given directory
+ * @param workingDir - the working directory for the command
+ */
+ protected ForrestStopper(String workingDir) {
+ super("Forrest Runner");
+
+ this.workingDir = workingDir;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public IStatus run(IProgressMonitor monitor) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("run(IProgressMonitor) - start");
+ }
+
+ IStatus status = null;
+
+ logger.warn("run() - Forrest server not stopped", null);
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("run(IProgressMonitor) - end");
+ }
+ return status;
+ }
+
+}
\ No newline at end of file
Modified: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java?view=diff&rev=111764&p1=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java&r1=111763&p2=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java&r2=111764
==============================================================================
--- forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java (original)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/BuildSite.java Mon Dec 13 15:35:48 2004
@@ -15,8 +15,8 @@
*/
package org.apache.forrest.eclipse.popup.actions;
-import org.apache.forrest.ForrestRunner;
import org.apache.forrest.eclipse.ForrestPlugin;
+import org.apache.forrest.eclipse.job.ForrestManager;
import org.apache.forrest.eclipse.preference.ForrestPreferences;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -80,7 +80,7 @@
IPath workingDirectory = activeProject.getLocation();
- Job forrest = new ForrestRunner(workingDirectory.toOSString(), "site");
+ Job forrest = ForrestManager.getInstance().getForrestJob(workingDirectory.toOSString(), ForrestManager.COMMAND_BUILD);
forrest.setUser(true);
forrest.schedule();
}
Modified: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java?view=diff&rev=111764&p1=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java&r1=111763&p2=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java&r2=111764
==============================================================================
--- forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java (original)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StartForrest.java Mon Dec 13 15:35:48 2004
@@ -15,8 +15,8 @@
*/
package org.apache.forrest.eclipse.popup.actions;
-import org.apache.forrest.ForrestRunner;
import org.apache.forrest.eclipse.ForrestPlugin;
+import org.apache.forrest.eclipse.job.ForrestManager;
import org.apache.forrest.eclipse.preference.ForrestPreferences;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -86,7 +86,7 @@
return;
}
- Job forrest = new ForrestRunner(workingDirectory.toOSString(), ForrestRunner.COMMAND_START);
+ Job forrest = ForrestManager.getInstance().getForrestJob(workingDirectory.toOSString(), ForrestManager.COMMAND_START);
forrest.setUser(true);
forrest.schedule();
}
Modified: forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java
Url: http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java?view=diff&rev=111764&p1=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java&r1=111763&p2=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java&r2=111764
==============================================================================
--- forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java (original)
+++ forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/popup/actions/StopForrest.java Mon Dec 13 15:35:48 2004
@@ -15,7 +15,7 @@
*/
package org.apache.forrest.eclipse.popup.actions;
-import org.apache.forrest.ForrestRunner;
+import org.apache.forrest.eclipse.job.ForrestManager;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.jobs.Job;
@@ -49,7 +49,7 @@
*/
public void run(IAction action) {
IPath workingDirectory = activeProject.getLocation();
- Job forrest = new ForrestRunner(workingDirectory.toOSString(), ForrestRunner.COMMAND_STOP);
+ Job forrest = ForrestManager.getInstance().getForrestJob(workingDirectory.toOSString(), ForrestManager.COMMAND_STOP);
forrest.setUser(true);
forrest.schedule();
}