[MEAR-248] Support lookup-name in env-entry section
 o Added lookup-name in env-entry section.


git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1806368 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/plugins/ear/EnvEntry.java b/src/main/java/org/apache/maven/plugins/ear/EnvEntry.java
index 4b1be70..cd4884e 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EnvEntry.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EnvEntry.java
@@ -41,6 +41,8 @@
 

     static final String ENV_ENTRY_VALUE = "env-entry-value";

 

+    static final String ENV_LOOKUP_NAME = "lookup-name";

+

     private final String description;

 

     private final String name;

@@ -49,7 +51,9 @@
 

     private final String value;

 

-    public EnvEntry( String description, String name, String type, String value )

+    private final String lookupName;

+

+    public EnvEntry( String description, String name, String type, String value, String lookupName )

     {

         if ( StringUtils.isEmpty( name ) )

         {

@@ -66,6 +70,7 @@
         this.name = name;

         this.type = type;

         this.value = value;

+        this.lookupName = lookupName;

     }

 

     public String getDescription()

@@ -88,6 +93,11 @@
         return value;

     }

 

+    public String getLookupName()

+    {

+        return lookupName;

+    }

+

     /**

      * Appends the <tt>XML</tt> representation of this env-entry.

      * 

@@ -119,6 +129,12 @@
             doWriteElement( writer, ENV_ENTRY_VALUE, getValue() );

         }

 

+        // lookup-name

+        if ( getLookupName() != null )

+        {

+            doWriteElement( writer, ENV_LOOKUP_NAME, getLookupName() );

+        }

+

         // end of env-entry

         writer.endElement();

     }

@@ -132,7 +148,8 @@
 

     public String toString()

     {

-        return "env-entry [name=" + getName() + ", type=" + getType() + ", value=" + getValue() + "]";

+        return "env-entry [name=" + getName() + ", type=" + getType() + ", value=" + getValue() + ", lookup-name="

+            + getLookupName() + "]";

     }

 

 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/maven/plugins/ear/GenerateApplicationXmlMojo.java b/src/main/java/org/apache/maven/plugins/ear/GenerateApplicationXmlMojo.java
index a430d53..7a627fd 100644
--- a/src/main/java/org/apache/maven/plugins/ear/GenerateApplicationXmlMojo.java
+++ b/src/main/java/org/apache/maven/plugins/ear/GenerateApplicationXmlMojo.java
@@ -356,6 +356,8 @@
 

             final PlexusConfiguration[] allEnvEntries = envEntries.getChildren( EnvEntry.ENV_ENTRY );

 

+            getLog().debug( "buildEnvEntries: allEnvEntries:" + allEnvEntries );

+            getLog().debug( "buildEnvEntries: allEnvEntries size:" + allEnvEntries.length );

             for ( PlexusConfiguration envEntry : allEnvEntries )

             {

                 // CHECKSTYLE_OFF: LineLength

@@ -367,12 +369,14 @@
                     interpolate( ssi, envEntry.getChild( EnvEntry.ENV_ENTRY_TYPE ).getValue() );

                 final String childEnvEntryValue =

                     interpolate( ssi, envEntry.getChild( EnvEntry.ENV_ENTRY_VALUE ).getValue() );

+                final String childEnvLookupNameValue =

+                    interpolate( ssi, envEntry.getChild( EnvEntry.ENV_LOOKUP_NAME ).getValue() );

                 // CHECKSTYLE_ON: LineLength

 

                 try

                 {

                     result.add( new EnvEntry( childDescription, childEnvEntryName, childEnvEntryType,

-                                              childEnvEntryValue ) );

+                                              childEnvEntryValue, childEnvLookupNameValue ) );

                 }

                 catch ( IllegalArgumentException e )

                 {

diff --git a/src/site/apt/examples/specifying-env-entries-for-the-generated-application-xml.apt.vm b/src/site/apt/examples/specifying-env-entries-for-the-generated-application-xml.apt.vm
index b2091f8..04420a3 100644
--- a/src/site/apt/examples/specifying-env-entries-for-the-generated-application-xml.apt.vm
+++ b/src/site/apt/examples/specifying-env-entries-for-the-generated-application-xml.apt.vm
@@ -4,7 +4,7 @@
   Stephane Nicoll
   <snicoll@apache.org>
   ------
-  January 25, 2012
+  August 27, 2017
 
 ~~ Copyright 2006 The Apache Software Foundation.
 ~~
@@ -45,6 +45,7 @@
                <env-entry-name>complete</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>4</env-entry-value>
+               <lookup-name>java:global/Example</lookup-name>
              </env-entry>
              <env-entry>
                <env-entry-name>no-type</env-entry-name>
diff --git a/src/test/java/org/apache/maven/plugins/ear/EnvEntryTest.java b/src/test/java/org/apache/maven/plugins/ear/EnvEntryTest.java
index 2ad6dfa..20f8d00 100644
--- a/src/test/java/org/apache/maven/plugins/ear/EnvEntryTest.java
+++ b/src/test/java/org/apache/maven/plugins/ear/EnvEntryTest.java
@@ -40,48 +40,55 @@
 

     public static final String VALUE = "34";

 

+    public static final String LOOKUP_NAME = "lookupName";

+

     @Test

     public void createComplete()

     {

-        final EnvEntry envEntry = new EnvEntry( DESCRIPTION, NAME, TYPE, VALUE );

-        assertEnvEntry( envEntry, DESCRIPTION, NAME, TYPE, VALUE );

+        final EnvEntry envEntry = new EnvEntry( DESCRIPTION, NAME, TYPE, VALUE, LOOKUP_NAME );

+        assertEnvEntry( envEntry, DESCRIPTION, NAME, TYPE, VALUE, LOOKUP_NAME );

     }

 

     @Test

     public void createWithoutTypeButValue()

     {

-        final EnvEntry envEntry = new EnvEntry( null, NAME, null, VALUE );

-        assertEnvEntry( envEntry, null, NAME, null, VALUE );

+        final EnvEntry envEntry = new EnvEntry( null, NAME, null, VALUE, LOOKUP_NAME );

+        assertEnvEntry( envEntry, null, NAME, null, VALUE, LOOKUP_NAME );

     }

 

     @Test( expected = IllegalArgumentException.class )

     public void createWithoutName()

     {

-        new EnvEntry( DESCRIPTION, null, TYPE, VALUE );

+        new EnvEntry( DESCRIPTION, null, TYPE, VALUE, LOOKUP_NAME );

 

     }

 

     @Test( expected = IllegalArgumentException.class )

     public void createWithEmptyName()

     {

-        new EnvEntry( DESCRIPTION, "", TYPE, VALUE );

+        new EnvEntry( DESCRIPTION, "", TYPE, VALUE, LOOKUP_NAME );

     }

 

     @Test( expected = IllegalArgumentException.class )

     public void createWithNullTypeAndNoValue()

     {

-        new EnvEntry( DESCRIPTION, NAME, null, null );

-

+        new EnvEntry( DESCRIPTION, NAME, null, null, LOOKUP_NAME );

     }

 

     @Test( expected = IllegalArgumentException.class )

     public void createWithEmptyTypeAndNoValue()

     {

-        new EnvEntry( DESCRIPTION, NAME, "", null );

-

+        new EnvEntry( DESCRIPTION, NAME, "", null, LOOKUP_NAME );

     }

 

-    private void assertEnvEntry( EnvEntry actual, String description, String name, String type, String value )

+    @Test

+    public void createWithEmptyLookupName()

+    {

+        new EnvEntry( DESCRIPTION, NAME, TYPE, VALUE, null );

+    }

+

+    private void assertEnvEntry( EnvEntry actual, String description, String name, String type, String value,

+                                 String lookupName )

     {

         assertNotNull( "Env entry could not be null", actual );

         assertNotNull( "ToString could not be null", actual.toString() );

@@ -89,6 +96,7 @@
         assertEquals( "Wrong env entry name for [" + actual + "]", name, actual.getName() );

         assertEquals( "Wrong env entry type for [" + actual + "]", type, actual.getType() );

         assertEquals( "Wrong env entry value for [" + actual + "]", value, actual.getValue() );

+        assertEquals( "Wrong env entry value for [" + actual + "]", lookupName, actual.getLookupName() );

 

     }

 }