Author: aadamchik
Date: Sun Nov 11 12:37:55 2012
New Revision: 1407957

URL: http://svn.apache.org/viewvc?rev=1407957&view=rev
Log:
CAY-1769 cdbimport improvements: meaningfulPk flag must be turned into a pattern

testing...

Added:
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
    cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
Modified:
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java

Modified: 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java?rev=1407957&r1=1407956&r2=1407957&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
 (original)
+++ 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
 Sun Nov 11 12:37:55 2012
@@ -212,6 +212,26 @@ public class DbImporterMojo extends Abst
 
         Log logger = new MavenLogger(this);
 
+        DbImportParameters parameters = toParameters();
+        Injector injector = DIBootstrap.createInjector(new 
ToolsModule(logger), new DbImportModule());
+
+        try {
+            injector.getInstance(DbImportAction.class).execute(parameters);
+        } catch (Exception ex) {
+            Throwable th = Util.unwindException(ex);
+
+            String message = "Error importing database schema";
+
+            if (th.getLocalizedMessage() != null) {
+                message += ": " + th.getLocalizedMessage();
+            }
+
+            getLog().error(message);
+            throw new MojoExecutionException(message, th);
+        }
+    }
+
+    DbImportParameters toParameters() {
         DbImportParameters parameters = new DbImportParameters();
         parameters.setAdapter(adapter);
         parameters.setCatalog(catalog);
@@ -230,23 +250,7 @@ public class DbImporterMojo extends Abst
         parameters.setUsername(username);
         parameters.setIncludeTables(includeTables);
         parameters.setExcludeTables(excludeTables);
-
-        Injector injector = DIBootstrap.createInjector(new 
ToolsModule(logger), new DbImportModule());
-
-        try {
-            injector.getInstance(DbImportAction.class).execute(parameters);
-        } catch (Exception ex) {
-            Throwable th = Util.unwindException(ex);
-
-            String message = "Error importing database schema";
-
-            if (th.getLocalizedMessage() != null) {
-                message += ": " + th.getLocalizedMessage();
-            }
-
-            getLog().error(message);
-            throw new MojoExecutionException(message, th);
-        }
+        return parameters;
     }
 
     private String getSchema() {

Added: 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java?rev=1407957&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
 (added)
+++ 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
 Sun Nov 11 12:37:55 2012
@@ -0,0 +1,63 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.tools;
+
+import java.io.File;
+
+import org.apache.cayenne.tools.dbimport.DbImportParameters;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+
+public class DbImporterMojoTest extends AbstractMojoTestCase {
+
+    public void testToParameters_MeaningfulPk() throws Exception {
+
+        File pom1 = 
getTestFile("src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml");
+
+        DbImporterMojo importer1 = (DbImporterMojo) lookupMojo("cdbimport", 
pom1);
+        DbImportParameters parameters1 = importer1.toParameters();
+        assertNull(parameters1.getMeaningfulPkTables());
+        
assertEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", 
parameters1.getDataMapFile()
+                .getPath());
+
+        File pom2 = 
getTestFile("src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml");
+        DbImporterMojo importer2 = (DbImporterMojo) lookupMojo("cdbimport", 
pom2);
+        DbImportParameters parameters2 = importer2.toParameters();
+        assertEquals("x,b*", parameters2.getMeaningfulPkTables());
+        
+        File pom3 = 
getTestFile("src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml");
+        DbImporterMojo importer3 = (DbImporterMojo) lookupMojo("cdbimport", 
pom3);
+        DbImportParameters parameters3 = importer3.toParameters();
+        assertEquals("*", parameters3.getMeaningfulPkTables());
+    }
+
+    public void testToParameters_Map() throws Exception {
+
+        File pom1 = 
getTestFile("src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml");
+        DbImporterMojo importer1 = (DbImporterMojo) lookupMojo("cdbimport", 
pom1);
+        DbImportParameters parameters1 = importer1.toParameters();
+        assertNotNull(parameters1.getDataMapFile());
+        
assertEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", 
parameters1.getDataMapFile()
+                .getPath());
+
+        File pom2 = 
getTestFile("src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml");
+        DbImporterMojo importer2 = (DbImporterMojo) lookupMojo("cdbimport", 
pom2);
+        DbImportParameters parameters2 = importer2.toParameters();
+        assertNull(parameters2.getDataMapFile());
+    }
+}

Added: 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml?rev=1407957&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml
 (added)
+++ 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom1.xml
 Sun Nov 11 12:37:55 2012
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+       
+       http://www.apache.org/licenses/LICENSE-2.0
+       
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.   
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+       http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+       <name>DbImporterMojo Test1</name>       
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-cayenne-plugin</artifactId>
+                               <configuration>
+                                       
<map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+
+</project>

Added: 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml?rev=1407957&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
 (added)
+++ 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom2.xml
 Sun Nov 11 12:37:55 2012
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+       
+       http://www.apache.org/licenses/LICENSE-2.0
+       
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.   
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+       http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+       <name>DbImporterMojo Test2</name>
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-cayenne-plugin</artifactId>
+                               <configuration>
+                                       
<meaningfulPkTables>x,b*</meaningfulPkTables>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+
+</project>

Added: 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml?rev=1407957&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
 (added)
+++ 
cayenne/main/trunk/framework/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimporter-pom3.xml
 Sun Nov 11 12:37:55 2012
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+       
+       http://www.apache.org/licenses/LICENSE-2.0
+       
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License.   
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+       http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+       <name>DbImporterMojo Test1</name>       
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-cayenne-plugin</artifactId>
+                               <configuration>
+                                       <!-- this is a deprecated config, but 
it should work -->
+                                       <meaningfulPk>true</meaningfulPk>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+
+</project>


Reply via email to