### Eclipse Workspace Patch 1.0 #P org.jboss.tools.ws.creation.ui Index: src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java =================================================================== --- src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java (revision 20040) +++ src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java (working copy) @@ -10,6 +10,7 @@ import org.eclipse.wst.ws.internal.wsrt.ISelection; import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo; import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario; +import org.jboss.tools.ws.creation.core.commands.AddApplicationXMLCommand; import org.jboss.tools.ws.creation.core.commands.BindingFilesValidationCommand; import org.jboss.tools.ws.creation.core.commands.ImplementationClassCreationCommand; import org.jboss.tools.ws.creation.core.commands.InitialCommand; @@ -75,8 +76,9 @@ @Override public ICommandFactory run(IEnvironment env, IContext ctx, ISelection sel, String project, String earProject) { - // TODO Auto-generated method stub - return null; + Vector commands = new Vector(); + commands.add(new AddApplicationXMLCommand(earProject)); + return new SimpleCommandFactory(commands); } } #P org.jboss.tools.ws.creation.core Index: META-INF/MANIFEST.MF =================================================================== --- META-INF/MANIFEST.MF (revision 20040) +++ META-INF/MANIFEST.MF (working copy) @@ -19,6 +19,7 @@ org.apache.xerces, org.eclipse.jst.j2ee;visibility:=reexport, org.eclipse.jst.j2ee.core;visibility:=reexport, + org.eclipse.jst.jee, org.eclipse.emf.common, org.eclipse.emf.ecore, org.eclipse.jdt.core, @@ -28,11 +29,11 @@ org.eclipse.wst.common.project.facet.core, org.eclipse.wst.server.core, org.jboss.tools.common, - org.jboss.ide.eclipse.as.classpath.core;bundle-version="1.0.0", - org.eclipse.jst.server.core;bundle-version="1.1.0", - org.eclipse.jdt;bundle-version="3.4.0", - org.eclipse.jdt.launching;bundle-version="3.4.0", - org.eclipse.debug.core;bundle-version="3.4.0" + org.jboss.ide.eclipse.as.classpath.core, + org.eclipse.jst.server.core, + org.eclipse.jdt, + org.eclipse.jdt.launching, + org.eclipse.debug.core Bundle-ActivationPolicy: lazy Export-Package: org.jboss.tools.ws.creation.core, org.jboss.tools.ws.creation.core.commands, Index: src/org/jboss/tools/ws/creation/core/commands/AddApplicationXMLCommand.java =================================================================== --- src/org/jboss/tools/ws/creation/core/commands/AddApplicationXMLCommand.java (revision 0) +++ src/org/jboss/tools/ws/creation/core/commands/AddApplicationXMLCommand.java (revision 0) @@ -0,0 +1,74 @@ +package org.jboss.tools.ws.creation.core.commands; + +import java.io.File; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.jst.jee.project.facet.EarCreateDeploymentFilesDataModelProvider; +import org.eclipse.jst.jee.project.facet.ICreateDeploymentFilesDataModelProperties; +import org.eclipse.wst.common.componentcore.ComponentCore; +import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation; +import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; +import org.eclipse.wst.common.frameworks.datamodel.IDataModel; +import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation; + +public class AddApplicationXMLCommand extends AbstractDataModelOperation { + + private String earProject; + IStatus status; + + public AddApplicationXMLCommand(String earProject){ + this.earProject = earProject; + } + @Override + public IStatus execute(IProgressMonitor monitor, IAdaptable info) + throws ExecutionException { + status = Status.OK_STATUS; + IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(earProject); +// if(!hasApplicationXML(pro)){ +// IVirtualComponent vc = ComponentCore.createComponent(pro); +// IDataModel model = DataModelFactory.createDataModel(new EarCreateDeploymentFilesDataModelProvider()); +// model.setProperty(ICreateDeploymentFilesDataModelProperties.GENERATE_DD, vc); +// model.setProperty(ICreateDeploymentFilesDataModelProperties.TARGET_PROJECT, pro); +// IDataModelOperation op = model.getDefaultOperation(); +// try { +// op.execute(new NullProgressMonitor(), null); +// } catch (ExecutionException e1) { +// // Ignore +// } +// } + return status; + } + private boolean hasApplicationXML(IProject pro) { + File file = findFileByPath("application.xml",pro.getLocation().toOSString()); //$NON-NLS-1$ + if(file == null){ + return false; + } + return true; + } + private static File findFileByPath(String name, String path) { + File ret = null; + File folder = new File(path); + if (folder.isDirectory()) { + File[] files = folder.listFiles(); + for (File file : files) { + ret = findFileByPath(name, file.getAbsolutePath()); + if (ret != null) { + break; + } + } + } else { + if (name.equals(folder.getName())) { + ret = folder; + } + } + return ret; + } +}