From jbosstools-commits at lists.jboss.org Fri Nov 27 16:34:25 2009
Content-Type: multipart/mixed; boundary="===============7629532192843770537=="
MIME-Version: 1.0
From: jbosstools-commits at lists.jboss.org
To: jbosstools-commits at lists.jboss.org
Subject: [jbosstools-commits] JBoss Tools SVN: r18895 - in
trunk/smooks/plugins/org.jboss.tools.smooks.ui:
src/org/jboss/tools/smooks/launch and 1 other directory.
Date: Fri, 27 Nov 2009 16:34:25 -0500
Message-ID: <200911272134.nARLYPxh032061@svn01.web.mwc.hst.phx2.redhat.com>
--===============7629532192843770537==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: tfennelly
Date: 2009-11-27 16:34:25 -0500 (Fri, 27 Nov 2009)
New Revision: 18895
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smook=
s/launch/SmooksLaunchConfigurationDelegate.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smook=
s/launch/SmooksLaunchMetadata.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smook=
s/launch/SmooksLauncher.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smook=
s/launch/SmooksRunTab.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5285
Launch Configuration Delegate using stale into from Launch Config
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.=
MF
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 200=
9-11-27 17:26:32 UTC (rev 18894)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 200=
9-11-27 21:34:25 UTC (rev 18895)
@@ -36,7 +36,8 @@
org.eclipse.debug.ui;bundle-version=3D"3.5.1",
org.eclipse.jdt.debug.ui;bundle-version=3D"3.4.1",
org.eclipse.jdt.junit;bundle-version=3D"3.5.1",
- org.eclipse.ui.console;bundle-version=3D"3.4.0"
+ org.eclipse.ui.console;bundle-version=3D"3.4.0",
+ org.jboss.tools.common.model.ui;bundle-version=3D"2.0.0"
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tool=
s/smooks/launch/SmooksLaunchConfigurationDelegate.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLaunchConfigurationDelegate.java 2009-11-27 17:26:32 UTC (r=
ev 18894)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLaunchConfigurationDelegate.java 2009-11-27 21:34:25 UTC (r=
ev 18895)
@@ -28,7 +28,7 @@
import java.util.Arrays;
import java.util.List;
=
-import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -38,41 +38,58 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate;
import org.eclipse.jdt.launching.ExecutionArguments;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.jdt.launching.IVMRunner;
import org.eclipse.jdt.launching.VMRunnerConfiguration;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
import org.jboss.tools.smooks.core.SmooksInputType;
=
/**
+ * Smooks Launch Configuration Delegate.
+ * =
* @author tom.fennelly(a)jbos=
s.com
*/
public class SmooksLaunchConfigurationDelegate extends JUnitLaunchConfigur=
ationDelegate {
=
private static final String PLUGIN_ID =3D "org.jboss.tools.smooks.ui.smoo=
ksLauncher";
- public static final String SMOOKS_INPUT =3D "SmooksInput";
- public static final String SMOOKS_INPUT_TYPE =3D "SmooksInputType";
- public static final String SMOOKS_PROCESS_TYPES =3D "SmooksProcessTypes";
=
/* (non-Javadoc)
* @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(=
org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.=
debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
*/
public void launch(ILaunchConfiguration launchConfig, String mode, ILaunc=
h launch, IProgressMonitor monitor) throws CoreException {
- IVMRunner runner=3D getVMRunner(launchConfig, mode); =
- VMRunnerConfiguration runConfig =3D buildRunnerConfig(launchConfig);
+ IProject project =3D getJavaProject(launchConfig).getProject();
+ final String smooksConfigName =3D launchConfig.getAttribute(IJavaLaunchC=
onfigurationConstants.ATTR_MAIN_TYPE_NAME, "");
+ final SmooksLaunchMetadata launchMetadata =3D new SmooksLaunchMetadata();
+
+ launchMetadata.setSmooksConfig(project.findMember(smooksConfigName));
=
- // check for cancellation
- if (monitor.isCanceled()) {
- return;
- } =
-
- IResource smooksConfig =3D SmooksRunTab.getSmooksConfig(launchConfig);
- if(smooksConfig !=3D null) {
- String inputType =3D launchConfig.getAttribute(SMOOKS_INPUT_TYPE, "");
- String inputPath =3D launchConfig.getAttribute(SMOOKS_INPUT, "");
- String nodeTypes =3D launchConfig.getAttribute(SMOOKS_PROCESS_TYPES, ""=
);
+ if(launchMetadata.isValidSmooksConfig()) {
+ IVMRunner runner=3D getVMRunner(launchConfig, mode); =
+ VMRunnerConfiguration runConfig =3D buildRunnerConfig(launchConfig);
+ =
+ // check for cancellation
+ if (monitor.isCanceled()) {
+ return;
+ } =
=
- runConfig.setProgramArguments(new String[] {smooksConfig.getRawLocation=
().toOSString(), inputType, inputPath, nodeTypes});
+ String inputType =3D launchMetadata.getInputType();
+ String inputPath =3D launchMetadata.getInputFile().getAbsolutePath();
+ String nodeTypes =3D launchMetadata.getNodeTypesString();
+ =
+ runConfig.setProgramArguments(new String[] {launchMetadata.getConfigFil=
e().getAbsolutePath(), inputType, inputPath, nodeTypes});
=
runner.run(runConfig, launch, monitor);
+ } else {
+ final Display display =3D PlatformUI.getWorkbench().getDisplay();
+ display.syncExec(new Runnable() {
+ public void run(){
+ Shell shell =3D display.getActiveShell();
+ ErrorDialog.openError(shell, "Error", "Error Launching Smooks Configu=
ration '" + smooksConfigName + "'.", new Status(IStatus.ERROR, PLUGIN_ID, I=
Status.ERROR, launchMetadata.getErrorMessage(), new Exception()));
+ }
+ });
}
}
=
@@ -148,7 +165,7 @@
}
}
} catch (IOException e) {
- new CoreException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, "Er=
ror copying SmooksLauncher to classpath.", e));
+ new CoreException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, =
"Error copying SmooksLauncher to classpath.", e));
}
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tool=
s/smooks/launch/SmooksLaunchMetadata.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLaunchMetadata.java 2009-11-27 17:26:32 UTC (rev 18894)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLaunchMetadata.java 2009-11-27 21:34:25 UTC (rev 18895)
@@ -49,6 +49,7 @@
public class SmooksLaunchMetadata {
=
private Smooks inputParamExtractor;
+ private boolean isSmooksConfig;
private boolean isValidSmooksConfig;
private File configFile;
private String inputType;
@@ -57,11 +58,16 @@
=
public SmooksLaunchMetadata() {
inputParamExtractor =3D new Smooks();
+ inputParamExtractor.addVisitor(new SmooksConfigAsserter(), "/smooks-reso=
urce-list", "http://www.milyn.org/xsd/smooks-1.1.xsd");
inputParamExtractor.addVisitor(new InputParamExtractor(), "/smooks-resou=
rce-list/params/param", "http://www.milyn.org/xsd/smooks-1.1.xsd");
inputParamExtractor.addVisitor(new ConfigTypeTracker().setNodeType(Proce=
ssNodeType.TEMPLATING), "/smooks-resource-list/freemarker");
inputParamExtractor.addVisitor(new ConfigTypeTracker().setNodeType(Proce=
ssNodeType.JAVA_BINDING), "/smooks-resource-list/bean");
}
=
+ public boolean isSmooksConfig() {
+ return isSmooksConfig;
+ }
+
public boolean isValidSmooksConfig() {
return isValidSmooksConfig;
}
@@ -72,17 +78,19 @@
}
=
if(configFile =3D=3D null) {
- return "Smooks configuration file not configured.";
+ return "Smooks configuration file not configured, or does not exist.";
} else if(!configFile.exists()) {
return "Specified Smooks configuration file not found.";
} else if(!configFile.isFile()) {
return "Specified Smooks configuration file is not a readable file."; =
+ } else if(!isSmooksConfig) {
+ return "Specified Smooks configuration file is not a valid Smooks Confi=
guration."; =
} else if(inputFile =3D=3D null) {
- return "Specified Smooks configuration file 'Input' task is not configu=
red with a sample input file. Please configure the 'Input' task in the Pro=
cess flow."; =
+ return "Specified Smooks configuration 'Input' task is not configured w=
ith a sample input file. Please configure the 'Input' task in the Process =
flow."; =
} else if(!inputFile.exists()) {
- return "Specified Smooks configuration file 'Input' task is configured =
with a sample input file, but the file cannot be found. Please reconfigure=
the 'Input' task in the Process flow."; =
+ return "Specified Smooks configuration 'Input' task is configured with =
a sample input file, but the file cannot be found. Please reconfigure the =
'Input' task in the Process flow."; =
} else if(!inputFile.isFile()) {
- return "Specified Smooks configuration file 'Input' task is configured =
with a sample input file, but the file cannot be read. Please reconfigure =
the 'Input' task in the Process flow."; =
+ return "Specified Smooks configuration 'Input' task is configured with =
a sample input file, but the file cannot be read. Please reconfigure the '=
Input' task in the Process flow."; =
}
=
return ""; =
@@ -158,6 +166,7 @@
}
=
private void reset() {
+ isSmooksConfig =3D false;
isValidSmooksConfig =3D false;
configFile =3D null;
inputType =3D null;
@@ -165,6 +174,13 @@
processNodeTypes.clear();
}
=
+ private static class SmooksConfigAsserter implements SAXVisitBefore { =
+ public void visitBefore(SAXElement paramElement, ExecutionContext execCo=
ntext) throws SmooksException, IOException {
+ SmooksLaunchMetadata metadata =3D (SmooksLaunchMetadata) execContext.ge=
tAttribute(SmooksLaunchMetadata.class);
+ metadata.isSmooksConfig =3D true;
+ }
+ }
+
private static class InputParamExtractor implements SAXVisitBefore, SAXVi=
sitAfter {
=
public void visitBefore(SAXElement paramElement, ExecutionContext execCo=
ntext) throws SmooksException, IOException {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tool=
s/smooks/launch/SmooksLauncher.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLauncher.java 2009-11-27 17:26:32 UTC (rev 18894)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksLauncher.java 2009-11-27 21:34:25 UTC (rev 18895)
@@ -19,9 +19,12 @@
*/
package org.jboss.tools.smooks.launch;
=
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
import java.util.HashSet;
import java.util.Set;
import java.util.Map.Entry;
@@ -32,6 +35,7 @@
import org.jboss.tools.smooks.core.SmooksInputType;
import org.milyn.Smooks;
import org.milyn.payload.JavaResult;
+import org.milyn.payload.StringResult;
import org.xml.sax.SAXException;
=
import com.thoughtworks.xstream.XStream;
@@ -67,18 +71,26 @@
JavaResult javaResult =3D new JavaResult();
=
if(processNodeTypes.contains(ProcessNodeType.TEMPLATING)) {
- smooks.filterSource(new StreamSource(new FileInputStream(input)), new=
StreamResult(System.out), javaResult);
+ StringResult stringResult =3D new StringResult();
+ =
+ smooks.filterSource(new StreamSource(new FileInputStream(input)), str=
ingResult, javaResult);
+ System.out.println("[StreamResult ...]\n");
+ System.out.println(" |--");
+ System.out.println(indent(stringResult.toString()));
+ System.out.println(" |--\n");
} else {
smooks.filterSource(new StreamSource(new FileInputStream(input)), jav=
aResult);
- if(processNodeTypes.contains(ProcessNodeType.JAVA_BINDING)) {
- System.out.println("[Java Bindings (XML Serialized)...]");
- Set> bindings =3D javaResult.getResultMap().en=
trySet();
- =
- for(Entry binding : bindings) {
- System.out.println("\n" + binding.getKey() + ":");
- System.out.println("\n" + (new XStream()).toXML(binding.getValue())=
);
- System.out.println("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D");
- }
+ }
+
+ Set> bindings =3D javaResult.getResultMap().entr=
ySet();
+ if(!bindings.isEmpty()) {
+ System.out.println("[JavaResult Objects (XML Serialized)...]");
+ =
+ for(Entry binding : bindings) {
+ System.out.println("\n" + binding.getKey() + ":");
+ System.out.println(" |--");
+ System.out.println(indent((new XStream()).toXML(binding.getValue()))=
);
+ System.out.println(" |--");
}
}
=
@@ -107,4 +119,20 @@
=
return nodeTypes;
}
+
+ private static String indent(String in) throws IOException {
+ BufferedReader lineReader =3D new BufferedReader(new StringReader(in));
+ StringBuilder indentBuf =3D new StringBuilder();
+ =
+ String line =3D lineReader.readLine();
+ while(line !=3D null) {
+ indentBuf.append(" |").append(line);
+ line =3D lineReader.readLine();
+ if(line !=3D null) {
+ indentBuf.append('\n');
+ }
+ }
+ =
+ return indentBuf.toString();
+ }
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tool=
s/smooks/launch/SmooksRunTab.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksRunTab.java 2009-11-27 17:26:32 UTC (rev 18894)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smoo=
ks/launch/SmooksRunTab.java 2009-11-27 21:34:25 UTC (rev 18895)
@@ -173,8 +173,6 @@
=
launchConfigWC.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJE=
CT_NAME, ""); //$NON-NLS-1$
launchConfigWC.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_=
TYPE_NAME, ""); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_INP=
UT, ""); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_INP=
UT_TYPE, ""); //$NON-NLS-1$
=
if(activePage !=3D null) {
IEditorPart editor =3D activePage.getActiveEditor();
@@ -218,15 +216,6 @@
public void performApply(ILaunchConfigurationWorkingCopy launchConfigWC) {
launchConfigWC.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJE=
CT_NAME, fProjText.getText());
launchConfigWC.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_=
TYPE_NAME, fConfigurationText.getText());
- if(launchMetaData.isValidSmooksConfig()) {
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_IN=
PUT, launchMetaData.getInputFile().getAbsolutePath()); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_IN=
PUT_TYPE, launchMetaData.getInputType()); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_PR=
OCESS_TYPES, launchMetaData.getNodeTypesString()); //$NON-NLS-1$
- } else {
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_IN=
PUT, ""); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_IN=
PUT_TYPE, ""); //$NON-NLS-1$
- launchConfigWC.setAttribute(SmooksLaunchConfigurationDelegate.SMOOKS_PR=
OCESS_TYPES, ""); //$NON-NLS-1$
- }
}
=
/*
--===============7629532192843770537==--