Pārlūkot izejas kodu

SEC-806: Improved OSGi bundle version information support

Luke Taylor 17 gadi atpakaļ
vecāks
revīzija
0df9dee9dd
4 mainītis faili ar 130 papildinājumiem un 50 dzēšanām
  1. 26 1
      cas/pom.xml
  2. 22 20
      core-tiger/pom.xml
  3. 52 28
      core/pom.xml
  4. 30 1
      pom.xml

+ 26 - 1
cas/pom.xml

@@ -7,7 +7,7 @@
     </parent>
     <artifactId>spring-security-cas-client</artifactId>
     <name>Spring Security - CAS support</name>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <dependencies>
         <dependency>
@@ -39,4 +39,29 @@
             <optional>true</optional>
         </dependency>
     </dependencies>
+    
+    <properties>
+      	<spring.osgi.export>
+      	    org.springframework.security.*;version=${pom.version}
+      	</spring.osgi.export>
+            
+    	<spring.osgi.import>
+    	    org.springframework.security.*;version="[${pom.version},${pom.version}]",
+            org.springframework.beans.*;version="${spring.version.osgi}",
+            org.springframework.context.*;version="${spring.version.osgi}",
+            org.springframework.dao.*;version="${spring.version.osgi}";resolution:=optional,
+            org.springframework.util.*;version="${spring.version.osgi}",
+            javax.servlet.*;version="[2.4.0, 3.0.0)";resolution:=optional,
+            net.sf.ehcache.*;version="[1.4.1, 2.0.0)";resolution:=optional,
+            org.apache.commons.logging.*;version="[1.1.1, 2.0.0)",
+            org.jasig.cas.client.*;version="[3.1.1, 4.0.0)"
+    	</spring.osgi.import>
+
+    	<spring.osgi.private.pkg>
+    	    !org.springframework.security.*
+    	</spring.osgi.private.pkg>
+
+    	<spring.osgi.symbolic.name>org.springframework.security.annotation</spring.osgi.symbolic.name>        
+    </properties>    
+    
 </project>

+ 22 - 20
core-tiger/pom.xml

@@ -67,26 +67,6 @@
                     <target>1.5</target>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>${felix.version}</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>org.springframework.bundle.security.core.tiger</Bundle-SymbolicName>
-                        <Export-Package>org.springframework.security.*;version=${pom.version}</Export-Package>
-                        <Private-Package>!org.springframework.security.*</Private-Package>
-                        <Implementation-Title>${pom.name}</Implementation-Title>
-                        <Implementation-Version>${pom.version}</Implementation-Version>
-                        <Import-Package>
-                            org.springframework*;resolution:=optional;version="[2.0,2.6)",
-                            *;resolution:=optional
-                        </Import-Package>
-                    </instructions>
-                    <excludeDependencies>true</excludeDependencies>                    
-                </configuration>
-            </plugin>
         </plugins>
     </build>
     <reporting>
@@ -100,4 +80,26 @@
             </plugin>
         </plugins>
     </reporting>
+
+    <properties>
+      	<spring.osgi.export>
+      	    org.springframework.security.*;version=${pom.version}
+      	</spring.osgi.export>
+            
+    	<spring.osgi.import>
+    	    javax.annotation.*;version="[1.0.0, 2.0.0)",
+    	    org.springframework.security.*;version="[${pom.version},${pom.version}]",
+    	    org.springframework.core.*;version="${spring.version.osgi}"
+    	</spring.osgi.import>
+
+    	<spring.osgi.private.pkg>
+    	    !org.springframework.security.*
+    	</spring.osgi.private.pkg>
+    	
+    	<spring.osgi.include.res>
+    	    src/main/resources
+    	</spring.osgi.include.res>
+
+    	<spring.osgi.symbolic.name>org.springframework.security.annotation</spring.osgi.symbolic.name>        
+    </properties>    
 </project>

+ 52 - 28
core/pom.xml

@@ -141,34 +141,58 @@
             <optional>true</optional>
         </dependency>
     </dependencies>
+    
+    <properties>
+      	<spring.osgi.export>
+      	    org.springframework.security.*;version=${pom.version}
+      	</spring.osgi.export>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>${felix.version}</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>org.springframework.bundle.security.core</Bundle-SymbolicName>
-                        <Export-Package>org.springframework.security.*;version=${pom.version}</Export-Package>
-                        <Private-Package>!org.springframework.security.*</Private-Package>
-                        <Implementation-Title>${pom.name}</Implementation-Title>
-                        <Implementation-Version>${pom.version}</Implementation-Version>
-                        <Import-Package>
-                            org.springframework*;resolution:=optional;version="[2.0,2.6)",
-                        	*;resolution:=optional
-                        </Import-Package>
-<!--                         
-                        <Embed-Dependency>
-                        	*;scope=compile|runtime;inline=true
-                        </Embed-Dependency>
- -->                        
-                    </instructions>
-                </configuration>
-            </plugin>            
-        </plugins>
-    </build>
+    	<spring.osgi.import>
+    	    !com.ibm.websphere.security,
+            javax.servlet.*;version="[2.4.0, 3.0.0)";resolution:=optional,
+            net.sf.ehcache.*;version="[1.4.1, 2.0.0)";resolution:=optional,
+            org.aopalliance.*;version="[1.0.0, 2.0.0)",
+            org.apache.commons.codec.*;version="[1.3.0, 2.0.0)",
+            org.apache.commons.collections.*;version="[3.2.0, 4.0.0)",
+            org.apache.commons.lang.*;version="[2.1.0, 3.0.0)",
+            org.apache.commons.logging.*;version="[1.1.1, 2.0.0)",
+            org.apache.directory.server.configuration.*;version="[1.0.2, 2.0.0)";resolution:=optional,
+            org.apache.directory.server.core.*;version="[1.0.2, 2.0.0)";resolution:=optional,
+            org.apache.directory.server.protocol.*;version="[1.0.2, 2.0.0)";resolution:=optional,
+            org.aspectj.*;version="[1.5.4, 2.0.0)";resolution:=optional,
+            org.jaxen.*;version="[1.1.1, 2.0.0)";resolution:=optional,
+            org.springframework.aop.*;version="${spring.version.osgi}",
+            org.springframework.beans.*;version="${spring.version.osgi}",
+            org.springframework.context.*;version="${spring.version.osgi}",
+            org.springframework.core.*;version="${spring.version.osgi}",
+            org.springframework.dao.*;version="${spring.version.osgi}";resolution:=optional,
+            org.springframework.jdbc.*;version="${spring.version.osgi}";resolution:=optional,
+            org.springframework.ldap.*;version="[1.2.1.A, 2.0.0)";resolution:=optional,
+            org.springframework.metadata.*;version="${spring.version.osgi}",
+            org.springframework.mock.*;version="${spring.version.osgi}";resolution:=optional,
+            org.springframework.remoting.*;version="${spring.version.osgi}";resolution:=optional,
+            org.springframework.util.*;version="${spring.version.osgi}",
+            org.springframework.web.*;version="${spring.version.osgi}";resolution:=optional,
+            javax.crypto.*,
+            javax.naming.*,
+            javax.rmi.*,
+            javax.security.*,
+            javax.sql.*,
+            javax.xml.parsers.*,
+            org.w3c.dom.*,
+            org.xml.sax.*,            
+        	*;resolution:=optional    	    
+    	</spring.osgi.import>
+
+    	<spring.osgi.private.pkg>
+    	    !org.springframework.security.*
+    	</spring.osgi.private.pkg>
+<!--    	
+    	<spring.osgi.include.res>
+    	    src/main/resources
+    	</spring.osgi.include.res>
+-->
+    	<spring.osgi.symbolic.name>org.springframework.security</spring.osgi.symbolic.name>        
+    </properties>
 
 </project>

+ 30 - 1
pom.xml

@@ -451,6 +451,35 @@
                     </postProcess>
                 </configuration>
             </plugin>
+             <!-- OSGi Felix bundle plugin -->
+             <plugin>
+                 <groupId>org.apache.felix</groupId>
+                 <artifactId>maven-bundle-plugin</artifactId>
+                 <version>1.4.0</version>
+                 <extensions>true</extensions>
+
+                 <configuration>
+                     <obrRepository>NONE</obrRepository>        
+                     <instructions>
+                         <!-- bundle specific conf -->      
+                         <Bundle-Name>${artifactId}</Bundle-Name>
+                         <Bundle-SymbolicName>${spring.osgi.symbolic.name}</Bundle-SymbolicName>
+                         <Bundle-Vendor>SpringSource</Bundle-Vendor>
+                         <Export-Package>${spring.osgi.export}</Export-Package>
+                         <Import-Package>${spring.osgi.import}</Import-Package>
+                         <Private-Package>${spring.osgi.private.pkg}</Private-Package>
+                         <!--Include-Resource>${spring.osgi.include.res}</Include-Resource-->
+                         <!-- jar entries -->
+                         <Implementation-Title>Spring Security</Implementation-Title>
+                         <Implementation-Version>${pom.version}</Implementation-Version>
+                         <Implementation-Vendor>SpringSource</Implementation-Vendor>
+                         <Implementation-Vendor-Id>org.springframework.security</Implementation-Vendor-Id>
+                         <!-- Spring specific entries -->                         
+                         <!--Spring-Version>${spring.maven.artifact.version}</Spring-Version-->
+                     </instructions>
+                     <excludeDependencies>true</excludeDependencies> 
+                 </configuration>
+             </plugin>             
         </plugins>
     </build>
 
@@ -701,7 +730,7 @@
     </dependencyManagement>
     <properties>        
         <spring.version>2.0.8</spring.version>
-        <felix.version>1.4.0</felix.version>
+        <spring.version.osgi>[2.0.8, 3.0.0)</spring.version.osgi>
         <jstl.version>1.1.2</jstl.version>
 
         <docbook.source>${basedir}/src/docbkx</docbook.source>