dev@glassfish.java.net

ACTION : review pom.xml changes : Merging a few Modules in v3/security

From: Kumar Jayanti <Vbkumar.Jayanti_at_Sun.COM>
Date: Tue, 30 Jun 2009 16:49:05 +0530

Hi Jane, jerome, Snjezana,

 I have a plan of merging 5 security modules security/core,
security/realm, security/common and two API packages
javax.security.auth.message and javax.security.jacc into a single
module called security/core.

The reasons for this are two fold :
-----------------------------------
1. Startup performance improves if we reduce the number of modules.
2. Merging of security/realms into security/core would help from a
Security perspective since currently our ProgrammaticLogin feature
(exposed Public API from V2) is broken for JavaSE clients due to the
lack of Habitat on SE side. We had to use a Habitat to locate the
delegate service because the actual ProgrammaticLogin class has
dependencies on lot of internal security classes but the package it was
placed in (clubbed with other unrelated exposed public API's) prevented
us from placing it in security/core.

As a first step i am merging 3 modules into 1 and leaving alone the two
API packages mentioned above. The changes to pom.xml files are extensive
(spanning many modules). So please review and let me know. I am worried
especially if i am missing something w.r.t packaging.

 I have done a clean-build with my changes and ran QL and it worked. I
also tried a few security related admin CLI commands and loaded the
ADMIN GUI without any problems and tried out a few things inside the GUI.

Here are the diffs for the pom.xml/osgi.bundle changes :

Index: distributions/distributions.xml
===================================================================

--- distributions/distributions.xml (revision 28224)

+++ distributions/distributions.xml (working copy)

@@ -298,23 +298,20 @@

     <resolveArtifact artifactId="cli-optional"
groupId="org.glassfish.admin" property="cli-optional.jar"/>
     <resolveArtifact artifactId="server-mgmt"
groupId="org.glassfish.admin" property="server-mgmt.jar"/>
     <resolveArtifact artifactId="admin-util"
groupId="org.glassfish.admin" property="admin-util.jar"/>
- <resolveArtifact artifactId="realms"
groupId="org.glassfish.security" property="realms.jar"/>
+ <resolveArtifact artifactId="security"
groupId="org.glassfish.security" property="security.jar"/>
     <resolveArtifact artifactId="amx-api"
groupId="org.glassfish.common" property="amx-api.jar"/>
- <resolveArtifact artifactId="securitycommon"
groupId="org.glassfish.security" property="securitycommon.jar"/>
 
     <echo message="cli-optional jar: ${cli-optional.jar}"/>
     <echo message="server-mgmt jar: ${server-mgmt.jar}"/>
     <echo message="admin-util jar: ${admin-util.jar}"/>
- <echo message="realms jar: ${realms.jar}"/>
+ <echo message="security jar: ${security.jar}"/>
     <echo message="amx-api jar: ${amx-api.jar}"/>
- <echo message="securitycommon jar: ${securitycommon.jar}"/>
 
     <copy file="${cli-optional.jar}"
tofile="${modules.dir}/cli-optional.jar"/>
     <copy file="${server-mgmt.jar}"
tofile="${modules.dir}/server-mgmt.jar"/>
     <copy file="${admin-util.jar}" tofile="${modules.dir}/admin-util.jar"/>
- <copy file="${realms.jar}" tofile="${modules.dir}/realms.jar"/>
+ <copy file="${security.jar}" tofile="${modules.dir}/security.jar"/>
     <copy file="${amx-api.jar}" tofile="${modules.dir}/amx-api.jar"/>
- <copy file="${securitycommon.jar}"
tofile="${modules.dir}/securitycommon.jar"/>
 </target>
 
 <!-- delete artifacts required to create default domain; these are not
bundled as part of nucleus -->
@@ -324,10 +321,9 @@

             <include name="cli-optional.jar"/>
             <include name="server-mgmt.jar"/>
             <include name="admin-util.jar"/>
- <include name="realms.jar"/>
+ <include name="security.jar"/>
             <include name="backup.jar"/>
             <include name="amx-api.jar"/>
- <include name="securitycommon.jar"/>
         </fileset>
     </delete>
 </target>
Index: distributions/nucleus/pom.xml

===================================================================

--- distributions/nucleus/pom.xml (revision 28224)

+++ distributions/nucleus/pom.xml (working copy)

@@ -196,17 +196,11 @@

         </dependency>
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
+ <artifactId>security</artifactId>
             <version>${project.version}</version>
             <type>jar</type>
         </dependency>
         <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- <type>jar</type>
- </dependency>
- <dependency>
             <groupId>org.glassfish.common</groupId>
             <artifactId>amx-api</artifactId>
             <version>${project.version}</version>
Index: admin/cli/pom.xml

===================================================================

--- admin/cli/pom.xml (revision 28224)

+++ admin/cli/pom.xml (working copy)

@@ -135,7 +135,7 @@

                             
<mainClass>com.sun.enterprise.admin.cli.AsadminMain</mainClass>
                         </manifest>
                         <manifestEntries>
- <Class-Path>cli-framework.jar cli-optional.jar
glassfish.jar server-mgmt.jar common-util.jar admin-util.jar
launcher.jar realms.jar backup.jar amx-api.jar stax-osgi.jar
admin-cli-l10n.jar securitycommon.jar glassfish-api.jar</Class-Path>
+ <Class-Path>cli-framework.jar cli-optional.jar
glassfish.jar server-mgmt.jar common-util.jar admin-util.jar
launcher.jar backup.jar amx-api.jar stax-osgi.jar admin-cli-l10n.jar
security.jar glassfish-api.jar</Class-Path>
                         <!-- 5776: we do not need backup jar entry, but
I retain it, Kedar -->
                         </manifestEntries>
                     </archive>
Index: admin/server-mgmt/pom.xml

===================================================================

--- admin/server-mgmt/pom.xml (revision 28224)

+++ admin/server-mgmt/pom.xml (working copy)

@@ -83,7 +83,7 @@

     <dependencies>

         <dependency>

             <groupId>org.glassfish.security</groupId>

- <artifactId>realms</artifactId>

+ <artifactId>security</artifactId>

             <version>${project.version}</version>

         </dependency>

         <dependency>

Index: common/amx-ext-impl/pom.xml

===================================================================

--- common/amx-ext-impl/pom.xml (revision 28224)

+++ common/amx-ext-impl/pom.xml (working copy)

@@ -77,7 +77,7 @@

        
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
+ <artifactId>security</artifactId>
             <version>${project.version}</version>
         </dependency>
        
Index: common/amx-impl/pom.xml

===================================================================

--- common/amx-impl/pom.xml (revision 28224)

+++ common/amx-impl/pom.xml (working copy)

@@ -119,7 +119,7 @@

        
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
+ <artifactId>security</artifactId>
             <version>${project.version}</version>
         </dependency>
 
Index: common/container-common/pom.xml

===================================================================

--- common/container-common/pom.xml (revision 28224)

+++ common/container-common/pom.xml (working copy)

@@ -134,7 +134,7 @@

         </dependency>
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
+ <artifactId>security</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
Index: admingui/core/pom.xml

===================================================================

--- admingui/core/pom.xml (revision 28224)

+++ admingui/core/pom.xml (working copy)

@@ -131,7 +131,7 @@

 

         <dependency>

             <groupId>org.glassfish.security</groupId>

- <artifactId>securitycommon</artifactId>

+ <artifactId>security</artifactId>

             <version>${project.version}</version>

         <scope>provided</scope>

         </dependency>

Index: security/webintegration/pom.xml

===================================================================

--- security/webintegration/pom.xml (revision 28263)

+++ security/webintegration/pom.xml (working copy)

@@ -80,11 +80,6 @@

             <version>${project.version}</version>
         </dependency>
         <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
             <groupId>org.glassfish.admin</groupId>
             <artifactId>config-api</artifactId>
             <version>${project.version}</version>
Index: security/appclient.security/pom.xml

===================================================================

--- security/appclient.security/pom.xml (revision 28263)

+++ security/appclient.security/pom.xml (working copy)

@@ -80,11 +80,6 @@

             <groupId>com.sun.enterprise</groupId>
             <artifactId>hk2</artifactId>
         </dependency>
- <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
         <dependency>
             <groupId>org.glassfish.security</groupId>
             <artifactId>security</artifactId>
Index: security/ejb.security/pom.xml

===================================================================

--- security/ejb.security/pom.xml (revision 28263)

+++ security/ejb.security/pom.xml (working copy)

@@ -101,11 +101,6 @@

         </dependency>
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.security</groupId>
             <artifactId>security</artifactId>
             <version>${project.version}</version>
         </dependency>
Index: security/webservices.security/pom.xml

===================================================================

--- security/webservices.security/pom.xml (revision 28263)

+++ security/webservices.security/pom.xml (working copy)

@@ -134,11 +134,6 @@

         </dependency> -->
         <dependency>
             <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.security</groupId>
             <artifactId>security</artifactId>
             <version>${project.version}</version>
         </dependency>




Index: security/core/osgi.bundle

===================================================================

--- security/core/osgi.bundle (revision 28263)

+++ security/core/osgi.bundle (working copy)

@@ -12,7 +12,31 @@

                         com.sun.enterprise.security.jmac.config; \
                         com.sun.enterprise.security.web.integration; \
                         com.sun.enterprise.security.provider; \
+ com.iplanet.ias.security.auth.realm; \
+ com.sun.appserv.security; \
+ com.sun.enterprise.security.auth.realm; \
+
com.sun.enterprise.security.auth.realm.certificate; \
+ com.sun.enterprise.security.auth.realm.file; \
+ com.sun.enterprise.security.auth.realm.jdbc; \
+ com.sun.enterprise.security.auth.realm.ldap; \
+ com.sun.enterprise.security.auth.realm.solaris; \
+ com.sun.enterprise.security.util; \
+ com.sun.enterprise.common.iiop.security; \
+ com.sun.enterprise.security.auth.digest.api; \
+ com.sun.enterprise.security.auth.digest.impl; \
+ com.sun.enterprise.security.auth.login.common; \
+ com.sun.enterprise.security.common; \
+ com.sun.logging.enterprise.system.core.security; \
+ com.sun.enterprise.security.ssl; \
+ com.sun.enterprise.server.pluggable; \
                         com.sun.enterprise.security.jacc.provider;
version=${project.osgi.version}
-Import-Package: \
- com.sun.logging.enterprise.system.core.security, \
- *
+Bundle-NativeCode: \
+ lib/libsolsparcauth.so ; \
+ osname=SunOS ; \
+ osname=Solaris ; \
+ processor=sparc , \
+ lib/libsolx86auth.so ; \
+ osname=SunOS ; \
+ osname=Solaris ; \
+ processor=x86 , \
+ *

\ No newline at end of file

Index: security/core/pom.xml

===================================================================

--- security/core/pom.xml (revision 28263)

+++ security/core/pom.xml (working copy)

@@ -67,6 +67,24 @@

                     <include>**/*.properties</include>
                 </includes>
             </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.1</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.so</include>
+ </includes>
+ </resource>
         </resources>
     </build>
     <dependencies>
@@ -75,25 +93,11 @@

             <artifactId>hk2</artifactId>
         </dependency>
         <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
             <groupId>org.glassfish.admin</groupId>
             <artifactId>config-api</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
- <groupId>org.glassfish.common</groupId>
- <artifactId>glassfish-api</artifactId>
- </dependency>
- <dependency>
             <groupId>org.glassfish.deployment</groupId>
             <artifactId>dol</artifactId>
             <version>${project.version}</version>
@@ -145,5 +149,15 @@

             <artifactId>ejb-internal-api</artifactId>
             <version>${project.version}</version>
         </dependency>
+ <dependency>
+ <groupId>org.glassfish.external</groupId>
+ <artifactId>ldapbp-repackaged</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.connectors</groupId>
+ <artifactId>connectors-internal-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
     </dependencies>
 </project>
Index: security/pom.xml

===================================================================

--- security/pom.xml (revision 28263)

+++ security/pom.xml (working copy)

@@ -50,9 +50,7 @@

     <packaging>pom</packaging>
     <name>GlassFish Security Infrastructure and Technology Integration
Modules</name>
     <modules>
- <module>realm</module>
         <module>webintegration</module>
- <module>common</module>
         <module>core</module>
         <module>security-all</module>
         <module>inmemory.jacc.provider</module>
Index: security/security-all/pom.xml

===================================================================

--- security/security-all/pom.xml (revision 28263)

+++ security/security-all/pom.xml (working copy)

@@ -70,16 +70,6 @@

             <version>${project.version}</version>
         </dependency>
         <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>realms</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.security</groupId>
- <artifactId>securitycommon</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
             <groupId>org.glassfish</groupId>
             <artifactId>javax.security.auth.message</artifactId>
             <version>${project.version}</version>

regards,
kumar