Author: DartPeng
Date: 2009-02-24 22:31:16 -0500 (Tue, 24 Feb 2009)
New Revision: 13787
Added:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/ISmooksTestRunner.java
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/X2JTestRunner.java
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/editors/SmooksTestMultiPageEditor.java
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/views/SmooksTestEditor.java
Log:
Added:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/ISmooksTestRunner.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/ISmooksTestRunner.java
(rev 0)
+++
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/ISmooksTestRunner.java 2009-02-25
03:31:16 UTC (rev 13787)
@@ -0,0 +1,15 @@
+package org.smooks.tools.testui;
+
+import javax.xml.transform.Source;
+
+import org.eclipse.core.resources.IFile;
+
+public interface ISmooksTestRunner {
+ public String getSmooksConfigFilePath();
+
+ public void setSmooksConfigFilePath(String path);
+
+ public void init(IFile configFile , Source inputSource);
+
+ public Object run() throws Exception ;
+}
Property changes on:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/ISmooksTestRunner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/editors/SmooksTestMultiPageEditor.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/editors/SmooksTestMultiPageEditor.java 2009-02-25
01:41:35 UTC (rev 13786)
+++
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/editors/SmooksTestMultiPageEditor.java 2009-02-25
03:31:16 UTC (rev 13787)
@@ -2,6 +2,7 @@
import java.io.StringWriter;
+import java.lang.reflect.InvocationTargetException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
@@ -12,7 +13,6 @@
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.SelectionAdapter;
@@ -26,11 +26,16 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.ui.*;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.ide.IDE;
import org.smooks.tools.testui.views.SmooksTestEditor;
/**
@@ -72,8 +77,8 @@
index = addPage(testEditor, getEditorInput());
setPageText(index, "Test");
} catch (PartInitException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Exception e1 = new InvocationTargetException(e);
+ throw new RuntimeException(e1);
}
}
/**
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/views/SmooksTestEditor.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/views/SmooksTestEditor.java 2009-02-25
01:41:35 UTC (rev 13786)
+++
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/views/SmooksTestEditor.java 2009-02-25
03:31:16 UTC (rev 13787)
@@ -4,6 +4,7 @@
package org.smooks.tools.testui.views;
import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -11,17 +12,20 @@
import java.util.Iterator;
import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
import org.jboss.tools.smooks.graphical.GraphInformations;
@@ -31,12 +35,13 @@
import org.jboss.tools.smooks.ui.editors.SmooksFileEditorInput;
import org.jboss.tools.smooks.ui.wizards.SmooksConfigFileNewWizard;
import org.jboss.tools.smooks.xml2java.analyzer.AbstractXMLModelAnalyzer;
+import org.smooks.tools.testui.xml2java.X2JTestRunner;
/**
* @author Dart
*
*/
-public class SmooksTestEditor extends EditorPart {
+public class SmooksTestEditor extends EditorPart implements SelectionListener {
private GraphInformations graphInformations;
private String inputSource;
@@ -104,19 +109,19 @@
.equals(param.getName())) {
String p = param.getValue();
try {
- String filePath = AbstractXMLModelAnalyzer
- .parseFilePath(p);
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(
- new FileInputStream(filePath)));
- String line = reader.readLine();
- StringBuffer buffer = new StringBuffer();
- while (line != null) {
- buffer.append(line);
- line = reader.readLine();
- buffer.append("\n");
- }
- inputSource = buffer.toString();
+ String filePath = AbstractXMLModelAnalyzer
+ .parseFilePath(p);
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(new FileInputStream(
+ filePath)));
+ String line = reader.readLine();
+ StringBuffer buffer = new StringBuffer();
+ while (line != null) {
+ buffer.append(line);
+ line = reader.readLine();
+ buffer.append("\n");
+ }
+ inputSource = buffer.toString();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -161,11 +166,16 @@
*/
@Override
public void createPartControl(Composite parent) {
- parent.setLayout(new FillLayout());
+ GridLayout gl = new GridLayout();
+ parent.setLayout(gl);
StyledText text = new StyledText(parent, SWT.NONE);
if (inputSource != null) {
text.setText(inputSource);
}
+
+ Button button = new Button(parent, SWT.NONE);
+ button.addSelectionListener(this);
+
}
/*
@@ -175,8 +185,30 @@
*/
@Override
public void setFocus() {
- // TODO Auto-generated method stub
}
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ X2JTestRunner runner = new X2JTestRunner();
+ Source source = null;
+ if (inputSource != null) {
+ ByteArrayInputStream stream = new ByteArrayInputStream(inputSource
+ .getBytes());
+ source = new StreamSource(stream);
+ }
+ if (source != null) {
+ runner.init(((IFileEditorInput) this.getEditorInput()).getFile(),
+ source);
+ try {
+ runner.run();
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
}
Added:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/X2JTestRunner.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/X2JTestRunner.java
(rev 0)
+++
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/X2JTestRunner.java 2009-02-25
03:31:16 UTC (rev 13787)
@@ -0,0 +1,159 @@
+/**
+ *
+ */
+package org.smooks.tools.testui.xml2java;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.transform.Source;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.graphical.Param;
+import org.jboss.tools.smooks.graphical.Params;
+import org.jboss.tools.smooks.graphical.util.GraphicalInformationSaver;
+import org.jboss.tools.smooks.model.AbstractResourceConfig;
+import org.jboss.tools.smooks.model.DocumentRoot;
+import org.jboss.tools.smooks.model.ResourceConfigType;
+import org.jboss.tools.smooks.model.ResourceType;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
+import org.jboss.tools.smooks.model.util.SmooksModelConstants;
+import org.jboss.tools.smooks.model.util.SmooksModelUtils;
+import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
+import org.jboss.tools.smooks.ui.wizards.SmooksConfigFileNewWizard;
+import org.jboss.tools.smooks.utils.ProjectClassLoader;
+import org.milyn.Smooks;
+import org.milyn.container.ExecutionContext;
+import org.milyn.event.report.HtmlReportGenerator;
+import org.milyn.payload.JavaResult;
+import org.smooks.tools.testui.ISmooksTestRunner;
+
+/**
+ * @author Dart
+ *
+ */
+public class X2JTestRunner implements ISmooksTestRunner {
+
+ private Source inputSource;
+
+ private IFile configFile;
+
+ public String getSmooksConfigFilePath() {
+ return null;
+ }
+
+ public void init(IFile configFile, Source inputSource) {
+ this.configFile = configFile;
+ this.inputSource = inputSource;
+ }
+
+ public void setSmooksConfigFilePath(String path) {
+
+ }
+
+ private String getPathFromGraphicalInformations(IFile file)
+ throws IOException {
+ GraphicalInformationSaver saver = new GraphicalInformationSaver(file);
+ GraphInformations graphInfo = saver.doLoad();
+ Params params = graphInfo.getParams();
+ String path = null;
+ if (params != null) {
+ List<Param> paramList = graphInfo.getParams().getParam();
+ for (Iterator<Param> iterator = paramList.iterator(); iterator
+ .hasNext();) {
+ Param param = (Param) iterator.next();
+ if (SmooksConfigFileNewWizard.PRO_SOURCE_DATA_PATH.equals(param
+ .getName())) {
+ path = param.getValue();
+ break;
+ }
+ }
+ }
+ return path;
+ }
+
+ public Object run() throws Exception {
+ ClassLoader oldClassLoader = Thread.currentThread()
+ .getContextClassLoader();
+ List resultList = new ArrayList();
+ try {
+ IJavaProject javaProject = JavaCore.create(configFile.getProject());
+ List<String> beanIdList = getBeanIdList();
+ ProjectClassLoader classLoader = new ProjectClassLoader(javaProject);
+ Thread.currentThread().setContextClassLoader(classLoader);
+ if (configFile == null)
+ throw new Exception("Can't load Config File");
+ Smooks smooks = new Smooks(configFile.getLocation()
+ .toPortableString());
+ ExecutionContext executionContext = smooks.createExecutionContext();
+
+ // Transform the source Order to the target LineOrder via a
+ // JavaSource and JavaResult instance...
+ // JavaSource source = new JavaSource(srcOrder);
+ // String path =
+ // getPathFromGraphicalInformations(node.getConfigFile());
+ // String filePath = AbstractXMLModelAnalyzer.parseFilePath(path);
+ // InputStream ss = new FileInputStream(filePath);
+ // StreamSource streamSource = new StreamSource(ss);
+ JavaResult result = new JavaResult();
+ // Configure the execution context to generate a report...
+ executionContext.setEventListener(new HtmlReportGenerator(
+ "target/report/report.html"));
+ smooks.filter(inputSource, result, executionContext);
+ for (Iterator iterator = beanIdList.iterator(); iterator.hasNext();) {
+ String beanID = (String) iterator.next();
+ System.out.println(result.getBean(beanID));
+ }
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ Thread.currentThread().setContextClassLoader(oldClassLoader);
+ }
+ // LineOrder lineOrder = (LineOrder) result.getBean("LineOrder");
+ return null;
+ }
+
+ private List<String> getBeanIdList() throws IOException, CoreException {
+ List<String> list = new ArrayList<String>();
+ if (configFile != null) {
+ Resource resource = new SmooksResourceFactoryImpl()
+ .createResource(null);
+ resource.load(configFile.getContents(),
+ Collections.EMPTY_MAP);
+ DocumentRoot dr = (DocumentRoot) resource.getContents().get(0);
+ SmooksResourceListType resourceList = dr.getSmooksResourceList();
+ List<AbstractResourceConfig> resources = resourceList
+ .getAbstractResourceConfig();
+ for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
+ AbstractResourceConfig r = (AbstractResourceConfig) iterator
+ .next();
+ if (r instanceof ResourceConfigType) {
+ ResourceType resource1 = ((ResourceConfigType) r)
+ .getResource();
+ if (resource1 != null) {
+ String value = resource1.getStringValue();
+ if (value != null)
+ value.trim();
+ if (SmooksModelConstants.BEAN_POPULATOR.equals(value)) {
+ String beanid = SmooksModelUtils.getParmaText(
+ SmooksModelUtils.BEAN_ID,
+ (ResourceConfigType) r);
+ if (beanid != null) {
+ list.add(beanid.trim());
+ }
+ }
+ }
+ }
+ }
+ }
+ return list;
+ }
+}
Property changes on:
workspace/dart/plugins/org.jboss.tools.smooks.testui/src/org/smooks/tools/testui/xml2java/X2JTestRunner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Show replies by date