You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ah...@apache.org on 2009/04/28 01:06:24 UTC

svn commit: r769197 - /maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java

Author: aheritier
Date: Mon Apr 27 23:06:24 2009
New Revision: 769197

URL: http://svn.apache.org/viewvc?rev=769197&view=rev
Log:
MECLIPSE-455 : Invalid dependent module archive name for EJB artifact

Added:
    maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java   (with props)

Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java?rev=769197&view=auto
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java Mon Apr 27 23:06:24 2009
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.plugin.eclipse.writers;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.eclipse.writers.testutils.TestEclipseWriterConfig;
+import org.apache.maven.plugin.eclipse.writers.wtp.EclipseWtpComponent15Writer;
+import org.apache.maven.plugin.eclipse.writers.wtp.EclipseWtpComponentWriter;
+import org.apache.maven.plugin.ide.IdeDependency;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.tools.easymock.TestFileManager;
+import org.jdom.Attribute;
+import org.jdom.Document;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+import org.jdom.xpath.XPath;
+
+/**
+ * Component writer test for WTP 1.5.
+ * 
+ * @author Steffen Grunwald
+ */
+public class EclipseWtpComponent15WriterTest extends TestCase {
+
+    private TestFileManager fileManager = new TestFileManager(
+            "EclipseWtpComponent15Writer.unitTest.", "");
+
+    protected void tearDown() throws IOException {
+        fileManager.cleanUp();
+    }
+
+    /**
+     * Tests the creation of the ejb module references in the org.eclipse.wst.common.component file for:
+     * <ul>
+     *  <li>component file of EAR
+     *  <li>WTP 1.5
+     *  <li>dep is referenced project
+     * </ul>
+     * 
+     * The archivename is expected to be jar - independent from the packaging (ejb).
+     * 
+     * @throws MojoExecutionException Exception
+     * @throws IOException Exception
+     * @throws JDOMException Exception 
+     */
+    public void testWriteEjbComponentMECLIPSE455()
+            throws MojoExecutionException, IOException, JDOMException {
+
+        TestEclipseWriterConfig config = new TestEclipseWriterConfig();
+
+        config.setWtpVersion(1.5f);
+        config.setEclipseProjectName("test-project");
+
+        File basedir = fileManager.createTempDir();
+        File pom = new File(basedir, "pom.xml");
+        pom.createNewFile();
+        
+        MavenProject project = new MavenProject();
+        project.setFile(pom);
+        
+        config.setProject(project);
+        config.setProjectBaseDir(basedir);
+        
+        config.setEclipseProjectDirectory(basedir);
+        config.setPackaging("ear");
+        
+        // add an ejb3 and ejb packaged dependency
+        config.setDeps(new IdeDependency[]{createDep("ejb"), createDep("jar")});
+        
+        EclipseWtpComponentWriter lWriter = new EclipseWtpComponent15Writer();
+
+        Log log = new TestLog();
+
+        lWriter.init(log, config);
+
+        lWriter.write();
+
+        // now check extension of archivenames to be jar
+        SAXBuilder builder = new SAXBuilder( false );
+
+        Document doc = builder.build( new File( basedir, ".settings/org.eclipse.wst.common.component" ) );
+
+        XPath archiveNames = XPath.newInstance( "//dependent-module/@archiveName" );
+        
+        assertEquals("Must be 2 modules", 2, archiveNames.selectNodes( doc ).size());
+        for ( Iterator it = archiveNames.selectNodes( doc ).iterator(); it.hasNext(); )
+        {
+            Attribute attribute = (Attribute) it.next();
+            
+            String archiveName = attribute.getValue();
+            String extension = archiveName.substring(archiveName.lastIndexOf(".") + 1).toLowerCase();
+            
+            assertEquals("Must be of type jar", "jar", extension);
+        }
+        
+    }
+
+    private IdeDependency createDep(String packagingType) {
+        IdeDependency dependency = new IdeDependency();
+        dependency.setGroupId("g");
+        dependency.setArtifactId(packagingType + "Artifact");
+        dependency.setVersion("v");
+        dependency.setReferencedProject(true);
+        dependency.setAddedToClasspath(true);
+        dependency.setEclipseProjectName(packagingType + "Project");
+        dependency.setType(packagingType);
+        return dependency;
+    }
+
+    private static final class TestLog extends SystemStreamLog {
+        public boolean isDebugEnabled() {
+            return true;
+        }
+    }
+
+}

Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponent15WriterTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision