<?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>14</version>
        <relativePath>../../../parent/pom.xml</relativePath>
    </parent>

    <artifactId>org.apache.sling.fragment.xml</artifactId>
    <version>1.0.2</version>
    <packaging>jar</packaging>

    <name>Apache Sling System Bundle Extension: XML APIs</name>
    <description>
        Adds the XML API packages to the system bundle exports.
        The list of packages is derived from the packages available
        in the Java 7 platform. The system bundle exporting these
        packages gives no guarantee the platform provides them.
        For proper setup it is suggested to either install an
        extension fragment adapted to the platform or to install
        regular API packages as bundles.
    </description>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.fragment.xml-1.0.2</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.fragment.xml-1.0.2</developerConnection>
        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.fragment.xml-1.0.2</url>
    </scm>

    <properties>
        <fragment.xml.version>0.0.0.fragment_xml</fragment.xml.version>
        <jaxb.version>2.1.0</jaxb.version>
        <stax.version>1.0.0</stax.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <instructions>
                        <Fragment-Host>
                            system.bundle;extension:=framework
                        </Fragment-Host>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <forceCreation>true</forceCreation>
                    <archive>
                        <manifestFile>
                            ${project.build.outputDirectory}/META-INF/MANIFEST.MF
                        </manifestFile>
                        <manifestEntries>
                            <Export-Package>
                                javax.xml.bind.annotation.adapters;uses:="javax.xml.bind";version="${jaxb.version}",
                                javax.xml.bind.annotation;uses:="javax.xml.transform,javax.xml.bind,javax.xml.parsers,javax.xml.transform.dom,org.w3c.dom";version="${jaxb.version}",
                                javax.xml.bind.attachment;uses:="javax.activation";version="${jaxb.version}",
                                javax.xml.bind.helpers;uses:="javax.xml.bind.annotation.adapters,javax.xml.transform.dom,org.w3c.dom,org.xml.sax,javax.xml.bind.attachment,javax.xml.stream,javax.xml.transform,javax.xml.transform.stream,javax.xml.validation,javax.xml.transform.sax,javax.xml.bind,javax.xml.parsers";version="${jaxb.version}",
                                javax.xml.bind.util;uses:="javax.xml.transform.sax,javax.xml.bind,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers";version="${jaxb.version}",
                                javax.xml.bind;uses:="javax.xml.validation,javax.xml.namespace,javax.xml.datatype,javax.xml.transform,javax.xml.bind.annotation,javax.xml.transform.stream,org.w3c.dom,javax.xml.bind.attachment,javax.xml.stream,javax.xml.bind.annotation.adapters,org.xml.sax";version="${jaxb.version}",
                                javax.xml.crypto.dom;uses:="javax.xml.crypto,org.w3c.dom";version="${fragment.xml.version}",
                                javax.xml.crypto.dsig.dom;uses:="javax.xml.crypto.dsig,javax.xml.crypto,org.w3c.dom,javax.xml.crypto.dom";version="${fragment.xml.version}",
                                javax.xml.crypto.dsig.keyinfo;uses:="javax.xml.crypto";version="${fragment.xml.version}",
                                javax.xml.crypto.dsig.spec;uses:="javax.xml.crypto";version="${fragment.xml.version}",
                                javax.xml.crypto.dsig;uses:="javax.xml.crypto,javax.xml.crypto.dsig.spec,javax.xml.crypto.dsig.keyinfo";version="${fragment.xml.version}",
                                javax.xml.crypto;uses:="javax.xml.crypto.dsig.keyinfo";version="${fragment.xml.version}",
                                javax.xml.datatype;uses:="javax.xml.namespace";version="${jaxb.version}",
                                javax.xml.namespace;version="${fragment.xml.version}",
                                javax.xml.parsers;uses:="javax.xml.validation,org.w3c.dom,org.xml.sax,org.xml.sax.helpers";version="${fragment.xml.version}",
                                javax.xml.stream.events;uses:="javax.xml.namespace,javax.xml.stream";version="${stax.version}",
                                javax.xml.stream.util;uses:="javax.xml.stream,javax.xml.stream.events,javax.xml.namespace";version="${stax.version}",
                                javax.xml.stream;uses:="javax.xml.stream.events,javax.xml.namespace,javax.xml.stream.util,javax.xml.transform";version="${stax.version}",
                                javax.xml.transform.dom;uses:="javax.xml.transform,org.w3c.dom";version="${fragment.xml.version}",
                                javax.xml.transform.sax;uses:="org.xml.sax.ext,javax.xml.transform,org.xml.sax,javax.xml.transform.stream";version="${fragment.xml.version}",
                                javax.xml.transform.stax;uses:="javax.xml.stream,javax.xml.transform,javax.xml.stream.events";version="${fragment.xml.version}",
                                javax.xml.transform.stream;uses:="javax.xml.transform";version="${fragment.xml.version}",
                                javax.xml.transform;version="${fragment.xml.version}",
                                javax.xml.validation;uses:="org.w3c.dom.ls,javax.xml.transform,javax.xml.transform.stream,org.xml.sax,org.w3c.dom";version="${fragment.xml.version}",
                                javax.xml.xpath;uses:="org.xml.sax,javax.xml.namespace";version="${fragment.xml.version}",
                                javax.xml;version="${fragment.xml.version}",
                                org.w3c.dom.bootstrap;uses:="org.w3c.dom";version="${fragment.xml.version}",
                                org.w3c.dom.css;uses:="org.w3c.dom,org.w3c.dom.stylesheets,org.w3c.dom.views";version="${fragment.xml.version}",
                                org.w3c.dom.events;uses:="org.w3c.dom,org.w3c.dom.views";version="${fragment.xml.version}",
                                org.w3c.dom.html;uses:="org.w3c.dom";version="${fragment.xml.version}",
                                org.w3c.dom.ls;uses:="org.w3c.dom,org.w3c.dom.events,org.w3c.dom.traversal";version="${fragment.xml.version}",
                                org.w3c.dom.ranges;uses:="org.w3c.dom";version="${fragment.xml.version}",
                                org.w3c.dom.stylesheets;uses:="org.w3c.dom";version="${fragment.xml.version}",
                                org.w3c.dom.traversal;uses:="org.w3c.dom";version="${fragment.xml.version}",
                                org.w3c.dom.views;version="${fragment.xml.version}",
                                org.w3c.dom.xpath;version="${fragment.xml.version}",
                                org.w3c.dom;version="${fragment.xml.version}",
                                org.xml.sax.ext;uses:="org.xml.sax,org.xml.sax.helpers";version="${fragment.xml.version}",
                                org.xml.sax.helpers;uses:="org.xml.sax";version="${fragment.xml.version}",
                                org.xml.sax;version="${fragment.xml.version}"
                            </Export-Package>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
