<?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/pom.xml</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>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>
					</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>
                </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>
