<?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>
				<executions>
					<execution>
						<id>generate-scr-descriptor</id>
						<goals>
							<goal>scr</goal>
						</goals>
					</execution>
				</executions>
			</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/resource-editor-static-content;overwrite:=true;path:=/libs/sling/resource-editor-static-content,
							SLING-INF/libs/sling/resource-editor;overwrite:=true;path:=/libs/sling/resource-editor
						</Sling-Initial-Content>
						<Import-Package>!org.slf4j.impl,*,
							org.apache.sling.commons.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>0.0.23</version>
		        <configuration>
			        <workingDirectory>frontend</workingDirectory>
			    </configuration>
			    <executions>
				    <execution>
					    <goals> <goal>install-node-and-npm</goal> </goals>
					    <configuration>
					        <nodeVersion>v0.12.1</nodeVersion>
					        <npmVersion>1.4.9</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>
				</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>		    
		</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>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<distributionManagement>
		<repository>
			<id>www.jcrbrowser.org</id>
			<url>dav:http://www.jcrbrowser.org/sling/obr</url>
		</repository>
	</distributionManagement>
</project>
