You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2007/12/09 15:57:09 UTC
svn commit: r602680 -
/directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java
Author: felixk
Date: Sun Dec 9 06:57:08 2007
New Revision: 602680
URL: http://svn.apache.org/viewvc?rev=602680&view=rev
Log:
Do some cleanups after eclipse:eclipse
Modified:
directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java
Modified: directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java
URL: http://svn.apache.org/viewvc/directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java?rev=602680&r1=602679&r2=602680&view=diff
==============================================================================
--- directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java (original)
+++ directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/StudioEclipseMojo.java Sun Dec 9 06:57:08 2007
@@ -51,9 +51,10 @@
*
* @goal eclipse
* @execute phase="generate-resources"
- * @description Copy artifacts nonscoped "provided" to libraryPath,
- * Add artifacts nonscoped "provided" to Bundle-ClassPath and MANIFEST.MF,
- * Adapt ${basedir}/.classpath for artifacts nonscoped "provided"
+ * @description Copy artifacts nonscoped "provided" to libraryPath, Add
+ * artifacts nonscoped "provided" to Bundle-ClassPath and
+ * MANIFEST.MF, Adapt ${basedir}/.classpath for artifacts nonscoped
+ * "provided"
* @requiresProject
* @requiresDependencyResolution runtime
*
@@ -96,6 +97,10 @@
// Update .classpath
updateDotClasspath(artifactList);
+ updateDotProject();
+ removeMavenEclipseXml();
+ removeDotExternalToolBuilders();
+
} catch (Exception e) {
getLog().error(e);
}
@@ -154,8 +159,8 @@
// Build Bundle-ClassPath entry
final StringBuilder bundleClasspath = new StringBuilder(" .");
for (Artifact artifact : list) {
- bundleClasspath.append(",").append(NEWLINE).append(" ").append(libraryPath).append(File.separator)
- .append(artifact.getFile().getName());
+ bundleClasspath.append(",").append(NEWLINE).append(" ").append(libraryPath).append(File.separator).append(
+ artifact.getFile().getName());
}
boolean inBundleClasspathEntry = false;
@@ -192,7 +197,7 @@
}
/**
- * Adapt the $äbasedir}/.classpath
+ * Adapt the ${basedir}/.classpath
*
* @param list
*/
@@ -221,4 +226,61 @@
w.close();
}
+ /**
+ * Adapt the ${basedir}/.project
+ *
+ * @param list
+ */
+ private void updateDotProject() throws IOException, XmlPullParserException {
+ getLog().info((new StringBuilder()).append("Update .project in ").append(project.getBasedir()).toString());
+ InputStream is = new FileInputStream(new File(project.getBasedir(), ".project"));
+ Xpp3Dom dom = Xpp3DomBuilder.build(is, "UTF-8");
+ int cnt = 0;
+ for (Xpp3Dom cpEntry : dom.getChild("buildSpec").getChildren("buildCommand")) {
+ if (cpEntry.getChild("name").getValue().equals("org.eclipse.ui.externaltools.ExternalToolBuilder")) {
+ dom.getChild("buildSpec").removeChild(cnt);
+ cnt--;
+ }
+ cnt++;
+ }
+
+ removeChildFromDom(dom, "linkedResources");
+ removeChildFromDom(dom, "projects");
+
+ is.close();
+ Writer w = new OutputStreamWriter(new FileOutputStream(new File(project.getBasedir(), ".project")), "UTF-8");
+ org.codehaus.plexus.util.xml.XMLWriter writer = new PrettyPrintXMLWriter(w);
+ Xpp3DomWriter.write(writer, dom);
+ w.flush();
+ w.close();
+ }
+
+ /**
+ * remove ${basedir}/maven-eclipse.xml
+ */
+ void removeMavenEclipseXml() {
+ File file = new File(project.getBasedir(), "maven-eclipse.xml");
+ if (file.exists())
+ file.delete();
+ }
+
+ /**
+ * Adapt the ${basedir}/.externalToolBuilders
+ */
+ void removeDotExternalToolBuilders() {
+ File file = new File(project.getBasedir(), ".externalToolBuilders");
+ if (file.exists())
+ deleteDirectory(file);
+ }
+
+ private void removeChildFromDom(Xpp3Dom dom, String childName) {
+ int cnt = 0;
+ for (Xpp3Dom child : dom.getChildren()) {
+ if (child.getName().equals(childName)) {
+ dom.removeChild(cnt);
+ cnt -= 1;
+ }
+ cnt += 1;
+ }
+ }
}