# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /home/mkleint/src/hudson/tools/ide/nbmavenbridge
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: build.xml
--- build.xml Locally New
+++ build.xml Locally New
@@ -0,0 +1,8 @@
+
+
+
+
+
+ Builds, tests, and runs the project org.netbeans.modules.hudson.maven.
+
+
Index: manifest.mf
--- manifest.mf Locally New
+++ manifest.mf Locally New
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.netbeans.modules.hudson.maven
+OpenIDE-Module-Layer: org/netbeans/modules/hudson/maven/layer.xml
+OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/hudson/maven/Bundle.properties
+OpenIDE-Module-Specification-Version: 1.0
+
Index: nbproject/build-impl.xml
--- nbproject/build-impl.xml Locally New
+++ nbproject/build-impl.xml Locally New
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: nbproject/genfiles.properties
--- nbproject/genfiles.properties Locally New
+++ nbproject/genfiles.properties Locally New
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=dad399f6
+build.xml.script.CRC32=63e94d85
+build.xml.stylesheet.CRC32=79c3b980
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=dad399f6
+nbproject/build-impl.xml.script.CRC32=97098fdc
+nbproject/build-impl.xml.stylesheet.CRC32=deb65f65
Index: nbproject/platform.properties
--- nbproject/platform.properties Locally New
+++ nbproject/platform.properties Locally New
@@ -0,0 +1 @@
+nbplatform.active=default
Index: nbproject/project.properties
--- nbproject/project.properties Locally New
+++ nbproject/project.properties Locally New
@@ -0,0 +1,2 @@
+javac.source=1.5
+javac.compilerargs=-Xlint -Xlint:-serial
Index: nbproject/project.xml
--- nbproject/project.xml Locally New
+++ nbproject/project.xml Locally New
@@ -0,0 +1,56 @@
+
+
+ org.netbeans.modules.apisupport.project
+
+
+ org.netbeans.modules.hudson.maven
+
+
+
+ org.netbeans.modules.hudson
+
+
+
+ 0.10
+
+
+
+ org.netbeans.modules.maven
+
+
+
+ 1
+ 1.0.4
+
+
+
+ org.netbeans.modules.maven.embedder
+
+
+
+ 1
+ 1.0.1
+
+
+
+ org.netbeans.modules.projectapi
+
+
+
+ 1
+ 1.19
+
+
+
+ org.openide.util
+
+
+
+ 7.18.0.1
+
+
+
+
+
+
+
Index: src/org/netbeans/modules/hudson/maven/Bundle.properties
--- src/org/netbeans/modules/hudson/maven/Bundle.properties Locally New
+++ src/org/netbeans/modules/hudson/maven/Bundle.properties Locally New
@@ -0,0 +1 @@
+OpenIDE-Module-Name=Hudson Maven Bridge
Index: src/org/netbeans/modules/hudson/maven/HudsonLookupProvider.java
--- src/org/netbeans/modules/hudson/maven/HudsonLookupProvider.java Locally New
+++ src/org/netbeans/modules/hudson/maven/HudsonLookupProvider.java Locally New
@@ -0,0 +1,71 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.netbeans.modules.hudson.maven;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import org.apache.maven.model.CiManagement;
+import org.netbeans.api.project.Project;
+import org.netbeans.modules.hudson.spi.ProjectHudsonProvider;
+import org.netbeans.modules.maven.api.NbMavenProject;
+import org.netbeans.spi.project.LookupProvider;
+import org.openide.util.Lookup;
+import org.openide.util.lookup.AbstractLookup;
+import org.openide.util.lookup.InstanceContent;
+
+/**
+ *
+ * @author mkleint
+ */
+public class HudsonLookupProvider implements LookupProvider {
+
+ public Lookup createAdditionalLookup(Lookup baseContext) {
+ Project project = baseContext.lookup(Project.class);
+ if (project == null) {
+ throw new IllegalStateException("Lookup " + baseContext + " does not contain a Project");
+ }
+// // if there's more items later, just do a proxy..
+ InstanceContent ic = new InstanceContent();
+ Provider prov = new Provider(project, ic);
+ return prov;
+ }
+
+ public static class Provider extends AbstractLookup implements PropertyChangeListener {
+ private Project project;
+ private InstanceContent content;
+ private ProjectHudsonProvider hudson;
+ public Provider(Project proj, InstanceContent cont) {
+ super(cont);
+ project = proj;
+ content = cont;
+ checkHudson();
+ NbMavenProject.addPropertyChangeListener(project, this);
+ }
+
+ public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
+ if (NbMavenProject.PROP_PROJECT.equals(propertyChangeEvent.getPropertyName())) {
+ checkHudson();
+ }
+ }
+
+ private void checkHudson() {
+ NbMavenProject prj = project.getLookup().lookup(NbMavenProject.class);
+ CiManagement cim = prj.getMavenProject().getCiManagement();
+ if (cim != null && cim.getSystem() != null && "hudson".equals(cim.getSystem())) {
+ if (hudson == null) {
+ hudson = new HudsonProviderImpl(project);
+ content.add(hudson);
+ }
+ } else {
+ if (hudson != null) {
+ content.remove(hudson);
+ hudson = null;
+ }
+ }
+ }
+ }
+
+}
Index: src/org/netbeans/modules/hudson/maven/HudsonProviderImpl.java
--- src/org/netbeans/modules/hudson/maven/HudsonProviderImpl.java Locally New
+++ src/org/netbeans/modules/hudson/maven/HudsonProviderImpl.java Locally New
@@ -0,0 +1,67 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.netbeans.modules.hudson.maven;
+
+import javax.swing.event.ChangeListener;
+import org.apache.maven.model.CiManagement;
+import org.netbeans.api.project.Project;
+import org.netbeans.modules.hudson.spi.ProjectHudsonProvider;
+import org.netbeans.modules.maven.api.NbMavenProject;
+
+/**
+ *
+ * @author mkleint
+ */
+public class HudsonProviderImpl implements ProjectHudsonProvider {
+
+ private Project project;
+
+ public HudsonProviderImpl(Project project) {
+ this.project = project;
+ }
+
+ private CiManagement getCIManag() {
+ NbMavenProject prj = project.getLookup().lookup(NbMavenProject.class);
+ CiManagement cim = prj.getMavenProject().getCiManagement();
+ return cim;
+
+ }
+
+ public String getServerUrl() {
+ CiManagement mag = getCIManag();
+ if (mag != null) {
+ String url = mag.getUrl();
+ int index = url.indexOf("/job/");
+ if (index > 0) {
+ url = url.substring(0, index);
+ }
+ return url;
+ }
+ return "http://localhost";
+ }
+
+ public String getName() {
+ return getServerUrl();
+ }
+
+ public String getJobName() {
+ CiManagement mag = getCIManag();
+ if (mag != null) {
+ String url = mag.getUrl();
+ int index = url.indexOf("/job/");
+ if (index > 0) {
+ url = url.substring(index + "/job/".length());
+ }
+ return url;
+ }
+ return "";
+ }
+
+ public void addChangeListener(ChangeListener arg0) {
+ }
+
+ public void removeChangeListener(ChangeListener arg0) {
+ }
+}
Index: src/org/netbeans/modules/hudson/maven/layer.xml
--- src/org/netbeans/modules/hudson/maven/layer.xml Locally New
+++ src/org/netbeans/modules/hudson/maven/layer.xml Locally New
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+