After several hours and reading several blogs and webpages, I came up with the following pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>SlingControlmanagement</groupId>
<artifactId>SlingControlmanagement</artifactId>
<version>1.0</version>
<packaging>bundle</packaging>
<build>
  <plugins>
      <!--
      <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-scr-plugin</artifactId>
          <version>1.0.8</version>
      </plugin>
      -->
      <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <extensions>true</extensions>
          <configuration>
              <instructions>
                  <Export-Package>
                     test;version=1.0.0
                  </Export-Package>
                  <Bundle-SymbolicName>controlmanagement</Bundle-SymbolicName>
                  <Bundle-Name>controlmanagement</Bundle-Name>
                  <Import-Package>
                      org.osgi.framework;version="1.3.0",groovy.lang;version=1.6.0,org.codehaus.groovy.reflection;version=1.6.0,org.codehaus.groovy.runtime;version=1.6.0,org.codehaus.groovy.runtime.callsite;version=1.6.0
                  </Import-Package>
                  <Sling-Initial-Content>
                      SLING-INF/initial-content/libs/myapp;overwrite:=true;path:=/libs/myapp
                  </Sling-Initial-Content>
              </instructions>
          </configuration>
      </plugin>
      <plugin>
          <groupId>org.apache.sling</groupId>
          <artifactId>maven-sling-plugin</artifactId>
          <executions>
              <execution>
                  <id>install-bundle</id>
                  <goals>
                      <goal>validate</goal>
                      <goal>install</goal>
                  </goals>
                  <configuration>
                      <mountByFS>true</mountByFS>
                  </configuration>
              </execution>
          </executions>
      </plugin>
      <plugin>
          <groupId>org.codehaus.groovy.maven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <executions>
              <execution>
                  <goals>
                      <goal>generateStubs</goal>
                      <goal>compile</goal>
                      <goal>generateTestStubs</goal>
                      <goal>testCompile</goal>
                  </goals>
              </execution>
          </executions>
      </plugin>
  </plugins>
</build>
<repositories>
  <repository>
      <id>apache.incubating</id>
      <name>Apache Incubating Repository</name>
      <url>http://people.apache.org/repo/m2-incubating-repository</url>
  </repository>
</repositories>
<pluginRepositories>
  <pluginRepository>
      <id>apache.incubating.plugins</id>
      <name>Apache Incubating Plugin Repository</name>
      <url>http://people.apache.org/repo/m2-incubating-repository</url>
  </pluginRepository>
</pluginRepositories>
<dependencies>
  <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>1.6.3</version>
  </dependency>
</dependencies>
</project>
There are several things to point out:
- I am by no means a OSGI/Maven expert, so consider this to be a first draft
- the commented out scr plugin is used for declarative OSGI services, details here.
- the groovy version used for compilation (1.6.3) and within OSGI (1.6.0) are different. This might lead to problem. Best thing to do would be to reinstall groovy-all.jar into the OSGI environment
- the "Sling-Inital-Content" tag is a convenience used to supply initial content to sling
- the <mountByFS>true</mountByFS> tag should theoretically allow to have all changes done within the filesystem be propagated to sling. Doesn't work atm, although, unsure why
 
1 Kommentar:
Were you ever able to get the mountByFS feature working?
For me, the sling plugin deploys the bundle just fine, but fails to create the necessary configuration. "Configuration failed, cause: Not Found"
Kommentar veröffentlichen