| package org.apache.maven.plugins.ejb; |
| |
| /* |
| * 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. |
| */ |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.util.LinkedList; |
| import java.util.List; |
| import java.util.jar.JarFile; |
| |
| import org.apache.maven.plugin.MojoExecutionException; |
| import org.apache.maven.plugin.testing.AbstractMojoTestCase; |
| import org.apache.maven.plugins.ejb.stub.MavenProjectResourcesStub; |
| import org.apache.maven.plugins.ejb.utils.JarContentChecker; |
| import org.apache.maven.project.MavenProject; |
| import org.codehaus.plexus.util.FileUtils; |
| |
| /** |
| * EJB plugin Test Case |
| */ |
| |
| public class EjbMojoTest |
| extends AbstractMojoTestCase |
| { |
| static final String DEFAULT_POM_PATH = "target/test-classes/unit/ejbmojotest/plugin-config.xml"; |
| |
| static final String DEFAULT_JAR_NAME = "testJar"; |
| |
| public void setUp() |
| throws Exception |
| { |
| super.setUp(); |
| } |
| |
| /** |
| * check test environment |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testTestEnvironment() |
| throws Exception |
| { |
| // Perform lookup on the Mojo to make sure everything is ok |
| lookupMojo(); |
| } |
| |
| /** |
| * Basic jar creation test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testDefaultWithoutClientJar() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "default-noclient" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| setupDefaultProject( project ); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, false ); |
| } |
| |
| /** |
| * Classified jar creation test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClassifiedJarWithoutClientJar() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "classified-noclient" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| setupDefaultProject( project ); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| setVariableValueToObject( mojo, "classifier", "classified" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, false, "classified" ); |
| } |
| |
| /** |
| * Basic jar creation test with client jar. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testDefaultWithClientJar() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "default-client" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| setupDefaultProject( project ); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| } |
| |
| /** |
| * Classified jar creation test with client jar. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClassifiedJarWithClientJar() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "classified-client" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| setupDefaultProject( project ); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| setVariableValueToObject( mojo, "classifier", "classified" ); |
| setVariableValueToObject( mojo, "clientClassifier", "classified-client" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true, "classified" ); |
| } |
| |
| /** |
| * Default ejb jar inclusion and exclusion test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testDefaultInclusionsExclusions() |
| throws Exception |
| { |
| |
| final MavenProjectResourcesStub project = createTestProject( "includes-excludes-default" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppBean.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppCMP.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppSession.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, false ); |
| assertJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", "META-INF/ejb-jar.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/AppBean.class", "org/sample/ejb/AppCMP.class", |
| "org/sample/ejb/AppSession.class" }, |
| null ); |
| } |
| |
| /** |
| * Client jar default inclusion and exclusion test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClientJarDefaultInclusionsExclusions() |
| throws Exception |
| { |
| |
| final MavenProjectResourcesStub project = createTestProject( "includes-excludes-client" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppBean.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppCMP.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppSession.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppStub.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| assertClientJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/AppStub.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/AppBean.class", |
| "org/sample/ejb/AppCMP.class", "org/sample/ejb/AppSession.class" } ); |
| } |
| |
| /** |
| * Client jar inclusion test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClientJarInclusions() |
| throws Exception |
| { |
| final List<String> inclusions = new LinkedList<String>(); |
| inclusions.add( "**/*Include.class" ); |
| |
| final MavenProjectResourcesStub project = createTestProject( "client-includes" ); |
| final EjbMojo mojo = lookupMojoWithSettings( project, inclusions, new LinkedList<String>(), null ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppInclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppExclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| assertClientJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/AppInclude.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/AppExclude.class" } ); |
| } |
| |
| /** |
| * Client jar exclusions test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClientJarExclusions() |
| throws Exception |
| { |
| |
| final List<String> exclusions = new LinkedList<String>(); |
| exclusions.add( "**/*Exclude.class" ); |
| |
| final MavenProjectResourcesStub project = createTestProject( "client-excludes" ); |
| final EjbMojo mojo = lookupMojoWithSettings( project, new LinkedList<String>(), exclusions, null ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppInclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppExclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| assertClientJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/AppInclude.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/AppExclude.class" } ); |
| |
| } |
| |
| /** |
| * Main jar exclusions test. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testMainJarExclusions() |
| throws Exception |
| { |
| final List<String> exclusions = new LinkedList<String>(); |
| exclusions.add( "**/*Exclude.class" ); |
| |
| final MavenProjectResourcesStub project = createTestProject( "main-excludes" ); |
| final EjbMojo mojo = |
| lookupMojoWithSettings( project, new LinkedList<String>(), new LinkedList<String>(), exclusions ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppInclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppExclude.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| assertJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/AppInclude.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/AppExclude.class" } ); |
| |
| } |
| |
| /** |
| * Client jar inclusion test with a sub-package. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClientJarInclusionsWithSubPackage() |
| throws Exception |
| { |
| final List<String> inclusions = new LinkedList<String>(); |
| inclusions.add( "org/sample/ejb/*.class" ); |
| |
| final MavenProjectResourcesStub project = createTestProject( "client-includes-subpackage" ); |
| |
| final EjbMojo mojo = lookupMojoWithSettings( project, inclusions, new LinkedList<String>(), null ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/App.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/impl/AppImpl.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| assertClientJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb/App.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/impl/AppImpl.class", |
| "org/sample/ejb/impl" } ); |
| } |
| |
| /** |
| * Client jar exclusions test that leaves an empty package. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testClientJarExclusionsWithEmptyPackage() |
| throws Exception |
| { |
| |
| final LinkedList<String> exclusions = new LinkedList<String>(); |
| exclusions.add( "org/sample/ejb/**" ); |
| |
| final MavenProjectResourcesStub project = createTestProject( "client-excludes-emptypackage" ); |
| final EjbMojo mojo = lookupMojoWithSettings( project, new LinkedList<String>(), exclusions, null ); |
| |
| // put this on the target output dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb/AppOne.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| project.addFile( "org/sample/ejb2/AppTwo.class", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.TRUE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, true ); |
| |
| // We check that the created jar does not contain the org/sample/ejb package empty |
| assertClientJarContent( project, |
| new String[] { "META-INF/MANIFEST.MF", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.xml", |
| "META-INF/maven/org.apache.maven.test/maven-test-plugin/pom.properties", |
| "org/sample/ejb2/AppTwo.class" }, |
| new String[] { "META-INF/ejb-jar.xml", "org/sample/ejb/AppOne.class", |
| "org/sample/ejb" } ); |
| |
| } |
| |
| /** |
| * Tests if the mojo throws an exception when the EJB version is < 3.0 and no deployment descriptor is present. The |
| * case with deployment descriptor present is covered by previous tests. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testEjbComplianceVersionTwoDotOneWithoutDescriptor() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "compliance-nodescriptor-2.1" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "2.1" ); |
| |
| try |
| { |
| mojo.execute(); |
| fail( "Exception should be thrown: No deployment descriptor present." ); |
| } |
| catch ( MojoExecutionException e ) |
| { |
| // OK |
| } |
| } |
| |
| /** |
| * Tests if the jar is created under EJB version 3.0 with deployment descriptor present. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testEjbComplianceVersionThreeWithDescriptor() |
| throws Exception |
| { |
| |
| final MavenProjectResourcesStub project = createTestProject( "compliance-descriptor-3" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| // put this on the target dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "3.0" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, false ); |
| |
| } |
| |
| /** |
| * Tests if the jar is created under EJB version 3.0 without deployment descriptor present. |
| * |
| * @throws Exception if any exception occurs |
| */ |
| public void testEjbCompliance_3_0_WithoutDescriptor() |
| throws Exception |
| { |
| final MavenProjectResourcesStub project = createTestProject( "compliance-nodescriptor-3" ); |
| final EjbMojo mojo = lookupMojoWithDefaultSettings( project ); |
| |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| setVariableValueToObject( mojo, "generateClient", Boolean.FALSE ); |
| setVariableValueToObject( mojo, "ejbVersion", "3.0" ); |
| |
| mojo.execute(); |
| |
| assertJarCreation( project, true, false ); |
| } |
| |
| protected EjbMojo lookupMojo() |
| throws Exception |
| { |
| File pomFile = new File( getBasedir(), DEFAULT_POM_PATH ); |
| EjbMojo mojo = (EjbMojo) lookupMojo( "ejb", pomFile ); |
| |
| assertNotNull( mojo ); |
| |
| return mojo; |
| } |
| |
| protected MavenProjectResourcesStub createTestProject( final String testName ) |
| throws Exception |
| { |
| // this will automatically create the isolated |
| // test environment |
| return new MavenProjectResourcesStub( testName ); |
| } |
| |
| protected void setupDefaultProject( final MavenProjectResourcesStub project ) |
| throws Exception |
| { |
| // put this on the target dir |
| project.addFile( "META-INF/ejb-jar.xml", MavenProjectResourcesStub.OUTPUT_FILE ); |
| // put this on the root dir |
| project.addFile( "pom.xml", MavenProjectResourcesStub.ROOT_FILE ); |
| // start creating the environment |
| project.setupBuildEnvironment(); |
| |
| } |
| |
| protected EjbMojo lookupMojoWithSettings( final MavenProject project, List<String> clientIncludes, |
| List<String> clientExcludes, List<String> excludes ) |
| throws Exception |
| { |
| final EjbMojo mojo = lookupMojo(); |
| setVariableValueToObject( mojo, "project", project ); |
| setVariableValueToObject( mojo, "outputDirectory", new File( project.getBuild().getDirectory() ) ); |
| setVariableValueToObject( mojo, "sourceDirectory", new File( project.getBuild().getOutputDirectory() ) ); |
| setVariableValueToObject( mojo, "jarName", DEFAULT_JAR_NAME ); |
| setVariableValueToObject( mojo, "ejbJar", EjbMojo.DEFAULT_EJBJAR ); |
| setVariableValueToObject( mojo, "clientExcludes", clientExcludes ); |
| setVariableValueToObject( mojo, "clientIncludes", clientIncludes ); |
| setVariableValueToObject( mojo, "excludes", excludes ); |
| setVariableValueToObject( mojo, "clientClassifier", EjbMojo.DEFAULT_CLIENT_CLASSIFIER ); |
| |
| return mojo; |
| } |
| |
| protected EjbMojo lookupMojoWithDefaultSettings( final MavenProject project ) |
| throws Exception |
| { |
| return lookupMojoWithSettings( project, new LinkedList<String>(), new LinkedList<String>(), null ); |
| } |
| |
| protected void assertJarCreation( final MavenProject project, boolean ejbJarCreated, boolean ejbClientJarCreated, |
| String classifier ) |
| { |
| String checkedJarFile; |
| String checkedClientJarFile; |
| |
| if ( classifier == null ) |
| { |
| checkedJarFile = project.getBuild().getDirectory() + "/" + DEFAULT_JAR_NAME + ".jar"; |
| checkedClientJarFile = project.getBuild().getDirectory() + "/" + DEFAULT_JAR_NAME + "-client.jar"; |
| } |
| else |
| { |
| checkedJarFile = project.getBuild().getDirectory() + "/" + DEFAULT_JAR_NAME + "-" + classifier + ".jar"; |
| checkedClientJarFile = |
| project.getBuild().getDirectory() + "/" + DEFAULT_JAR_NAME + "-" + classifier + "-client.jar"; |
| } |
| |
| assertEquals( "Invalid value for ejb-jar creation", ejbJarCreated, FileUtils.fileExists( checkedJarFile ) ); |
| assertEquals( "Invalid value for ejb-jar client creation", ejbClientJarCreated, |
| FileUtils.fileExists( checkedClientJarFile ) ); |
| |
| } |
| |
| protected void assertJarCreation( final MavenProject project, boolean ejbJarCreated, boolean ejbClientJarCreated ) |
| { |
| assertJarCreation( project, ejbJarCreated, ejbClientJarCreated, null ); |
| |
| } |
| |
| private void doAssertJarContent( final MavenProject project, final String fileName, final String[] expectedFiles, |
| final String[] unexpectedFiles ) |
| throws IOException |
| { |
| String checkedJarFile = project.getBuild().getDirectory() + "/" + fileName; |
| if ( expectedFiles != null ) |
| { |
| final JarContentChecker inclusionChecker = new JarContentChecker(); |
| |
| // set expected jar contents |
| for ( String expectedFile : expectedFiles ) |
| { |
| inclusionChecker.addFile( new File( expectedFile ) ); |
| } |
| assertTrue( inclusionChecker.isOK( new JarFile( checkedJarFile ) ) ); |
| } |
| if ( unexpectedFiles != null ) |
| { |
| final JarContentChecker exclusionChecker = new JarContentChecker(); |
| for ( String unexpectedFile : unexpectedFiles ) |
| { |
| exclusionChecker.addFile( new File( unexpectedFile ) ); |
| } |
| assertFalse( exclusionChecker.isOK( new JarFile( checkedJarFile ) ) ); |
| } |
| |
| } |
| |
| protected void assertJarContent( final MavenProject project, final String[] expectedFiles, |
| final String[] unexpectedFiles ) |
| throws IOException |
| { |
| |
| doAssertJarContent( project, DEFAULT_JAR_NAME + ".jar", expectedFiles, unexpectedFiles ); |
| } |
| |
| protected void assertClientJarContent( final MavenProject project, final String[] expectedFiles, |
| final String[] unexpectedFiles ) |
| throws IOException |
| { |
| |
| doAssertJarContent( project, DEFAULT_JAR_NAME + "-client.jar", expectedFiles, unexpectedFiles ); |
| |
| } |
| } |