Author: rob.stryker(a)jboss.com
Date: 2011-01-18 19:49:46 -0500 (Tue, 18 Jan 2011)
New Revision: 28376
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonJob.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonXMLUtil.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
Log:
hudson tooling in workspace - checking in so nick can play
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF 2011-01-19
00:49:46 UTC (rev 28376)
@@ -9,7 +9,29 @@
org.eclipse.equinox.security;bundle-version="1.0.200"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.jboss.tools.hudson.manager.core,
+Export-Package: org.apache.commons.httpclient,
+ org.apache.commons.httpclient.auth,
+ org.apache.commons.httpclient.cookie,
+ org.apache.commons.httpclient.methods,
+ org.apache.commons.httpclient.methods.multipart,
+ org.apache.commons.httpclient.params,
+ org.apache.commons.httpclient.protocol,
+ org.apache.commons.httpclient.util,
+ org.dom4j,
+ org.dom4j.bean,
+ org.dom4j.datatype,
+ org.dom4j.dom,
+ org.dom4j.dtd,
+ org.dom4j.io,
+ org.dom4j.jaxb,
+ org.dom4j.rule,
+ org.dom4j.rule.pattern,
+ org.dom4j.swing,
+ org.dom4j.tree,
+ org.dom4j.util,
+ org.dom4j.xpath,
+ org.dom4j.xpp,
+ org.jboss.tools.hudson.manager.core,
org.jboss.tools.hudson.manager.core.jobs,
org.jboss.tools.hudson.manager.core.model
Bundle-ClassPath: libs/commons-httpclient-3.1.jar,
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonJob.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonJob.java 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonJob.java 2011-01-19
00:49:46 UTC (rev 28376)
@@ -1,19 +1,20 @@
package org.jboss.tools.hudson.manager.core.model;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.jboss.tools.hudson.manager.core.util.HudsonXMLUtil;
public class HudsonJob {
private HudsonServer fserver;
@@ -25,9 +26,13 @@
this.furl = url;
this.fcolor = color;
}
- public static String getTrimJobUrl(HudsonServer server, String name) {
- return server.getTrimUrl() + "job" + Path.SEPARATOR + name + Path.SEPARATOR +
HudsonModel.API_XML_DEPT_1;
+ public static String getTrimJobUrl(HudsonServer server, String jobName) {
+ return server.getTrimUrl() + "job" + Path.SEPARATOR + jobName +
Path.SEPARATOR + HudsonModel.API_XML_DEPT_1;
}
+ public static String getConfigXMLUrl(HudsonServer server, String jobName) {
+ return server.getTrimUrl() + "job" + Path.SEPARATOR + jobName +
Path.SEPARATOR + HudsonModel.CONFIG_XML;
+ }
+
public HudsonServer getServer() {
return fserver;
}
@@ -41,6 +46,23 @@
return fcolor;
}
+ public String fetchJobConfigXml() {
+ String url = getConfigXMLUrl(fserver, fname);
+ try {
+// String url =
"http://hudson.qa.jboss.com/hudson/view/DevStudio_Trunk/job/jbosstools-3.2_trunk.component--as/config.xml";
+ HttpClient client = new HudsonXMLUtil().getHttpClient(
+ fserver.getTrimUrl(), fserver.getUser(), fserver.getPassword());
+ HttpMethod method = new GetMethod(url);
+ client.executeMethod(method);
+ if(method.getStatusCode() / 100 != 2 ) {
+ Document dom = new SAXReader().read(method.getResponseBodyAsStream());
+ return dom.asXML();
+ }
+ } catch(Exception e) {
+ }
+ return null;
+ }
+
public boolean detailsLoaded() {
return fdetails != null;
}
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java 2011-01-19
00:49:46 UTC (rev 28376)
@@ -25,6 +25,7 @@
public class HudsonModel {
public static final String API_XML = "api/xml";
public static final String API_XML_DEPT_1 = API_XML + "?depth=1";
+ public static final String CONFIG_XML = "config.xml";
private static HudsonModel instance = null;
public static HudsonModel getInstance() {
@@ -175,6 +176,7 @@
repo.put(url, document);
} catch(Exception e) {
// TODO log
+ e.printStackTrace();
}
}
}
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonXMLUtil.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonXMLUtil.java 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonXMLUtil.java 2011-01-19
00:49:46 UTC (rev 28376)
@@ -21,22 +21,20 @@
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
public class HudsonXMLUtil {
private boolean verbose = false;
- private String USERNAME = "admin";
- private String PASSWORD = "chestnuts";
- private String hudsonURL = "http://localhost:8080/";
// use like this to submit an updated config.xml to the server:
// postXML(configXMLFile, null, hudsonURL + "job/" + jobName +
// "/config.xml", true);
- private String[] postXML(String xmlFile, String xmlContents, String jobURL,
- boolean getErrorMessage) {
- return postXML(new File(xmlFile), xmlContents, jobURL, getErrorMessage);
- }
+// private String[] postXML(String xmlFile, String xmlContents, String jobURL,
+// boolean getErrorMessage) {
+// return postXML(new File(xmlFile), xmlContents, jobURL, getErrorMessage);
+// }
/**
*
@@ -46,11 +44,12 @@
* @param getErrorMessage - return a string[] containing result code, or code + message
* @return
*/
- private String[] postXML(File xmlFile, String xmlContents, String jobURL,
+ private String[] postXML(HudsonJob job,
+ File xmlFile, String xmlContents,
boolean getErrorMessage) {
int resultCode = -1;
String responseBody = "";
- PostMethod post = new PostMethod(jobURL);
+ PostMethod post = new PostMethod(job.getUrl());
HttpClient client = null;
if (xmlFile == null && xmlContents != null) {
@@ -91,7 +90,8 @@
post.setRequestHeader("Content-type", "text/xml;
charset=ISO-8859-1");
if (client == null) {
- client = getHttpClient(USERNAME, PASSWORD);
+ client = getHttpClient(job.getServer().getUrl(),
+ job.getServer().getUser(), job.getServer().getPassword());
}
try {
resultCode = client.executeMethod(post);
@@ -172,13 +172,13 @@
return out;
}
- public HttpClient getHttpClient(String username, String password) {
+ public HttpClient getHttpClient(String rootUrl, String username, String password) {
HttpClient client = new HttpClient();
// establish a connection within 5 seconds
client.getHttpConnectionManager().getParams()
.setConnectionTimeout(5000);
- if (hudsonURL.indexOf("localhost") >= 0) {
+ if (rootUrl.indexOf("localhost") >= 0) {
/* simpler authentication method, may not work w/ secured Hudson */
Credentials creds = new UsernamePasswordCredentials(username,
password);
@@ -186,7 +186,7 @@
client.getState().setCredentials(AuthScope.ANY, creds);
}
} else {
- GetMethod login = new GetMethod(hudsonURL + "loginEntry");
+ GetMethod login = new GetMethod(rootUrl + "loginEntry");
try {
client.executeMethod(login);
} catch (HttpException e) {
@@ -200,7 +200,7 @@
e.printStackTrace();
}
- String location = hudsonURL + "j_security_check";
+ String location = rootUrl + "j_security_check";
while (true) {
PostMethod loginMethod = new PostMethod(location);
loginMethod.addParameter("j_username", username);
@@ -232,7 +232,7 @@
return client;
}
- private static void checkResult(int i, URI uri) throws IOException {
+ public static void checkResult(int i, URI uri) throws IOException {
if (i / 100 != 2) {
// System.out.println("[WARN] Got result: " + i + " for "+
// uri.toString());
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF 2011-01-19
00:49:46 UTC (rev 28376)
@@ -20,3 +20,17 @@
org.jboss.tools.hudson.manager.core;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.dom4j,
+ org.dom4j.bean,
+ org.dom4j.datatype,
+ org.dom4j.dom,
+ org.dom4j.dtd,
+ org.dom4j.io,
+ org.dom4j.jaxb,
+ org.dom4j.rule,
+ org.dom4j.rule.pattern,
+ org.dom4j.swing,
+ org.dom4j.tree,
+ org.dom4j.util,
+ org.dom4j.xpath,
+ org.dom4j.xpp
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java 2011-01-19
00:36:28 UTC (rev 28375)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java 2011-01-19
00:49:46 UTC (rev 28376)
@@ -1,5 +1,6 @@
package org.jboss.tools.hudson.manager.ui.views;
+import org.dom4j.Document;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.Separator;
@@ -14,7 +15,9 @@
public class HudsonActionProvider extends AbstractCommonNavActionProvider {
private Action newConnectionAction, deleteConnectionAction,
- refreshJobAction, openBuiltOnAction;
+ refreshJobAction, openBuiltOnAction,
+ printConfigXml;
+
public HudsonActionProvider() {
super();
}
@@ -31,8 +34,10 @@
menu.add(visible);
if (first == null)
return;
- if( getSelectedItem() instanceof HudsonJob )
+ if( getSelectedItem() instanceof HudsonJob ) {
menu.add(refreshJobAction);
+ menu.add(this.printConfigXml);
+ }
if( getSelectedItem() instanceof JobBuild) {
menu.add(openBuiltOnAction);
String builtOn = ((JobBuild)getSelectedItem()).getBuiltOn();
@@ -80,6 +85,17 @@
}
};
openBuiltOnAction.setText("Open Build Machine");
+ printConfigXml = new Action() {
+ public void run() {
+ tempAction();
+ }
+ };
+ printConfigXml.setText("Print Config.xml");
+
}
//http://hudson.qa.jboss.com/hudson/computer/dev90-linux/
+ public void tempAction() {
+ HudsonJob j = ((HudsonJob)getSelectedItem());
+ System.out.println(j.fetchJobConfigXml());
+ }
}