<?xml version="1.0" encoding="UTF-8"?>
	<!--
		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">
	<description>Simple example where an Ftplet is published as a OSGi service. Another bundle, using the white-board pattern can locate this and plug it into a running server.</description>
	<parent>
		<artifactId>ftpserver-parent</artifactId>
		<groupId>org.apache.ftpserver</groupId>
		<version>1.0.0-RC1</version>
		<relativePath>../../pom.xml</relativePath>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.apache.ftpserver.examples</groupId>
	<artifactId>ftpserver-osgi-ftplet-service</artifactId>
	<name>FtpServer OSGi Ftplet service example</name>
	<packaging>bundle</packaging>
	<version>1.0.0-RC1</version>
	<dependencies>
		<dependency>
			<groupId>org.apache.ftpserver</groupId>
			<artifactId>ftplet-api</artifactId>
			<version>${pom.version}</version>
		</dependency>
		<dependency>
		  <groupId>org.osgi</groupId>
		  <artifactId>osgi_R4_core</artifactId>
		  <version>1.0</version>
		  <scope>provided</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<version>1.4.1</version>
				<extensions>true</extensions>
				<configuration>
					<instructions>
						<Bundle-SymbolicName> ${artifactId}</Bundle-SymbolicName>
						<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
						<Export-Package> org.apache.ftpserver.example.ftpletservice</Export-Package>
						<Private-Package> org.apache.ftpserver.example.ftpletservice.impl</Private-Package>
						<Bundle-Activator>org.apache.ftpserver.example.ftpletservice.impl.Activator</Bundle-Activator>
						<Import-Package>
						  org.apache.ftpserver.ftplet,
						  org.osgi.framework
						</Import-Package>
					</instructions>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
