diff --git a/jdeveloper/plugin.jelly b/jdeveloper/plugin.jelly
index e13c77c0..28b2ad17 100644
--- a/jdeveloper/plugin.jelly
+++ b/jdeveloper/plugin.jelly
@@ -17,9 +17,9 @@
Creating ${basedir}/${pom.artifactId}.jpr...
-
+
${pom.package}
@@ -33,7 +33,7 @@
-
+
-
@@ -41,7 +41,7 @@
-
+
-
@@ -49,7 +49,7 @@
-
+
-
diff --git a/jdeveloper/project.xml b/jdeveloper/project.xml
index 53b8b45f..a92f70f0 100644
--- a/jdeveloper/project.xml
+++ b/jdeveloper/project.xml
@@ -97,6 +97,15 @@
+
+
+ jdepend
+ 2.3
+
+ root
+
+
+
maven
b8
diff --git a/jdeveloper/src/main/org/apache/maven/jdeveloper/JavaSourceTool.java b/jdeveloper/src/main/org/apache/maven/jdeveloper/JavaSourceTool.java
new file mode 100644
index 00000000..e0df5b88
--- /dev/null
+++ b/jdeveloper/src/main/org/apache/maven/jdeveloper/JavaSourceTool.java
@@ -0,0 +1,109 @@
+package org.apache.maven.jdeveloper;
+
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache Maven" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache Maven", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * .
+ *
+ * ====================================================================
+ */
+
+import java.io.File;
+import java.io.IOException;
+
+import jdepend.framework.JavaClass;
+import jdepend.framework.JavaSourceFileParser;
+
+/**
+ * @author Ben Walding
+ *
+ */
+public class JavaSourceTool {
+
+
+ /**
+ * Extracts the package name from the java source file and returns it as
+ * a directory. For example if the file name is :
+ * "e:\tmp\src\main\org\apache\maven\Code.java", and
Code.java
+ * is in the org.apache.maven package, this method will
+ * return "org\apache\maven\Code.java" (or "org/apache/maven/Code.java" on
+ * unix).
+ *
+ * @param absoluteFileName the absolute file name to transform
+ * @return the shortened file name matching the class package name.
+ * @throws IOException upon failure to read the java file
+ */
+ public static final String getPackagePath(String absoluteFileName) throws IOException {
+ String shortenedPath;
+
+ JavaSourceFileParser parser = new JavaSourceFileParser();
+ JavaClass clazz = null;
+
+ try {
+ clazz = parser.parse(absoluteFileName);
+ } catch (Exception e) {
+ System.out.println("\nError parsing " + absoluteFileName + ": " + e + "\n");
+ return null;
+ }
+
+ String packageName = clazz.getPackageName();
+
+ // Handle default packages for which JDepend returns "default"
+ if (packageName.equals("default")) {
+ shortenedPath = clazz.getName() + ".java";
+ } else {
+ shortenedPath =
+ packageName.replace('.', File.separatorChar) + File.separatorChar + clazz.getName() + ".java";
+ }
+
+ return shortenedPath;
+ }
+}