Author: rob.stryker(a)jboss.com
Date: 2011-01-12 20:55:02 -0500 (Wed, 12 Jan 2011)
New Revision: 28170
Added:
workspace/rstryker/hudson/
workspace/rstryker/hudson/plugins/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.classpath
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.project
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.settings/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.settings/org.eclipse.jdt.core.prefs
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/bin/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/build.properties
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/commons-httpclient-3.1.jar
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/dom4j-1.6.1.jar
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/maven-plugin-api-2.0.jar
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/Activator.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonJobJob.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonModelJob.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/
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/model/HudsonServer.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonUtil.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/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.classpath
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.project
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.settings/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.settings/org.eclipse.jdt.core.prefs
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/Activator.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1$1.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$DelayObject.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.class
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/build.properties
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/plugin.xml
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/Activator.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java
Log:
adding hudson tooling for nick
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.classpath
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.classpath
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.classpath 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib" path="libs/dom4j-1.6.1.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-httpclient-3.1.jar"/>
+ <classpathentry kind="lib"
path="libs/maven-plugin-api-2.0.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.project
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.project
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.project 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.hudson.manager.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:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/.settings/org.eclipse.jdt.core.prefs 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,8 @@
+#Tue Jan 11 05:37:08 GMT+08:00 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Added:
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
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Core
+Bundle-SymbolicName: org.jboss.tools.hudson.manager.core
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.tools.hudson.manager.core.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: 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,
+ libs/dom4j-1.6.1.jar,
+ libs/maven-plugin-api-2.0.jar,
+ .
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/build.properties
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/build.properties
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/build.properties 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ libs/commons-httpclient-3.1.jar,\
+ libs/dom4j-1.6.1.jar,\
+ libs/maven-plugin-api-2.0.jar
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/commons-httpclient-3.1.jar
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/commons-httpclient-3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/dom4j-1.6.1.jar
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/dom4j-1.6.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/maven-plugin-api-2.0.jar
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/libs/maven-plugin-api-2.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/Activator.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/Activator.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/Activator.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,50 @@
+package org.jboss.tools.hudson.manager.core;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.hudson.manager.core";
//$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#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;
+ }
+
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonJobJob.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonJobJob.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonJobJob.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,31 @@
+package org.jboss.tools.hudson.manager.core.jobs;
+
+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;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+
+public class LoadHudsonJobJob extends Job {
+ private Runnable postJob = null;
+ private HudsonServer server;
+ public LoadHudsonJobJob(HudsonServer server) {
+ super("Load Hudson Model");
+ this.server = server;
+ }
+
+ public LoadHudsonJobJob(HudsonServer server, Runnable r) {
+ this(server);
+ postJob = r;
+ }
+
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ server.getHudsonJobs();
+ if( postJob != null )
+ postJob.run();
+ return Status.OK_STATUS;
+ }
+
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonModelJob.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonModelJob.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/jobs/LoadHudsonModelJob.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,29 @@
+package org.jboss.tools.hudson.manager.core.jobs;
+
+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;
+import org.jboss.tools.hudson.manager.core.model.HudsonModel;
+
+public class LoadHudsonModelJob extends Job {
+
+ private Runnable postJob = null;
+ public LoadHudsonModelJob() {
+ super("Load Hudson Model");
+ }
+
+ public LoadHudsonModelJob(Runnable r) {
+ this();
+ postJob = r;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ HudsonModel.getInstance().getServers();
+ if( postJob != null )
+ postJob.run();
+ return Status.OK_STATUS;
+ }
+
+}
Added:
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
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonJob.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,125 @@
+package org.jboss.tools.hudson.manager.core.model;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.eclipse.core.runtime.Path;
+
+public class HudsonJob {
+ private HudsonServer fserver;
+ private String fname, furl, fcolor;
+ private JobExtendedDetails fdetails;
+ public HudsonJob(HudsonServer server, String name, String url, String color) {
+ this.fserver = server;
+ this.fname = name;
+ this.furl = url;
+ this.fcolor = color;
+ }
+ public HudsonServer getServer() {
+ return fserver;
+ }
+ public String getName() {
+ return fname;
+ }
+ public String getUrl() {
+ return furl;
+ }
+ public String getColor() {
+ return fcolor;
+ }
+
+ public boolean detailsLoaded() {
+ return fdetails != null;
+ }
+
+ public JobExtendedDetails getDetails() {
+ if( fdetails == null ) {
+ fdetails = loadDetails();
+ }
+ return fdetails;
+ }
+
+ private JobExtendedDetails loadDetails() {
+ try {
+ String url = fserver.getUrl() + "job" + Path.SEPARATOR + fname +
Path.SEPARATOR + HudsonModel.API_XML;
+ URL url2 = new URL(url);
+ Document dom;
+ dom = new SAXReader().read(url2);
+ String xml = dom.asXML();
+ return new JobExtendedDetails(this, xml);
+ } catch( Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static class JobExtendedDetails {
+ private HudsonJob fjob;
+ private String fxml;
+ private JobBuild[] builds = null;
+ public JobExtendedDetails(HudsonJob job, String xml) {
+ this.fjob = job;
+ this.fxml = xml;
+ loadBuilds();
+ }
+
+ public JobBuild[] getBuilds() {
+ if( builds == null )
+ loadBuilds();
+ return builds;
+ }
+
+ private void loadBuilds() {
+ ArrayList<JobBuild> list = new ArrayList<JobBuild>();
+ Document d = getDocument();
+ for (Element job : (List<Element>)
d.getRootElement().elements("build")) {
+ String number = job.elementText("number");
+ String url = job.elementText("url");
+ list.add(new JobBuild(number, url));
+ builds = (JobBuild[]) list.toArray(new JobBuild[list.size()]);
+ }
+ }
+
+ private Document getDocument() {
+ Document document = null;
+ try {
+ document = DocumentHelper.parseText( fxml );
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ }
+ return document;
+ }
+ }
+
+ public static class JobBuild {
+ private String number, url;
+ public JobBuild(String number, String url) {
+ this.number = number;
+ this.url = url;
+ }
+ public String getNumber() {
+ return number;
+ }
+ public String getUrl() {
+ return url;
+ }
+ }
+
+ public static class OtherProject {
+ public static final boolean UP_STREAM = true;
+ public static final boolean DOWN_STREAM = false;
+ private boolean fdirection;
+ private String fname, furl;
+ public OtherProject(boolean direction, String name, String url) {
+ this.fdirection = direction;
+ this.fname = name;
+ this.furl = url;
+ }
+ }
+}
Added:
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
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,52 @@
+package org.jboss.tools.hudson.manager.core.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class HudsonModel {
+ public static final String API_XML = "api/xml";
+
+ private static HudsonModel instance = null;
+ public static HudsonModel getInstance() {
+ if( instance == null ) {
+ instance = new HudsonModel();
+ }
+ return instance;
+ }
+
+ private ArrayList<HudsonServer> hudsons = null;
+ public HudsonModel() {
+
+ }
+
+ public boolean isInitialized() {
+ return hudsons != null;
+ }
+
+ /**
+ * Synchronously load, blocks thread
+ * These are actually probably stored locally in a props file
+ * @return
+ */
+ public HudsonServer[] getServers() {
+ if( hudsons == null ) {
+ HudsonServer[] allServers = loadHudsons();
+ hudsons = new ArrayList<HudsonServer>();
+ hudsons.addAll(Arrays.asList(allServers));
+ }
+ return hudsons.toArray(new HudsonServer[hudsons.size()]);
+ }
+
+ private HudsonServer[] loadHudsons() {
+ return new HudsonServer[]{
+ new HudsonServer("Test1",
"http://hudson.qa.jboss.com/hudson/view/DevStudio_Trunk/"),
+ };
+ }
+
+ public static void delay(int time) {
+ try {
+ Thread.sleep(time);
+ } catch(InterruptedException ie) {
+ }
+ }
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,69 @@
+package org.jboss.tools.hudson.manager.core.model;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+public class HudsonServer {
+ private String name;
+ private String url;
+ private ArrayList<HudsonJob> jobs = null;
+ public HudsonServer(String name, String url) {
+ this.name = name;
+ this.url = url;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getUrl() {
+ return url;
+ }
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public boolean jobsLoaded() {
+ return jobs != null;
+ }
+
+ public synchronized HudsonJob[] getHudsonJobs() {
+ if( jobs == null ) {
+ jobs = new ArrayList<HudsonJob>();
+ HudsonJob[] jobs2 = loadJobs();
+ jobs.addAll(Arrays.asList(jobs2));
+ }
+ return (HudsonJob[]) jobs.toArray(new HudsonJob[jobs.size()]);
+ }
+
+ /**
+ * Synchronous exec!!!
+ * @return
+ */
+ private HudsonJob[] loadJobs() {
+ ArrayList<HudsonJob> list = new ArrayList<HudsonJob>();
+ try {
+ URL url = new URL(this.url + HudsonModel.API_XML);
+ Document dom;
+ dom = new SAXReader().read(url);
+
+ // scan through the job list and print its status
+ for (Element job : (List<Element>)
dom.getRootElement().elements("job")) {
+ String name = job.elementText("name");
+ String url2 = job.elementText("url");
+ String color = job.elementText("color");
+ list.add(new HudsonJob(this, name, url2, color));
+ }
+ } catch(Exception e ) {
+ e.printStackTrace();
+ }
+ return (HudsonJob[]) list.toArray(new HudsonJob[list.size()]);
+ }
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonUtil.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonUtil.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonUtil.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,210 @@
+package org.jboss.tools.hudson.manager.core.util;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+public class HudsonUtil {
+ private boolean verbose = false;
+ private String hudsonURL;
+ // TODO: set as parameter
+ public String JOB_URL_SUFFIX =
+ // "view/DevStudio_Trunk/";
+ // "view/DevStudio_Stable_Branch/";
+ "view/SAVARA/";
+
+ // TODO: set as parameter
+ public String JOBNAME_PATTERN =
+ // "jbosstools-3.2_trunk.component--";
+ "jbosstools-.+_trunk.*|devstudio-.+_trunk.*";
+
+ private static final String INDENT = " ";
+ public static final String JOB = "Job: ";
+ private String username, password;
+
+ //
dom.selectSingleNode("/project/scm/locations/hudson.scm.SubversionSCM_-ModuleLocation[1]/remote")
+ public String listJobsOnSecureServer(String url) throws Exception {
+ HttpClient client = getHttpClient(username, password);
+
+ HttpMethod method = new GetMethod(url);
+ client.executeMethod(method);
+ checkResult(method.getStatusCode());
+
+ StringBuilder sb = new StringBuilder("\n");
+ Document dom = new SAXReader().read(method.getResponseBodyAsStream());
+ // scan through the job list and print its status
+ int i = 0;
+ for (Element job : (List<Element>)
dom.getRootElement().elements("job")) {
+ if (!job.elementText("name").toString()
+ .replaceAll(JOBNAME_PATTERN, "")
+ .equals(job.elementText("name").toString())) {
+ i++;
+ sb.append(String.format("\n[%03d] " + JOB + "%s (%s)", i,
+ job.elementText("url"), job.elementText("color"))
+ + "\n");
+ sb.append("\n");
+ sb.append(getJobConfig(client, job.elementText("name")
+ .toString()));
+ sb.append("\n");
+ sb.append(getJobDetail(client, job.elementText("name")
+ .toString()));
+ sb.append("-----\n");
+ }
+ }
+ return sb.toString();
+ }
+
+ public String getJobConfig(HttpClient client, String name) throws Exception {
+ StringBuilder sb = new StringBuilder();
+ HttpMethod method = new GetMethod(hudsonURL + JOB_URL_SUFFIX + "job/"
+ + name + "/config.xml");
+ client.executeMethod(method);
+ checkResult(method.getStatusCode());
+ Document dom = new SAXReader().read(method.getResponseBodyAsStream());
+
+ // /project/triggers/*/spec/text
+ for (Element trigger : (List<Element>) dom
+ .selectNodes("/project/triggers/*")) {
+ sb.append(String.format(INDENT + "%s: %s", trigger.getName()
+ .replaceAll("hudson.triggers.", ""), trigger
+ .elementText("spec"))
+ + "\n");
+ }
+
+ // /project/builders/hudson.tasks.Maven/mavenName/text
+ // TODO: instead of just reporting this, CHANGE it to maven-3.0.1 and
+ // submit back to server
+ sb.append(INDENT);
+ for (Element trigger : (List<Element>) dom
+ .selectNodes("/project/builders/hudson.tasks.Maven")) {
+ sb.append(trigger.elementText("mavenName") + INDENT);
+ }
+ sb.append("\n");
+
+ // /project/publishers/hudson.tasks.BuildTrigger/childProjects/text
+ for (Element trigger : (List<Element>) dom
+ .selectNodes("/project/publishers/hudson.tasks.BuildTrigger")) {
+ sb.append(String.format(INDENT + "Downstream: %s",
+ trigger.elementText("childProjects"))
+ + "\n");
+ }
+
+ return sb.toString();
+ }
+
+ public String getJobDetail(HttpClient client, String name) throws Exception {
+ StringBuilder sb = new StringBuilder();
+ HttpMethod method = new GetMethod(hudsonURL + JOB_URL_SUFFIX + "job/"
+ + name + "/api/xml?depth=1");
+ client.executeMethod(method);
+ checkResult(method.getStatusCode());
+ Document dom = new SAXReader().read(method.getResponseBodyAsStream());
+
+ sb.append(INDENT
+ + (dom.selectSingleNode("/freeStyleProject/buildable")
+ .getText().equals("true") ? "++ Enabled ++"
+ : "-- Disabled --") + "\n");
+
+ for (Element node : (List<Element>) dom
+ .selectNodes("/freeStyleProject/build")) {
+ // /freeStyleProject/build*/action/cause/shortDescription/text
+ // /freeStyleProject/build*/number/text
+ // /freeStyleProject/build*/result/text
+ for (Element inode : (List<Element>) node
+ .selectNodes("action/cause")) {
+ sb.append(String.format(INDENT + "Build %s (%s): %s",
+ node.elementText("number"), node.elementText("result"),
+ inode.elementText("shortDescription")) + "\n");
+ }
+
+ // /freeStyleProject/build*/changeSet/revision*/module/text
+ // /freeStyleProject/build*/changeSet/revision*/revision/text
+ for (Element inode : (List<Element>) node
+ .selectNodes("changeSet/revision")) {
+
+ // make a valid SVN URL out of the rev and module
+ if (inode.elementText("module").indexOf("svn") > 0) {
+ sb.append(String.format(
+ INDENT + INDENT + "%s",
+ inode.elementText("module").replaceAll(
+ "(trunk|branches|tags)",
+ "!svn/bc/" + inode.elementText("revision")
+ + "/$1"))
+ + "\n");
+ } else {
+ sb.append(String.format(INDENT + INDENT + "%s @ %s",
+ inode.elementText("module"),
+ inode.elementText("revision"))
+ + "\n");
+
+ }
+ }
+ }
+
+ return sb.toString();
+ }
+
+
+ public HttpClient getHttpClient(String username, String password) {
+ HttpClient client = new HttpClient();
+ // establish a connection within 5 seconds
+ client.getHttpConnectionManager().getParams()
+ .setConnectionTimeout(5000);
+
+ GetMethod loginLink = new GetMethod(hudsonURL + "loginEntry");
+ try {
+ client.executeMethod(loginLink);
+ } catch (HttpException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ try {
+ checkResult(loginLink.getStatusCode());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ String location = hudsonURL + "j_security_check";
+ while (true) {
+ PostMethod loginMethod = new PostMethod(location);
+ loginMethod.addParameter("j_username", username);
+ loginMethod.addParameter("j_password", password);
+ loginMethod.addParameter("action", "login");
+ try {
+ client.executeMethod(loginMethod);
+ } catch (HttpException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if (loginMethod.getStatusCode() / 100 == 3) {
+ // Commons HTTP client refuses to handle redirects for POST
+ // so we have to do it manually.
+ location = loginMethod.getResponseHeader("Location").getValue();
+ continue;
+ }
+ try {
+ checkResult(loginMethod.getStatusCode());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ break;
+ }
+ return client;
+ }
+
+ private static void checkResult(int i) throws IOException {
+ if (i / 100 != 2)
+ throw new IOException();
+ }
+
+}
Added:
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
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/util/HudsonXMLUtil.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,5 @@
+package org.jboss.tools.hudson.manager.core.util;
+
+public class HudsonXMLUtil {
+
+}
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.classpath
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.classpath
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.classpath 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.project
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.project
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.project 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.hudson.manager.ui</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:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/.settings/org.eclipse.jdt.core.prefs 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,8 @@
+#Tue Jan 11 05:38:56 GMT+08:00 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Added:
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
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/META-INF/MANIFEST.MF 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Ui
+Bundle-SymbolicName: org.jboss.tools.hudson.manager.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.tools.hudson.manager.ui.Activator
+Require-Bundle: org.eclipse.ui;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.ui.views;bundle-version="[3.4.1,4.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.2.100,2.0.0)",
+ org.eclipse.ui.navigator;bundle-version="3.5.0",
+ org.eclipse.core.expressions;bundle-version="[3.4.200,4.0.0)",
+ org.eclipse.equinox.security;bundle-version="[1.0.100,2.0.0)",
+ org.eclipse.equinox.security.ui;bundle-version="1.0.200",
+ org.jboss.tools.hudson.manager.core;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/Activator.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/Activator.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1$1.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$DelayObject.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider$DelayObject.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.class
===================================================================
(Binary files differ)
Property changes on:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/bin/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/build.properties
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/build.properties
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/build.properties 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/plugin.xml
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/plugin.xml
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/plugin.xml 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.jboss.tools.hudson.manager"
+ name="Hudson">
+ </category>
+ <view
+ name="Hudson Viewer"
+ icon="icons/delta.gif"
+ category="org.jboss.tools.hudson.manager"
+ class="org.jboss.tools.hudson.manager.ui.views.HudsonManagerView"
+ id="org.jboss.tools.hudson.manager.ui.views.HudsonManagerView">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.navigator.navigatorContent">
+ <navigatorContent
+ id="org.jboss.tools.hudson.manager.ui.views.HudsonContentRoot"
+ name="Main Hudson Content"
+ activeByDefault="true"
+ priority="higher"
+ icon="icons/delta.gif"
+
contentProvider="org.jboss.tools.hudson.manager.ui.views.HudsonContentProvider"
+ labelProvider
="org.jboss.tools.hudson.manager.ui.views.HudsonLabelProvider">
+ <triggerPoints>
+ <or>
+ <instanceof
+ value="java.lang.Object">
+ </instanceof>
+ </or>
+ </triggerPoints>
+ <possibleChildren>
+ <or>
+ <instanceof
+ value="java.lang.Object">
+ </instanceof>
+ </or></possibleChildren>
+ </navigatorContent>
+ </extension>
+ <extension
+ point="org.eclipse.ui.navigator.viewer">
+ <viewer
+
viewerId="org.jboss.tools.hudson.manager.ui.views.HudsonManagerView">
+ </viewer>
+ <viewerContentBinding
+
viewerId="org.jboss.tools.hudson.manager.ui.views.HudsonManagerView">
+ <includes>
+ <contentExtension
+ isRoot="true"
+
pattern="org.jboss.tools.hudson.manager.ui.views.HudsonContentRoot">
+ </contentExtension>
+ </includes>
+ </viewerContentBinding>
+ </extension>
+
+</plugin>
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/Activator.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/Activator.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/Activator.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,50 @@
+package org.jboss.tools.hudson.manager.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.hudson.manager.ui";
//$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#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;
+ }
+
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,91 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Display;
+import org.jboss.tools.hudson.manager.core.jobs.LoadHudsonJobJob;
+import org.jboss.tools.hudson.manager.core.jobs.LoadHudsonModelJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonModel;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+
+public class HudsonContentProvider implements ITreeContentProvider {
+ private TreeViewer v;
+ @Override
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ v = (TreeViewer)viewer;
+ }
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ private DelayObject getDelayObject(Object parent) {
+ return new DelayObject(parent);
+ }
+
+ static class DelayObject {
+ private Object parent;
+ public DelayObject(Object parent) {
+ this.parent = parent;
+ }
+ }
+
+ private static Runnable refreshParentRunnable(final TreeViewer v, final Object parent)
{
+ return new Runnable() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ v.refresh(parent);
+ }
+ });
+ }
+ };
+ }
+
+ private Object[] handleRootElement(Object parentElement) {
+ if( !HudsonModel.getInstance().isInitialized()) {
+ final DelayObject delay = getDelayObject(parentElement);
+ new LoadHudsonModelJob(refreshParentRunnable(v, parentElement)).schedule();
+ return new Object[]{delay};
+ }
+ return HudsonModel.getInstance().getServers();
+ }
+
+ private Object[] handleHudsonServer(HudsonServer parent) {
+ if( !parent.jobsLoaded()) {
+ DelayObject delay = getDelayObject(parent);
+ new LoadHudsonJobJob(parent, refreshParentRunnable(v, parent)).schedule();
+ return new Object[]{delay};
+ }
+ return parent.getHudsonJobs();
+ }
+
+ @Override
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement instanceof HudsonManagerView ) {
+ return handleRootElement(parentElement);
+ }
+ if( parentElement instanceof HudsonServer ) {
+ return handleHudsonServer((HudsonServer)parentElement);
+ }
+ if( parentElement instanceof HudsonJob ) {
+ return ((HudsonJob)parentElement).getDetails().getBuilds();
+ }
+ return new String[]{"a", "b", "c"};
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return true;
+ }
+
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,32 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
+import org.jboss.tools.hudson.manager.ui.views.HudsonContentProvider.DelayObject;
+
+public class HudsonLabelProvider extends LabelProvider implements
+ ILabelProvider {
+ public Image getImage(Object element) {
+ return null;
+ }
+
+ public String getText(Object element) {
+ if( element instanceof DelayObject ) {
+ return "Loading...";
+ }
+ if( element instanceof HudsonServer ) {
+ return ((HudsonServer)element).getName();
+ }
+ if( element instanceof HudsonJob) {
+ return ((HudsonJob)element).getName();
+ }
+ if( element instanceof JobBuild ) {
+ return "Build " + ((JobBuild)element).getNumber();
+ }
+ return element == null ? "" : element.toString();//$NON-NLS-1$
+ }
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java 2011-01-13
01:55:02 UTC (rev 28170)
@@ -0,0 +1,13 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.ui.navigator.CommonNavigator;
+
+public class HudsonManagerView extends CommonNavigator {
+
+ public HudsonManagerView() {
+ // TODO Auto-generated constructor stub
+ }
+ protected Object getInitialInput() {
+ return this;
+ }
+}