# 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 @@ + + + + + + + + + + +