You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2011/10/22 19:34:16 UTC

svn commit: r1187734 - /db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java

Author: mbo
Date: Sat Oct 22 17:34:15 2011
New Revision: 1187734

URL: http://svn.apache.org/viewvc?rev=1187734&view=rev
Log:
JDO-700: Fix exectck Enhance class: use environment specific separator chars in file names

Modified:
    db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java

Modified: db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java?rev=1187734&r1=1187733&r2=1187734&view=diff
==============================================================================
--- db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java (original)
+++ db/jdo/trunk/exectck/src/main/java/org/apache/jdo/exectck/Enhance.java Sat Oct 22 17:34:15 2011
@@ -29,6 +29,12 @@ import javax.jdo.JDOHelper;
  */
 public class Enhance extends AbstractMojo {
 
+    private static final String[] PC_PKG_DIRS = {
+        "org" + File.separator + "apache" + File.separator + "jdo" + File.separator + "tck" + File.separator + "api" + File.separator,
+        "org" + File.separator + "apache" + File.separator + "jdo" + File.separator + "tck" + File.separator + "pc" + File.separator,
+        "org" + File.separator + "apache" + File.separator + "jdo" + File.separator + "tck" + File.separator + "models" + File.separator + "inheritance" + File.separator
+    };
+
     /**
      * Location of TCK generated output.
      * @parameter expression="${jdo.tck.doEnhance}"
@@ -109,9 +115,6 @@ public class Enhance extends AbstractMoj
                     + enhancedDir);
         }
 
-        String[] pcPkgNames = {"org/apache/jdo/tck/api/",
-            "org/apache/jdo/tck/pc/",
-            "org/apache/jdo/tck/models/inheritance/"};
         String[] metadataExtensions = {"jdo", "jdoquery", "orm", "xml", "properties"};  // we really want "jdo.properties", but this is easier
         String[] srcDirs = {"jdo", "orm", "testdata"};
         String genericPkgName = "org";
@@ -166,7 +169,7 @@ public class Enhance extends AbstractMoj
                         + "classes" + File.separator;
                 enhancedIdDirName = enhancedDirName + idtype + File.separator;
                 classes = new ArrayList<String>();
-                for (String pcPkgName : pcPkgNames) {
+                for (String pcPkgName : PC_PKG_DIRS) {
                     // iterator over list of abs name of class files in target/classes
                     fi = FileUtils.iterateFiles(
                             new File(fromDirName + pcPkgName), extensions, true);
@@ -175,8 +178,13 @@ public class Enhance extends AbstractMoj
                             fromFile = fi.next();
                             fromFileName = fromFile.toString();
                             // fully specified name of file (package + filename)
-                            toFile = new File(enhancedIdDirName + fromFileName.substring(
-                                    fromFileName.indexOf(pcPkgName)));
+                            int index = fromFileName.indexOf(pcPkgName);
+                            if (index == -1) {
+                                throw new MojoExecutionException(
+                                    "Cannot get index of package path " + pcPkgName + 
+                                    " in file name" + fromFileName);
+                            }
+                            toFile = new File(enhancedIdDirName + fromFileName.substring(index));
                             FileUtils.copyFile(fromFile, toFile);
                             classes.add(toFile.toString());
                         } catch (IOException ex) {