Return-Path: Delivered-To: apmail-openjpa-commits-archive@www.apache.org Received: (qmail 90915 invoked from network); 11 Aug 2010 19:01:38 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 11 Aug 2010 19:01:38 -0000 Received: (qmail 98240 invoked by uid 500); 11 Aug 2010 19:01:38 -0000 Delivered-To: apmail-openjpa-commits-archive@openjpa.apache.org Received: (qmail 98194 invoked by uid 500); 11 Aug 2010 19:01:37 -0000 Mailing-List: contact commits-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list commits@openjpa.apache.org Received: (qmail 98187 invoked by uid 99); 11 Aug 2010 19:01:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Aug 2010 19:01:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Aug 2010 19:01:33 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 747DE2388A38; Wed, 11 Aug 2010 19:00:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r984536 - in /openjpa/tools/trunk/openjpa-tools/src/main: java/org/apache/openjpa/tools/MigrationTool.java java/org/apache/openjpa/tools/action/Actions.java resources/META-INF/migration-actions.xml resources/META-INF/migration-actions.xsd Date: Wed, 11 Aug 2010 19:00:15 -0000 To: commits@openjpa.apache.org From: ppoddar@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100811190015.747DE2388A38@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ppoddar Date: Wed Aug 11 19:00:15 2010 New Revision: 984536 URL: http://svn.apache.org/viewvc?rev=984536&view=rev Log: Process discrimnator tag Modified: openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/action/Actions.java openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xml openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xsd Modified: openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java URL: http://svn.apache.org/viewvc/openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java?rev=984536&r1=984535&r2=984536&view=diff ============================================================================== --- openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java (original) +++ openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/MigrationTool.java Wed Aug 11 19:00:15 2010 @@ -285,12 +285,14 @@ public class MigrationTool { } /** - * Actions in order of their operation. - * @param target - * @param source - * @param current TODO - * @param actions - * @return + * Execute actions associated with the given source element. The source element is associated + * with a sequence of actions for its attributes and sub-elements while {@link #buildparsing the input + * rules. + * + * @param target the target document to be populated + * @param source the source DOM element to be migrated. + * @param current the latest/current target element that may be structurally modified + * @return the */ protected Element executeActions(Document target, Element source, Element current) { List actions = actionMap.get(source.getNodeName()); Modified: openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/action/Actions.java URL: http://svn.apache.org/viewvc/openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/action/Actions.java?rev=984536&r1=984535&r2=984536&view=diff ============================================================================== --- openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/action/Actions.java (original) +++ openjpa/tools/trunk/openjpa-tools/src/main/java/org/apache/openjpa/tools/action/Actions.java Wed Aug 11 19:00:15 2010 @@ -19,8 +19,10 @@ package org.apache.openjpa.tools.action; import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.w3c.dom.Attr; @@ -234,11 +236,20 @@ public interface Actions {//extends Comp public static class RenameChildNode extends Abstract { private final String sourcetName; private final String targetName; + private List _ignores = new ArrayList(); + private Map _valueMap = new HashMap(); public RenameChildNode(Element s) { super(Code.RENAME_CHILD_NODE, s); sourcetName = getAttribute("from"); targetName = getAttribute("to", "from"); + + NodeList values = s.getElementsByTagName("ignore-attr"); + int M = values.getLength(); + for (int i = 0; i < M; i++) { + Element item = (Element)values.item(i); + _ignores.add(item.getAttribute("name")); + } } public Node run(Document targetDoc, Element source, Element current, @@ -252,7 +263,9 @@ public interface Actions {//extends Comp int M = attrs.getLength(); for (int i = 0; i< M ; i++) { Attr sourceAttr = (Attr)attrs.item(i); - newNode.setAttribute(sourceAttr.getNodeName(), sourceAttr.getValue()); + if (!_ignores.contains(sourceAttr.getNodeName())) { + newNode.setAttribute(sourceAttr.getNodeName(), sourceAttr.getValue()); + } } return newNode; } @@ -400,11 +413,13 @@ public interface Actions {//extends Comp String sourceName; String targetName; String sourceAttrName; + String targetAttrName; public SplitNode(Element e) { super(Code.SPLIT_NODE, e); sourceName = e.getAttribute("from"); targetName = e.getAttribute("to"); sourceAttrName = e.getAttribute("on"); + targetAttrName = getAttribute("as", sourceAttrName); } public Node run(Document targetDoc, Element source, Element current, @@ -413,9 +428,9 @@ public interface Actions {//extends Comp Element sourceChild = getElementByName(source, sourceName, false); if (sourceChild == null) return null; - forParent.setAttribute(sourceAttrName, sourceChild.getAttribute(sourceAttrName)); + forParent.setAttribute(targetAttrName, sourceChild.getAttribute(sourceAttrName)); current.getParentNode().insertBefore(forParent, current); - + consumedElements.add(sourceName); return null; } } Modified: openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xml URL: http://svn.apache.org/viewvc/openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xml?rev=984536&r1=984535&r2=984536&view=diff ============================================================================== --- openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xml (original) +++ openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xml Wed Aug 11 19:00:15 2010 @@ -54,6 +54,7 @@ + @@ -110,7 +111,9 @@ - + + + @@ -141,4 +144,10 @@ + + + + + + Modified: openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xsd URL: http://svn.apache.org/viewvc/openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xsd?rev=984536&r1=984535&r2=984536&view=diff ============================================================================== --- openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xsd (original) +++ openjpa/tools/trunk/openjpa-tools/src/main/resources/META-INF/migration-actions.xsd Wed Aug 11 19:00:15 2010 @@ -1,32 +1,28 @@ - - - + - + @@ -57,27 +53,18 @@ - - - - - - - - - + + + + + + + + + - + @@ -85,18 +72,18 @@ - + - + - + @@ -108,7 +95,7 @@ - + @@ -119,19 +106,20 @@ - - + + - - + + - - + + + @@ -141,23 +129,26 @@ + + + - + - + - + - +