You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2012/11/09 21:03:10 UTC
svn commit: r1407611 - in /cayenne/main/trunk: docs/doc/src/main/resources/
docs/docbook/cayenne-guide/src/docbkx/
framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/
Author: aadamchik
Date: Fri Nov 9 20:03:09 2012
New Revision: 1407611
URL: http://svn.apache.org/viewvc?rev=1407611&view=rev
Log:
CAY-1758 cdbimport improvements
taking a step back to refactor the tools infrastructure
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/docs/docbook/cayenne-guide/src/docbkx/including-cayenne-in-project.xml
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMapLoaderAction.java
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneTask.java
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DataPortTask.java
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Fri Nov 9 20:03:09 2012
@@ -29,6 +29,7 @@ CAY-1761 cdbimport improvements: DbLoade
CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as the new DataMaps ends up placing entities in the root package
CAY-1763 cdbimport improvements: specified "schema" should become the default schema of the generated DataMap
CAY-1764 cdbimport improvements: "overwrite" flag
+CAY-1766 Deprecating DataPort ant task
Bug Fixes:
Modified: cayenne/main/trunk/docs/docbook/cayenne-guide/src/docbkx/including-cayenne-in-project.xml
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/docbook/cayenne-guide/src/docbkx/including-cayenne-in-project.xml?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/docs/docbook/cayenne-guide/src/docbkx/including-cayenne-in-project.xml (original)
+++ cayenne/main/trunk/docs/docbook/cayenne-guide/src/docbkx/including-cayenne-in-project.xml Fri Nov 9 20:03:09 2012
@@ -519,6 +519,12 @@
</section>
<section xml:id="ant-cdataport">
<title>cdataport</title>
+ <para>
+ <note>
+ <para>'cdataport' is deprecated in 3.2 and will bre removed in the future
+ versions.</para>
+ </note>
+ </para>
</section>
</section>
</chapter>
Modified: cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java (original)
+++ cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/AntDataPortDelegate.java Fri Nov 9 20:03:09 2012
@@ -23,20 +23,23 @@ import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
import org.apache.cayenne.access.DataPort;
import org.apache.cayenne.access.DataPortDelegate;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.query.Query;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
/**
- * DataPortDelegate implementation that works in the context of Ant DataPortTask task
- * execution, performing entity filtering and logging functions.
+ * DataPortDelegate implementation that works in the context of Ant DataPortTask
+ * task execution, performing entity filtering and logging functions.
*
- * @since 1.2: Prior to 1.2 DataPort classes were a part of cayenne-examples package.
+ * @since 1.2: Prior to 1.2 DataPort classes were a part of cayenne-examples
+ * package.
+ * @deprecated since 3.2
*/
+@Deprecated
class AntDataPortDelegate implements DataPortDelegate {
protected Task parentTask;
@@ -57,17 +60,15 @@ class AntDataPortDelegate implements Dat
String includeEntitiesPattern, String excludeEntitiesPattern) {
this.parentTask = parentTask;
- this.namePatternMatcher = new NamePatternMatcher(
- new AntLogger(parentTask),
- includeEntitiesPattern,
- excludeEntitiesPattern);
+ this.namePatternMatcher = new NamePatternMatcher(new AntLogger(
+ parentTask), includeEntitiesPattern, excludeEntitiesPattern);
this.mapFilters = namePatternMatcher.createPatterns(mapsPattern);
}
/**
- * Applies preconfigured list of filters to the list, removing entities that do not
- * pass the filter.
+ * Applies preconfigured list of filters to the list, removing entities that
+ * do not pass the filter.
*/
protected List filterEntities(List entities) {
if (entities == null || entities.isEmpty()) {
@@ -89,8 +90,8 @@ class AntDataPortDelegate implements Dat
}
/**
- * Returns true if the DataMap passes a set of DataMap filters or if there is no
- * DataMap filters.
+ * Returns true if the DataMap passes a set of DataMap filters or if there
+ * is no DataMap filters.
*/
protected boolean passedDataMapFilter(DataMap map) {
if (mapFilters.length == 0) {
@@ -112,8 +113,8 @@ class AntDataPortDelegate implements Dat
}
/**
- * Implements the delegate method to filter the list of entities applying filtering
- * rules encapsulated by this object.
+ * Implements the delegate method to filter the list of entities applying
+ * filtering rules encapsulated by this object.
*/
public List willPortEntities(DataPort portTool, List entities) {
return filterEntities(entities);
@@ -132,14 +133,14 @@ class AntDataPortDelegate implements Dat
public void didPortEntity(DataPort portTool, DbEntity entity, int rowCount) {
String timestampLabel = "";
if (lastEntity == entity) {
- timestampLabel = " in " + (System.currentTimeMillis() - timestamp) + " ms.";
+ timestampLabel = " in " + (System.currentTimeMillis() - timestamp)
+ + " ms.";
}
String label = (rowCount == 1) ? "1 row transferred" : rowCount
+ " rows transferred";
- parentTask.log(
- "Done porting " + entity.getName() + ", " + label + timestampLabel,
- Project.MSG_VERBOSE);
+ parentTask.log("Done porting " + entity.getName() + ", " + label
+ + timestampLabel, Project.MSG_VERBOSE);
}
public List willCleanData(DataPort portTool, List entities) {
@@ -156,14 +157,13 @@ class AntDataPortDelegate implements Dat
public void didCleanData(DataPort portTool, DbEntity entity, int rowCount) {
String timestampLabel = "";
if (lastEntity == entity) {
- timestampLabel = " in " + (System.currentTimeMillis() - timestamp) + " ms.";
+ timestampLabel = " in " + (System.currentTimeMillis() - timestamp)
+ + " ms.";
}
- String label = (rowCount == 1) ? "1 row deleted" : rowCount + " rows deleted";
- parentTask.log("Done deleting "
- + entity.getName()
- + ", "
- + label
+ String label = (rowCount == 1) ? "1 row deleted" : rowCount
+ + " rows deleted";
+ parentTask.log("Done deleting " + entity.getName() + ", " + label
+ timestampLabel, Project.MSG_VERBOSE);
}
}
Modified: cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMapLoaderAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMapLoaderAction.java?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMapLoaderAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMapLoaderAction.java Fri Nov 9 20:03:09 2012
@@ -65,7 +65,7 @@ class CayenneGeneratorMapLoaderAction {
protected DataMap loadDataMap(MapLoader mapLoader, File dataMapFile)
throws MalformedURLException {
- InputSource in = new InputSource(dataMapFile.toURL().toString());
+ InputSource in = new InputSource(dataMapFile.toURI().toURL().toString());
return mapLoader.loadDataMap(in);
}
Modified: cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneTask.java?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneTask.java (original)
+++ cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/CayenneTask.java Fri Nov 9 20:03:09 2012
@@ -26,11 +26,9 @@ import javax.sql.DataSource;
import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.configuration.server.DbAdapterFactory;
import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.MapLoader;
-import org.apache.cayenne.tools.configuration.ToolsModule;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
@@ -148,10 +146,6 @@ public abstract class CayenneTask extend
InputSource in = new InputSource(map.getCanonicalPath());
return new MapLoader().loadDataMap(in);
}
-
- protected Injector getInjector() {
- return DIBootstrap.createInjector(new ToolsModule());
- }
protected DbAdapter getAdapter(Injector injector, DataSource dataSource)
throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DataPortTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DataPortTask.java?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DataPortTask.java (original)
+++ cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DataPortTask.java Fri Nov 9 20:03:09 2012
@@ -38,11 +38,14 @@ import org.apache.tools.ant.BuildExcepti
import org.apache.tools.ant.Project;
/**
- * A "cdataport" Ant task implementing a frontend to DataPort allowing porting database
- * data using Ant build scripts.
+ * A "cdataport" Ant task implementing a frontend to DataPort allowing porting
+ * database data using Ant build scripts.
*
- * @since 1.2: Prior to 1.2 DataPort classes were a part of cayenne-examples package.
+ * @since 1.2: Prior to 1.2 DataPort classes were a part of cayenne-examples
+ * package.
+ * @deprecated since 3.2
*/
+@Deprecated
public class DataPortTask extends CayenneTask {
protected File projectFile;
@@ -60,6 +63,10 @@ public class DataPortTask extends Cayenn
@Override
public void execute() throws BuildException {
+
+ log("*** 'cdataport' task is deprecated and will be removed after 3.2",
+ Project.MSG_WARN);
+
validateParameters();
String projectFileLocation = projectFile.getName();
@@ -71,49 +78,48 @@ public class DataPortTask extends Cayenn
}
};
- ServerRuntime runtime = new ServerRuntime(
- projectFileLocation,
+ ServerRuntime runtime = new ServerRuntime(projectFileLocation,
dataPortModule);
DataDomain domain;
- ClassLoader threadContextClassLoader = Thread
- .currentThread()
+ ClassLoader threadContextClassLoader = Thread.currentThread()
.getContextClassLoader();
try {
- // need to set context class loader so that cayenne can find jdbc driver and
+ // need to set context class loader so that cayenne can find jdbc
+ // driver and
// PasswordEncoder
// TODO: andrus 04/11/2010 is this still relevant in 3.1?
- Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ Thread.currentThread().setContextClassLoader(
+ getClass().getClassLoader());
domain = runtime.getDataDomain();
- }
- catch (Exception ex) {
- throw new BuildException("Error loading Cayenne configuration from "
- + projectFile, ex);
- }
- finally {
+ } catch (Exception ex) {
+ throw new BuildException(
+ "Error loading Cayenne configuration from " + projectFile,
+ ex);
+ } finally {
// set back to original ClassLoader
- Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+ Thread.currentThread().setContextClassLoader(
+ threadContextClassLoader);
}
// perform project validation
DataNode source = domain.getDataNode(srcNode);
if (source == null) {
- throw new BuildException("srcNode not found in the project: " + srcNode);
+ throw new BuildException("srcNode not found in the project: "
+ + srcNode);
}
DataNode destination = domain.getDataNode(destNode);
if (destination == null) {
- throw new BuildException("destNode not found in the project: " + destNode);
+ throw new BuildException("destNode not found in the project: "
+ + destNode);
}
log("Porting from '" + srcNode + "' to '" + destNode + "'.");
- AntDataPortDelegate portDelegate = new AntDataPortDelegate(
- this,
- maps,
- includeTables,
- excludeTables);
+ AntDataPortDelegate portDelegate = new AntDataPortDelegate(this, maps,
+ includeTables, excludeTables);
DataPort dataPort = new DataPort(portDelegate);
dataPort.setEntities(getAllEntities(source, destination));
dataPort.setCleaningDestination(cleanDest);
@@ -122,17 +128,17 @@ public class DataPortTask extends Cayenn
try {
dataPort.execute();
- }
- catch (Exception e) {
+ } catch (Exception e) {
Throwable topOfStack = Util.unwindException(e);
- throw new BuildException(
- "Error porting data: " + topOfStack.getMessage(),
- topOfStack);
+ throw new BuildException("Error porting data: "
+ + topOfStack.getMessage(), topOfStack);
}
}
- protected Collection<DbEntity> getAllEntities(DataNode source, DataNode target) {
- // use a set to exclude duplicates, though a valid project will probably have
+ protected Collection<DbEntity> getAllEntities(DataNode source,
+ DataNode target) {
+ // use a set to exclude duplicates, though a valid project will probably
+ // have
// none...
Collection<DbEntity> allEntities = new HashSet<DbEntity>();
@@ -154,11 +160,13 @@ public class DataPortTask extends Cayenn
protected void validateParameters() throws BuildException {
if (projectFile == null) {
- throw new BuildException("Required 'projectFile' parameter is missing.");
+ throw new BuildException(
+ "Required 'projectFile' parameter is missing.");
}
if (!projectFile.exists()) {
- throw new BuildException("'projectFile' does not exist: " + projectFile);
+ throw new BuildException("'projectFile' does not exist: "
+ + projectFile);
}
if (srcNode == null) {
@@ -166,7 +174,8 @@ public class DataPortTask extends Cayenn
}
if (destNode == null) {
- throw new BuildException("Required 'destNode' parameter is missing.");
+ throw new BuildException(
+ "Required 'destNode' parameter is missing.");
}
}
Modified: cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java?rev=1407611&r1=1407610&r2=1407611&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java (original)
+++ cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java Fri Nov 9 20:03:09 2012
@@ -27,11 +27,13 @@ import org.apache.cayenne.access.DbLoade
import org.apache.cayenne.conn.DriverDataSource;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dbimport.ImportDbLoaderDelegate;
+import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.MapLoader;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.naming.NamingStrategy;
+import org.apache.cayenne.tools.configuration.ToolsModule;
import org.apache.cayenne.util.DeleteRuleUpdater;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.util.XMLEncoder;
@@ -87,7 +89,7 @@ public class DbImporterTask extends Caye
DriverDataSource dataSource = new DriverDataSource((Driver) Class
.forName(driver).newInstance(), url, userName, password);
- Injector injector = getInjector();
+ Injector injector = DIBootstrap.createInjector(new ToolsModule());
DbAdapter adapter = getAdapter(injector, dataSource);
// Load the data map and run the db importer.