[305306] undo last change
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
index db07568..7dada87 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
@@ -19,22 +19,46 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import junit.framework.Test;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
import org.eclipse.jst.j2ee.earcreation.IEarFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.internal.project.facet.EARFacetProjectCreationDataModelProvider;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetInstallDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.tests.OperationTestCase;
import org.eclipse.wst.common.tests.SimpleTestSuite;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.ServerUtil;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
+import org.eclipse.wst.server.core.model.IModuleResource;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
import org.eclipse.wtp.j2ee.headless.tests.appclient.operations.AppClientProjectCreationOperationTest;
import org.eclipse.wtp.j2ee.headless.tests.ejb.operations.EJBProjectCreationOperationTest;
import org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.JEEProjectCreationOperationTest;
@@ -389,4 +413,58 @@
public static List getJavaDependencyList_6() {
return Collections.emptyList();
}
+
+
+ public void testEAR50_WithVariableReference() throws Exception{
+ IDataModel dm = getEARDataModel("pEAR", "ourContent", null, null, JavaEEFacetConstants.EAR_5, false);
+ OperationTestCase.runAndVerify(dm);
+ IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject("pEAR");
+ if( p != null && p.exists()) {
+ try {
+ IVirtualComponent vc = ComponentCore.createComponent(p);
+ addArchiveComponent(vc);
+ // now verify
+ IModule module = ServerUtil.getModule(p);
+ assertNotNull(module);
+ ModuleDelegate md = (ModuleDelegate)module.loadAdapter(ModuleDelegate.class, new NullProgressMonitor());
+ IModuleResource[] resources = md.members();
+ assertEquals(1, resources.length);
+ assertEquals(1, ((IModuleFolder)resources[0]).members().length);
+ assertTrue(((IModuleFolder)resources[0]).members()[0] instanceof IModuleFile);
+ IModuleFile junitjar = (IModuleFile)((IModuleFolder)resources[0]).members()[0];
+ assertEquals("junit.jar", junitjar.getName());
+ } catch( CoreException ce ) {
+ ce.printStackTrace();
+ }
+ }
+ }
+
+ public void addArchiveComponent(IVirtualComponent component) throws CoreException {
+
+ IPath path = new Path("JUNIT_HOME/junit.jar"); //$NON-NLS-1$
+ IPath resolvedPath = JavaCore.getResolvedVariablePath(path);
+ java.io.File file = new java.io.File(resolvedPath.toOSString());
+ if( file.isFile() && file.exists()){
+ String type = VirtualArchiveComponent.VARARCHIVETYPE + IPath.SEPARATOR;
+ IVirtualComponent archive = ComponentCore.createArchiveComponent( component.getProject(), type +
+ path.toString());
+ IDataModelProvider provider = new AddComponentToEnterpriseApplicationDataModelProvider();
+ IDataModel dm = DataModelFactory.createDataModel(provider);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, component);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, Arrays.asList(archive));
+ Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent, String>();
+ uriMap.put(archive, "junit.jar");
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, uriMap);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, "/lib");
+ IStatus stat = dm.validateProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+ if (!stat.isOK())
+ throw new CoreException(stat);
+ try {
+ dm.getDefaultOperation().execute(new NullProgressMonitor(), null);
+ } catch (ExecutionException e) {
+ throw new CoreException(new Status(IStatus.ERROR, "test", e.getMessage()));
+ }
+
+ }
+ }
}