FELIX-3981 Create a sample project for demonstrating Felix JAAS main features
Adding a launcher module to package the bundles as part of one executable jar based on Sling Launchpad support.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1460607 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/examples/jaas/launcher/pom.xml b/examples/jaas/launcher/pom.xml
new file mode 100644
index 0000000..84c186e
--- /dev/null
+++ b/examples/jaas/launcher/pom.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>felix-parent</artifactId>
+ <version>2.1</version>
+ <relativePath>../../../pom/pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.felix.example</groupId>
+ <artifactId>org.apache.felix.example.jaas.launcher</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>JAAS Example - Launcher Module</name>
+
+ <properties>
+ <jaas.example.version>${project.version}</jaas.example.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>maven-launchpad-plugin</artifactId>
+ <version>2.2.0</version>
+ <executions>
+ <execution>
+ <id>prepare-package-jar</id>
+ <goals>
+ <goal>prepare-package</goal>
+ </goals>
+ <configuration>
+ <includeDefaultBundles>false</includeDefaultBundles>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-bundle-jar</id>
+ <goals>
+ <goal>create-bundle-jar</goal>
+ </goals>
+ <configuration>
+ <includeDefaultBundles>false</includeDefaultBundles>
+ <resources>
+ <!-- Legal stuff -->
+ <resource>
+ <directory>${project.build.directory}/maven-shared-archive-resources</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>create-standalone-jar</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>standalone</classifier>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ <manifest>
+ <addDefaultImplementationEntries>
+ true
+ </addDefaultImplementationEntries>
+ </manifest>
+ </archive>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.launchpad.base</artifactId>
+ <version>2.5.0</version>
+ <classifier>app</classifier>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/examples/jaas/launcher/src/main/bundles/list.xml b/examples/jaas/launcher/src/main/bundles/list.xml
new file mode 100644
index 0000000..35d6d3e
--- /dev/null
+++ b/examples/jaas/launcher/src/main/bundles/list.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!--
+ ~ 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.
+ -->
+
+<bundles>
+ <startLevel level="0">
+ <!-- felix httpservice whiteboard -->
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.http.whiteboard</artifactId>
+ <version>2.2.0</version>
+ </bundle>
+ <bundle>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.4</version>
+ </bundle>
+ <bundle>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.2.2</version>
+ </bundle>
+
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.jaas</artifactId>
+ <version>${jaas.example.version}</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.felix.example</groupId>
+ <artifactId>org.apache.felix.example.jaas.app</artifactId>
+ <version>${jaas.example.version}</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.felix.example</groupId>
+ <artifactId>org.apache.felix.example.jaas.lm-config</artifactId>
+ <version>${jaas.example.version}</version>
+ </bundle>
+
+ <!-- Bundles lrequired for Sling Installer Support -->
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.settings</artifactId>
+ <version>1.2.2</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.launchpad.installer</artifactId>
+ <version>1.2.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.installer.api</artifactId>
+ <version>1.0.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.installer.core</artifactId>
+ <version>3.4.6</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.installer.console</artifactId>
+ <version>1.0.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.installer.factory.configuration</artifactId>
+ <version>1.0.10</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.installer.provider.file</artifactId>
+ <version>1.0.2</version>
+ </bundle>
+ </startLevel>
+ <startLevel level="1">
+ <bundle>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.6.4</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.log</artifactId>
+ <version>3.0.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.logservice</artifactId>
+ <version>1.0.2</version>
+ </bundle>
+ <bundle>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>1.6.4</version>
+ </bundle>
+ <bundle>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ <version>1.6.4</version>
+ </bundle>
+ </startLevel>
+
+ <startLevel level="5">
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.webconsole</artifactId>
+ <version>4.0.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.geronimo.bundles</groupId>
+ <artifactId>json</artifactId>
+ <version>20090211_1</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.webconsole.plugins.ds</artifactId>
+ <version>1.0.0</version>
+ </bundle>
+ </startLevel>
+
+ <startLevel level="10">
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.scr</artifactId>
+ <version>1.6.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.configadmin</artifactId>
+ <version>1.6.0</version>
+ </bundle>
+ <bundle>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.metatype</artifactId>
+ <version>1.0.6</version>
+ </bundle>
+
+ </startLevel>
+</bundles>
diff --git a/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg b/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg
new file mode 100644
index 0000000..6e19a73
--- /dev/null
+++ b/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg
@@ -0,0 +1,23 @@
+#
+# 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.
+#
+
+jaas.classname=org.apache.felix.example.jaas.config.internal.SampleConfigLoginModule
+jaas.controlFlag=required
+jaas.ranking=0
+jaas.realmName=sample
diff --git a/examples/jaas/launcher/src/main/sling/common.properties b/examples/jaas/launcher/src/main/sling/common.properties
new file mode 100644
index 0000000..9c59295
--- /dev/null
+++ b/examples/jaas/launcher/src/main/sling/common.properties
@@ -0,0 +1,21 @@
+#
+# 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.
+#
+
+sling.bootdelegation.class.org.apache.felix.jaas.boot.ProxyLoginModule = \
+ org.apache.felix.jaas.boot
\ No newline at end of file
diff --git a/examples/jaas/pom.xml b/examples/jaas/pom.xml
index ed8e323..6f5ba52 100644
--- a/examples/jaas/pom.xml
+++ b/examples/jaas/pom.xml
@@ -34,6 +34,7 @@
<modules>
<module>lm-config</module>
<module>app</module>
+ <module>launcher</module>
</modules>
</project>