[teiid-commits] teiid SVN: r3985 - in branches/7.7.x: client/src/main/java/org/teiid/client/plan and 2 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Tue Apr 10 10:45:14 EDT 2012
Author: shawkins
Date: 2012-04-10 10:45:13 -0400 (Tue, 10 Apr 2012)
New Revision: 3985
Modified:
branches/7.7.x/client/src/main/java/org/teiid/adminapi/impl/DQPManagement.java
branches/7.7.x/client/src/main/java/org/teiid/client/plan/PlanNode.java
branches/7.7.x/client/src/test/java/org/teiid/client/plan/TestPlanNode.java
branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
Log:
TEIID-1985 changing return type to string/xml
Modified: branches/7.7.x/client/src/main/java/org/teiid/adminapi/impl/DQPManagement.java
===================================================================
--- branches/7.7.x/client/src/main/java/org/teiid/adminapi/impl/DQPManagement.java 2012-04-10 01:09:15 UTC (rev 3984)
+++ branches/7.7.x/client/src/main/java/org/teiid/adminapi/impl/DQPManagement.java 2012-04-10 14:45:13 UTC (rev 3985)
@@ -25,7 +25,6 @@
import java.util.List;
import org.teiid.adminapi.AdminException;
-import org.teiid.client.plan.PlanNode;
public interface DQPManagement {
@@ -50,8 +49,8 @@
*
* @param sessionId
* @param requestId
- * @return the plan or null if the request does not exist
+ * @return the plan as XML or null if the request does not exist
* @throws AdminException
*/
- PlanNode getPlan(String sessionId, long requestId) throws AdminException;
+ String getPlan(String sessionId, long requestId) throws AdminException;
}
Modified: branches/7.7.x/client/src/main/java/org/teiid/client/plan/PlanNode.java
===================================================================
--- branches/7.7.x/client/src/main/java/org/teiid/client/plan/PlanNode.java 2012-04-10 01:09:15 UTC (rev 3984)
+++ branches/7.7.x/client/src/main/java/org/teiid/client/plan/PlanNode.java 2012-04-10 14:45:13 UTC (rev 3985)
@@ -26,6 +26,7 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import java.io.StringReader;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.Collections;
@@ -35,6 +36,7 @@
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@@ -183,6 +185,28 @@
}
}
+ public static PlanNode fromXml(String planString) {
+ try {
+ JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {PlanNode.class});
+ Unmarshaller marshaller = jc.createUnmarshaller();
+ PlanNode planNode = (PlanNode) marshaller.unmarshal(new StringReader(planString));
+ setParents(planNode);
+ return planNode;
+ } catch (JAXBException e) {
+ //shouldn't happen
+ throw new TeiidRuntimeException(e);
+ }
+ }
+
+ private static void setParents(PlanNode planNode) {
+ for (Property property : planNode.properties) {
+ if (property.planNode != null) {
+ property.planNode.parent = planNode;
+ setParents(property.planNode);
+ }
+ }
+ }
+
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
Modified: branches/7.7.x/client/src/test/java/org/teiid/client/plan/TestPlanNode.java
===================================================================
--- branches/7.7.x/client/src/test/java/org/teiid/client/plan/TestPlanNode.java 2012-04-10 01:09:15 UTC (rev 3984)
+++ branches/7.7.x/client/src/test/java/org/teiid/client/plan/TestPlanNode.java 2012-04-10 14:45:13 UTC (rev 3985)
@@ -22,21 +22,18 @@
package org.teiid.client.plan;
+import static org.junit.Assert.*;
+
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import junit.framework.TestCase;
+import org.junit.Test;
/**
*/
-public class TestPlanNode extends TestCase {
+public class TestPlanNode {
- public TestPlanNode(String name) {
- super(name);
- }
-
public static PlanNode example1() {
PlanNode map = new PlanNode("x"); //$NON-NLS-1$
map.addProperty("test", ""); //$NON-NLS-1$ //$NON-NLS-2$
@@ -61,11 +58,17 @@
return map;
}
- public void testXml() throws Exception {
+ @Test public void testXml() throws Exception {
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<node name=\"x\">\n <property name=\"test\">\n <value></value>\n </property>\n <property name=\"string\">\n <value>string</value>\n </property>\n <property name=\"list<string>\">\n <value>item1</value>\n <value>item2</value>\n <value>item3</value>\n </property>\n <property name=\"child\">\n <node name=\"y\">\n <property name=\"outputCols\">\n <value>Name (string)</value>\n <value>Year (integer)</value>\n </property>\n <property name=\"Join Type\">\n <value>INNER JOIN</value>\n </property>\n <property name=\"Criteria\">\n <value>Item.ID = History.ID</value>\n </property>\n <property name=\"Other\"/>\n </node>\n </property>\n</node>\n", example1().toXml()); //$NON-NLS-1$
}
+
+ @Test public void testXmlRoundtrip() throws Exception {
+ String planString = example1().toXml();
+ PlanNode planNode = PlanNode.fromXml(planString);
+ assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<node name=\"x\">\n <property name=\"test\">\n <value></value>\n </property>\n <property name=\"string\">\n <value>string</value>\n </property>\n <property name=\"list<string>\">\n <value>item1</value>\n <value>item2</value>\n <value>item3</value>\n </property>\n <property name=\"child\">\n <node name=\"y\">\n <property name=\"outputCols\">\n <value>Name (string)</value>\n <value>Year (integer)</value>\n </property>\n <property name=\"Join Type\">\n <value>INNER JOIN</value>\n </property>\n <property name=\"Criteria\">\n <value>Item.ID = History.ID</value>\n </property>\n <property name=\"Other\"/>\n </node>\n </property>\n</node>\n", planNode.toXml()); //$NON-NLS-1$
+ }
- public void testText() throws Exception {
+ @Test public void testText() throws Exception {
assertEquals("x\n + test:\n + string:string\n + list<string>:\n 0: item1\n 1: item2\n 2: item3\n + child:\n y\n + outputCols:\n 0: Name (string)\n 1: Year (integer)\n + Join Type:INNER JOIN\n + Criteria:Item.ID = History.ID\n + Other\n", example1().toString()); //$NON-NLS-1$
}
Modified: branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
--- branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2012-04-10 01:09:15 UTC (rev 3984)
+++ branches/7.7.x/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2012-04-10 14:45:13 UTC (rev 3985)
@@ -516,8 +516,12 @@
@Override
@ManagementOperation(description="Get a plan for the request",params={@ManagementParameter(name="sessionId",description="The session Identifier"), @ManagementParameter(name="executionId",description="The Execution Identifier")})
- public PlanNode getPlan(String sessionId, long executionId) throws AdminException {
- return this.dqpCore.getPlan(sessionId, executionId);
+ public String getPlan(String sessionId, long executionId) throws AdminException {
+ PlanNode plan = this.dqpCore.getPlan(sessionId, executionId);
+ if (plan == null) {
+ return null;
+ }
+ return plan.toXml();
}
@Override
More information about the teiid-commits
mailing list