Index: javawebstart/nbproject/project.xml
===================================================================
RCS file: /cvs/javawebstart/nbproject/project.xml,v
--- javawebstart/nbproject/project.xml 8 Feb 2007 12:22:38 -0000 1.3
+++ javawebstart/nbproject/project.xml 6 Apr 2007 13:51:28 -0000
@@ -47,7 +47,7 @@
1
- 1.14
+ 1.16
Index: javawebstart/src/org/netbeans/modules/javawebstart/ui/customizer/JWSCompositeCategoryProvider.java
===================================================================
RCS file: /cvs/javawebstart/src/org/netbeans/modules/javawebstart/ui/customizer/JWSCompositeCategoryProvider.java,v
--- javawebstart/src/org/netbeans/modules/javawebstart/ui/customizer/JWSCompositeCategoryProvider.java 9 Feb 2007 12:14:44 -0000 1.4
+++ javawebstart/src/org/netbeans/modules/javawebstart/ui/customizer/JWSCompositeCategoryProvider.java 6 Apr 2007 13:51:28 -0000
@@ -27,10 +27,13 @@
import java.util.Collection;
import java.util.Properties;
import java.util.ResourceBundle;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.swing.JComponent;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ProjectManager;
+import org.netbeans.api.project.ant.AntBuildExtender;
import org.netbeans.modules.java.j2seproject.api.J2SEProjectConfigurations;
import org.netbeans.spi.project.ProjectConfiguration;
import org.netbeans.spi.project.ProjectConfigurationProvider;
@@ -49,7 +52,6 @@
import org.openide.xml.XMLUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -175,19 +177,60 @@
} catch (SAXException ex) {
ErrorManager.getDefault().notify(ex);
}
- // XXX test if it's already modified - then do not save!
+ FileObject jnlpBuildFile = projDir.getFileObject("nbproject/jnlp-impl.xml"); // NOI18N
+ AntBuildExtender extender = proj.getLookup().lookup(AntBuildExtender.class);
+ if (extender != null) {
+ assert jnlpBuildFile != null;
+ if (extender.getExtension("jws") == null) {
+ AntBuildExtender.Extension ext = extender.addExtension("jws", jnlpBuildFile);
+ ext.addDependency("jar", "jnlp");
+ }
+ ProjectManager.getDefault().saveProject(proj);
+ } else {
+ Logger.getLogger(JWSCompositeCategoryProvider.class.getName()).log(Level.INFO,
+ "Trying to include JWS build snippet in project type that doesn't support AntBuildExtender API contract.");
+ }
+
+ //TODO this piece shall not proceed when the upgrade to j2se-project/4 was cancelled.
+ //how to figure..
Element docElem = xmlDoc.getDocumentElement();
- NodeList nl = docElem.getElementsByTagName("import"); // NOI18N
- if (nl.getLength() == 1) {
- Element importElem = xmlDoc.createElement("import"); // NOI18N
- importElem.setAttribute("file", "nbproject/jnlp-impl.xml"); // NOI18N
- Node n = nl.item(0).getNextSibling();
- docElem.insertBefore(importElem, n);
- Element targetElem = xmlDoc.createElement("target"); // NOI18N
- targetElem.setAttribute("name", "-post-jar"); // NOI18N
- targetElem.setAttribute("depends", "jnlp"); // NOI18N
- n = importElem.getNextSibling();
- docElem.insertBefore(targetElem, n);
+ NodeList nl = docElem.getElementsByTagName("target"); // NOI18N
+ Element target = null;
+ for (int i = 0; i < nl.getLength(); i++) {
+ Element e = (Element) nl.item(i);
+ if (e.getAttribute("name") != null && "-post-jar".equals(e.getAttribute("name"))) {
+ target = e;
+ break;
+ }
+ }
+ boolean changed = false;
+ if (target != null) {
+ if ((target.getAttribute("depends") != null && target.getAttribute("depends").contains("jnlp"))) {
+ String old = target.getAttribute("depends");
+ old = old.replaceAll("jnlp", "");
+ old = old.replaceAll(",[\\s]*$", "");
+ old = old.replaceAll("^[\\s]*,", "");
+ old = old.replaceAll(",[\\s]*,", ",");
+ old = old.trim();
+ if (old.length() == 0) {
+ target.removeAttribute("depends");
+ } else {
+ target.setAttribute("depends", old); // NOI18N
+ }
+ changed = true;
+ }
+ }
+ nl = docElem.getElementsByTagName("import");
+ for (int i = 0; i < nl.getLength(); i++) {
+ Element e = (Element) nl.item(i);
+ if (e.getAttribute("file") != null && "nbproject/jnlp-impl.xml".equals(e.getAttribute("file"))) {
+ e.getParentNode().removeChild(e);
+ changed = true;
+ break;
+ }
+ }
+
+ if (changed) {
final Document fdoc = xmlDoc;
try {
ProjectManager.mutex().writeAccess(new Mutex.ExceptionAction() {