Lines 27-36
Link Here
|
27 |
import java.util.Collection; |
27 |
import java.util.Collection; |
28 |
import java.util.Properties; |
28 |
import java.util.Properties; |
29 |
import java.util.ResourceBundle; |
29 |
import java.util.ResourceBundle; |
|
|
30 |
import java.util.logging.Level; |
31 |
import java.util.logging.Logger; |
30 |
import javax.swing.JComponent; |
32 |
import javax.swing.JComponent; |
31 |
|
33 |
|
32 |
import org.netbeans.api.project.Project; |
34 |
import org.netbeans.api.project.Project; |
33 |
import org.netbeans.api.project.ProjectManager; |
35 |
import org.netbeans.api.project.ProjectManager; |
|
|
36 |
import org.netbeans.api.project.ant.AntBuildExtender; |
34 |
import org.netbeans.modules.java.j2seproject.api.J2SEProjectConfigurations; |
37 |
import org.netbeans.modules.java.j2seproject.api.J2SEProjectConfigurations; |
35 |
import org.netbeans.spi.project.ProjectConfiguration; |
38 |
import org.netbeans.spi.project.ProjectConfiguration; |
36 |
import org.netbeans.spi.project.ProjectConfigurationProvider; |
39 |
import org.netbeans.spi.project.ProjectConfigurationProvider; |
Lines 49-55
Link Here
|
49 |
import org.openide.xml.XMLUtil; |
52 |
import org.openide.xml.XMLUtil; |
50 |
import org.w3c.dom.Document; |
53 |
import org.w3c.dom.Document; |
51 |
import org.w3c.dom.Element; |
54 |
import org.w3c.dom.Element; |
52 |
import org.w3c.dom.Node; |
|
|
53 |
import org.w3c.dom.NodeList; |
55 |
import org.w3c.dom.NodeList; |
54 |
import org.xml.sax.InputSource; |
56 |
import org.xml.sax.InputSource; |
55 |
import org.xml.sax.SAXException; |
57 |
import org.xml.sax.SAXException; |
Lines 175-193
Link Here
|
175 |
} catch (SAXException ex) { |
177 |
} catch (SAXException ex) { |
176 |
ErrorManager.getDefault().notify(ex); |
178 |
ErrorManager.getDefault().notify(ex); |
177 |
} |
179 |
} |
178 |
// XXX test if it's already modified - then do not save! |
180 |
FileObject jnlpBuildFile = projDir.getFileObject("nbproject/jnlp-impl.xml"); // NOI18N |
|
|
181 |
AntBuildExtender extender = proj.getLookup().lookup(AntBuildExtender.class); |
182 |
if (extender != null) { |
183 |
assert jnlpBuildFile != null; |
184 |
if (extender.getExtension("jws") == null) { |
185 |
AntBuildExtender.Extension ext = extender.addExtension("jws", jnlpBuildFile); |
186 |
ext.addDependency("jar", "jnlp"); |
187 |
} |
188 |
ProjectManager.getDefault().saveProject(proj); |
189 |
} else { |
190 |
Logger.getLogger(JWSCompositeCategoryProvider.class.getName()).log(Level.INFO, |
191 |
"Trying to include JWS build snippet in project type that doesn't support AntBuildExtender API contract."); |
192 |
} |
193 |
|
194 |
//TODO this piece shall not proceed when the upgrade to j2se-project/4 was cancelled. |
195 |
//how to figure.. |
179 |
Element docElem = xmlDoc.getDocumentElement(); |
196 |
Element docElem = xmlDoc.getDocumentElement(); |
180 |
NodeList nl = docElem.getElementsByTagName("import"); // NOI18N |
197 |
NodeList nl = docElem.getElementsByTagName("target"); // NOI18N |
181 |
if (nl.getLength() == 1) { |
198 |
Element target = null; |
182 |
Element importElem = xmlDoc.createElement("import"); // NOI18N |
199 |
for (int i = 0; i < nl.getLength(); i++) { |
183 |
importElem.setAttribute("file", "nbproject/jnlp-impl.xml"); // NOI18N |
200 |
Element e = (Element) nl.item(i); |
184 |
Node n = nl.item(0).getNextSibling(); |
201 |
if (e.getAttribute("name") != null && "-post-jar".equals(e.getAttribute("name"))) { |
185 |
docElem.insertBefore(importElem, n); |
202 |
target = e; |
186 |
Element targetElem = xmlDoc.createElement("target"); // NOI18N |
203 |
break; |
187 |
targetElem.setAttribute("name", "-post-jar"); // NOI18N |
204 |
} |
188 |
targetElem.setAttribute("depends", "jnlp"); // NOI18N |
205 |
} |
189 |
n = importElem.getNextSibling(); |
206 |
boolean changed = false; |
190 |
docElem.insertBefore(targetElem, n); |
207 |
if (target != null) { |
|
|
208 |
if ((target.getAttribute("depends") != null && target.getAttribute("depends").contains("jnlp"))) { |
209 |
String old = target.getAttribute("depends"); |
210 |
old = old.replaceAll("jnlp", ""); |
211 |
old = old.replaceAll(",[\\s]*$", ""); |
212 |
old = old.replaceAll("^[\\s]*,", ""); |
213 |
old = old.replaceAll(",[\\s]*,", ","); |
214 |
old = old.trim(); |
215 |
if (old.length() == 0) { |
216 |
target.removeAttribute("depends"); |
217 |
} else { |
218 |
target.setAttribute("depends", old); // NOI18N |
219 |
} |
220 |
changed = true; |
221 |
} |
222 |
} |
223 |
nl = docElem.getElementsByTagName("import"); |
224 |
for (int i = 0; i < nl.getLength(); i++) { |
225 |
Element e = (Element) nl.item(i); |
226 |
if (e.getAttribute("file") != null && "nbproject/jnlp-impl.xml".equals(e.getAttribute("file"))) { |
227 |
e.getParentNode().removeChild(e); |
228 |
changed = true; |
229 |
break; |
230 |
} |
231 |
} |
232 |
|
233 |
if (changed) { |
191 |
final Document fdoc = xmlDoc; |
234 |
final Document fdoc = xmlDoc; |
192 |
try { |
235 |
try { |
193 |
ProjectManager.mutex().writeAccess(new Mutex.ExceptionAction<Void>() { |
236 |
ProjectManager.mutex().writeAccess(new Mutex.ExceptionAction<Void>() { |