<project>
  <modelVersion>4.0.0</modelVersion>
  <name>jSLP-OSGi</name>
  <groupId>ch.ethz.iks.slp</groupId>
  <artifactId>jslp-osgi</artifactId>
  <version>1.1.0.RC1</version>
  <packaging>bundle</packaging>

	<url>http://jslp.sourceforge.net</url>

	<organization>
		<name>Systems Group, ETH Zurich</name>
		<url>http://www.systems.ethz.ch</url>
	</organization>

	<developers>
		<developer>
			<id>rjan</id>
			<name>Jan S. Rellermeyer</name>
			<email>rellermeyer_at_inf.ethz.ch</email>
			<url>http://people.inf.ethz.ch/rjan</url>
			<organization>Systems Group, ETH Zurich</organization>
			<organizationUrl>http://www.systems.ethz.ch</organizationUrl>
			<roles>
				<role>Project creator</role>
				<role>Researcher</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
		<developer>
			<id>lemmster</id>
			<name>Markus Alexander Kuppe</name>
			<email>jslp.sf.net_at_lemmster.de</email>
			<url>http://www.lemmster.de</url>
			<organization>Versant GmbH</organization>
			<organizationUrl>http://www.versant.com</organizationUrl>
			<roles>
				<role>Developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>BSD License</name>
			<distribution>repo</distribution>
			<url>src/main/resources/LICENSE.txt</url>
		</license>
	</licenses>    
	
	<scm>
		<connection>scm:svn:https://jslp.svn.sourceforge.net/svnroot/jslp</connection>
		<developerConnection>scm:svn:https://rjan@jslp.svn.sourceforge.net/svnroot/jslp</developerConnection>
		<url>http://jslp.svn.sourceforge.net/jslp</url>
	</scm>
    
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.2</version>
        <executions>
          <execution>
            <phase>integration-test</phase>
            <configuration>
              <tasks>
              	<property name="debug.suspend" value="n" />
              	<property name="debug.port" value="10044" />
              	<property name="jslp.port" value="10427" />
				<echo message="Compiling the unit test environment..."/>
				<mkdir dir="runtimeTests/target"/>
				<condition property="maven.executable" value="mvn.bat">
      				<os family="windows" />
    			</condition>
    			<property name="maven.executable" value="mvn" />
				<exec dir="runtimeTests" executable="${maven.home}/bin/${maven.executable}">
					<arg line="package"/>
				</exec>
				<delete dir="test/storage" quiet="true"/>
<!-- 
				<echo file="target/init.xargs" append="false">
					-Dorg.osgi.framework.system.packages=junit.framework,junit.textui,org.apache.tools.ant.taskdefs.optional.junit
					-init
					-istart file:target/jslp-osgi-${pom.version}.jar
					-istart file:runtimeTests/target/jslp-test-${pom.version}.jar
				</echo>
				<java fork="true" classname="ch.ethz.iks.concierge.framework.Framework" failonerror="true" resultproperty="testresult">
					<classpath>
						<pathelement location="${maven.dependency.ch.ethz.iks.concierge.concierge.jar.path}"/>
						<pathelement location="${maven.dependency.junit.junit.jar.path}"/> 
					</classpath>
					<jvmarg value="-Dxargs=target/init.xargs"/>
					<jvmarg value="-Dnet.slp.port=${jslp.port}"/>
					<jvmarg value="-Dch.ethz.iks.concierge.log.level=4"/> 
					<jvmarg value="-Dch.ethz.iks.concierge.log.enabled=true"/>
					<jvmarg value="-Dch.ethz.iks.slp.debug=true" />
					<jvmarg value="-Dnet.slp.traceDATraffic=true" />
					<jvmarg value="-Dnet.slp.traceMsg=true" />
					<jvmarg value="-Dnet.slp.traceDrop=true" />
					<jvmarg value="-Dnet.slp.traceReg=true" />
					<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${debug.port},server=y,suspend=${debug.suspend}" />
					<jvmarg value="-Xdebug" />
					<jvmarg value="-Dnet.slp.versionUnderTest=${pom.version}" />
				</java>
				<delete dir="test/storage" quiet="true"/>
 -->
				<!-- run integration tests with two instances running -->
				<get src="http://ecf2.osuosl.org/ch.ethz.iks.slp_1.1.0.v20090227-1900.jar" dest="target/ch.ethz.iks.slp_1.1.0.v20090227-1900.jar"/>
				<get src="http://ecf2.osuosl.org/org.eclipse.ant.optional.junit_3.2.200.jar" dest="target/org.eclipse.ant.optional.junit_3.2.200.jar"/>

				<mkdir dir="target/configuration" />
				<echo file="target/configuration/config.ini" append="false">
					eclipse.ignoreApp=true
					eclipse.consoleLog=true
					osgi.noShutdown=true
					osgi.bundles=file:${maven.dependency.org.eclipse.osgi.services.jar.path}@2:start, \
					file:${maven.dependency.org.junit.jar.path}@start, \
					file:${maven.dependency.org.apache.ant.jar.path}@start, \
					file:${basedir}/target/ch.ethz.iks.slp_1.1.0.v20090227-1900.jar@start, \
					file:${basedir}/target/org.eclipse.ant.optional.junit_3.2.200.jar, \
					file:${basedir}/target/jslp-osgi-${pom.version}.jar@start, \
					file:${basedir}/runtimeTests/target/jslp-test-${pom.version}.jar@start
				</echo>
				<java fork="true" classname="org.eclipse.core.runtime.adaptor.EclipseStarter" failonerror="true" resultproperty="testresult2">
					<classpath>
						<pathelement location="${maven.dependency.org.eclipse.osgi.jar.path}"/>
					</classpath>
					<!-- osgi locations -->
					<jvmarg value="-Dosgi.configuration.area=target/configuration" />
					<jvmarg value="-Dtest.result.output.dir=target/surefire-reports/" />
					<!-- jSLP options -->
					<jvmarg value="-Dnet.slp.port=${jslp.port}"/>
					<jvmarg value="-Dch.ethz.iks.slp.debug=true" />
					<jvmarg value="-Dnet.slp.traceDATraffic=true" />
					<jvmarg value="-Dnet.slp.traceMsg=true" />
					<jvmarg value="-Dnet.slp.traceDrop=true" />
					<jvmarg value="-Dnet.slp.traceReg=true" />
					<jvmarg value="-Dnet.slp.versionUnderTest=${pom.version}" />
					<!-- enable remote debug mode -->
					<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${debug.port},server=y,suspend=${debug.suspend}" />
					<jvmarg value="-Xdebug" />
					<jvmarg value="-noverify"/>
				</java>
				
				<!-- run integration tests with openslp running on 427 -->
			<!--
				<condition property="openslp.running">
				  <socket server="localhost" port="427"/>
				</condition>
				<fail message="An OpenSLP instance must be running on port 427" unless="openslp.running"/>
				<echo file="target/configuration/config.ini" append="false">
					eclipse.ignoreApp=true
					eclipse.consoleLog=true
					osgi.bundles=file:${maven.dependency.org.eclipse.osgi.services.jar.path}@2:start, \
								 file:${maven.dependency.org.junit.jar.path}@start, \
								 file:${basedir}/target/jslp-osgi-${pom.version}.jar@start, \
								 file:${basedir}/runtimeTests/target/jslp-test-${pom.version}.jar@start
				</echo>
				<java fork="true" classname="org.eclipse.core.runtime.adaptor.EclipseStarter" failonerror="true" resultproperty="testresult3">
					<classpath>
						<pathelement location="${maven.dependency.org.eclipse.osgi.jar.path}"/>
					</classpath>
					<jvmarg value="-Dosgi.configuration.area=target/configuration" />
					<jvmarg value="-Dnet.slp.port=427"/>
					<jvmarg value="-Dch.ethz.iks.slp.debug=true" />
					<jvmarg value="-Dnet.slp.traceDATraffic=true" />
					<jvmarg value="-Dnet.slp.traceMsg=true" />
					<jvmarg value="-Dnet.slp.traceDrop=true" />
					<jvmarg value="-Dnet.slp.traceReg=true" />
					<jvmarg value="-Dnet.slp.versionUnderTest=${pom.version}" />
					<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${debug.port},server=y,suspend=${debug.suspend}" />
					<jvmarg value="-Xdebug" />
					<jvmarg value="-noverify"/>
				</java>
			-->
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
		    <groupId>org.apache.maven.plugins</groupId>
        	<artifactId>maven-compiler-plugin</artifactId>
          	<configuration>
	    		<source>1.2</source>
	    		<target>1.1</target>
	    		<optimize>true</optimize>
	    		<debug>false</debug>
	    	</configuration>
	  </plugin>
	  <!-- http://felix.apache.org/site/maven-bundle-plugin-bnd.html -->
      <plugin>
  	    <groupId>org.apache.felix</groupId>
    	<artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
	      	<instructions>
				<Include-Resource>{maven-resources}, {maven-dependencies}, target/classes</Include-Resource>
				<Bundle-Version>${pom.version}</Bundle-Version>
				<Bundle-Name>jslp-osgi</Bundle-Name>
				<Bundle-SymbolicName>ch.ethz.iks.slp</Bundle-SymbolicName>
				<Export-Package>ch.ethz.iks.slp;version=1.0.0</Export-Package>
				<_include>~META-INF/MANIFEST.MF</_include>
				<!-- BND just produces Bundle-ManifestVersion: 2 headers which we don't want -->
				<_removeheaders>Bundle-ManifestVersion</_removeheaders> 
    	  	</instructions>
        </configuration>
      </plugin>
      <!--  runtimeTests is not automatically run by parent clean, thus manually purge folder -->
      <plugin>
		<artifactId>maven-clean-plugin</artifactId>
		<version>2.4</version>
		<configuration>
			<filesets>
				<fileset>
					<directory>runtimeTests/target/</directory>
				</fileset>
			</filesets>
		</configuration>
	  </plugin>
    </plugins>
	<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
	    </resources>
    </build>
    
	<reporting>
    	<plugins>
  	       <plugin>
    	      <artifactId>maven-site-plugin</artifactId>
        	  <configuration>
          	     <templateFile>maven-site-jslp.vm</templateFile>
        	   </configuration>
   	    	</plugin>
      		<plugin>
        		<groupId>org.apache.maven.plugins</groupId>
        		<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<excludePackageNames>ch.ethz.iks.slp.impl,org.osgi.service.log</excludePackageNames>
				</configuration>
			</plugin>
    	</plugins>
  	</reporting>
  
  <dependencies>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi</artifactId>
			<version>3.0.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
        	<groupId>junit</groupId>
         	<artifactId>junit</artifactId>
         	<version>3.8.1</version>
         	<scope>test</scope>
      	</dependency>
      	<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.0.4</version>
			<scope>provided</scope>
		</dependency>		
      	<dependency>
			<groupId>ch.ethz.iks.concierge</groupId>
			<artifactId>concierge</artifactId>
			<version>1.0.0</version>
			<scope>test</scope>
		</dependency>		
      	<dependency>
			<groupId>org.eclipse</groupId>
			<artifactId>osgi</artifactId>
			<version>3.3.0-v20070530</version>
			<scope>test</scope>
		</dependency>		
      	<dependency>
			<groupId>org.eclipse.osgi</groupId>
			<artifactId>services</artifactId>
			<version>3.1.200-v20070605</version>
			<scope>test</scope>
		</dependency>		
      	<dependency>
			<groupId>org.eclipse</groupId>
			<artifactId>osgi</artifactId>
			<version>3.3.0-v20070530</version>
			<scope>test</scope>
		</dependency>		
      	<dependency>
			<groupId>org.eclipse.osgi</groupId>
			<artifactId>services</artifactId>
			<version>3.1.200-v20070605</version>
			<scope>test</scope>
		</dependency>		
      	<dependency>
			<groupId>org</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.2-v200706111738</version>
			<scope>test</scope>
		</dependency>
		<dependency>
        	<groupId>org.apache</groupId>
         	<artifactId>ant</artifactId>
         	<version>1.7.0-v200706080842</version>
         	<scope>test</scope>
      	</dependency>
   </dependencies>
   
  <repositories>
    <repository>
      <id>iks-repository</id>
      <name>ETH Zurich IKS Repository</name>
      <url>http://www.flowsgi.inf.ethz.ch/repository/maven2/</url>
    </repository>
    <repository>
      <id>Maven eclipse</id>
      <name>Eclipse Maven</name>
      <url>http://repo2.maven.org/eclipse/</url>
    </repository>
  </repositories> 
  <pluginRepositories>
    <pluginRepository>
      <id>iks-repository</id>
      <name>ETH Zurich IKS Repository</name>
      <url>http://www.flowsgi.inf.ethz.ch/repository/maven2/</url>
    </pluginRepository>  
  </pluginRepositories> 
  
  <distributionManagement>
    <site>
      <id>sourceforge-site</id>
      <url>scp://shell.sourceforge.net/home/groups/j/js/jslp/htdocs/</url>
    </site>
    <repository>
      <id>iks-snapshots</id>
      <name>ETH Zurich IKS Snapshots</name>
      <url>scp://flowsgi.inf.ethz.ch/repository/maven2</url>
    </repository>
  </distributionManagement>
</project>