<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- 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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

        <parent>
            <groupId>org.apache.sling</groupId>
            <artifactId>sling</artifactId>
            <version>22</version>
            <relativePath/>
        </parent>

	<groupId>org.apache.sling</groupId>
	<artifactId>org.apache.sling.resource-editor</artifactId>
	<packaging>bundle</packaging>
	<version>1.0.1-SNAPSHOT</version>
	<name>Apache Sling Resource Editor</name>
	<description>A resource editor for Apache Sling.</description>

	<build>
		<resources>
			<resource>
				<directory>src/main/less</directory>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>src/test/javascript</directory>
			</resource>
		</resources>
		<plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-scr-plugin</artifactId>
            </plugin>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<extensions>true</extensions>
				<configuration>
					<instructions>
<!-- 						<Sling-Initial-Content> -->
<!-- 							META-INF/tags;overwrite:=true;path:=/libs/sling/resource-editor-tags/property-editor, -->
<!-- 							SLING-INF/libs/sling;overwrite:=true;path:=/libs/sling -->
<!-- 						</Sling-Initial-Content> -->
						<Sling-Initial-Content>
							META-INF/tags;overwrite:=true;path:=/libs/sling/resource-editor-tags/property-editor,
							SLING-INF/libs/sling/resource-editor/static;overwrite:=true;path:=/libs/sling/resource-editor/static,
							SLING-INF/libs/sling/resource-editor/scripts;overwrite:=true;path:=/libs/sling/resource-editor/scripts,
							SLING-INF/libs/sling/resource-editor/content;overwrite:=true;path:=/libs/sling/resource-editor/content
						</Sling-Initial-Content>
						<Import-Package>!org.slf4j.impl,*,
							org.apache.sling.jcr.js.nodetypes.javascript,
							javax.el,
							javax.naming,
							javax.servlet.jsp,
							javax.servlet.jsp.el,
							javax.servlet.jsp.tagext,
							javax.sql,
							javax.xml.namespace,
							javax.xml.parsers,
							javax.xml.transform,
							javax.xml.transform.dom,
							javax.xml.transform.sax,
							javax.xml.transform.stream,
							javax.xml.xpath,
							org.w3c.dom,
							org.w3c.dom.traversal,
							org.xml.sax,
							org.xml.sax.helpers
						</Import-Package>
						<Export-Package>!org.apache.sling.reseditor</Export-Package>
			            <Include-Resource>META-INF/resource-editor.tld=${project.build.outputDirectory}/META-INF/resource-editor.tld,{maven-resources}</Include-Resource>
			            <Sling-Bundle-Resources>/META-INF/tags</Sling-Bundle-Resources>
					</instructions>
					<remoteOBR>www.jcrbrowser.org</remoteOBR>
				</configuration>
			</plugin>
			<plugin>
		        <groupId>com.github.eirslett</groupId>
		        <artifactId>frontend-maven-plugin</artifactId>
		        <version>1.2</version>
		        <configuration>
			        <workingDirectory>frontend</workingDirectory>
			    </configuration>
			    <executions>
				    <execution>
					    <goals> <goal>install-node-and-npm</goal> </goals>
					    <configuration>
					        <nodeVersion>v6.9.1</nodeVersion>
					        <npmVersion>3.10.8</npmVersion>
					    </configuration>
					</execution>
					<execution> 
						<id>npm install</id> 	
						<goals> <goal>npm</goal> 	</goals>
					</execution>
					<execution>
						<id>grunt build</id>
						<goals> <goal>grunt</goal> </goals>
					</execution>
					<execution>
					    <id>javascript tests</id>
					    <goals> <goal>karma</goal> </goals>
					
					    <!-- optional: the default phase is "test". Some developers
					    choose to run karma in the "integration-test" phase. -->
<!-- 					    <phase>install</phase> -->
					
					    <configuration>
					        <!-- optional: the default is "karma.conf.js" in your working directory -->
					        <karmaConfPath>karma.conf.ci.js</karmaConfPath>
					    </configuration>
					</execution>
				</executions>
		    </plugin>
            <plugin>
              <groupId>org.apache.rat</groupId>
              <artifactId>apache-rat-plugin</artifactId>
              <configuration>
                <excludes>
                  <exclude>frontend/**</exclude>
                  <exclude>src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/generated/3rd_party/**/*</exclude>
                  <exclude>src/main/resources/SLING-INF/libs/sling/resource-editor/servlet-nodes.json</exclude>
                </excludes>
              </configuration>
            </plugin>	
            <plugin>
				<groupId>org.apache.sling</groupId>
				<artifactId>maven-sling-plugin</artifactId>
				<version>2.3.0</version>
            </plugin>		
		</plugins>
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-webdav-jackrabbit</artifactId>
				<version>2.2</version>
			</extension>
		</extensions>
	</build>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.compendium</artifactId>
			<version>4.2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.core</artifactId>
			<version>4.2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.jcr</groupId>
			<artifactId>jcr</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.sling</groupId>
			<artifactId>org.apache.sling.api</artifactId>
			<version>2.2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.5.10</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.scr.annotations</artifactId>
			<scope>provided</scope>
		</dependency>
	    <dependency>
	      <groupId>commons-lang</groupId>
	      <artifactId>commons-lang</artifactId>
	      <version>2.5</version>
	      <scope>provided</scope>
	    </dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
