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

    <artifactId>org.apache.sling.fragment.xml</artifactId>
    <version>1.0.0</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.0</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.fragment.xml-1.0.0</developerConnection>
        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.fragment.xml-1.0.0</url>
    </scm>

    <properties>
        <fragment.xml.version>0.0.0.fragment_xml</fragment.xml.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="${fragment.xml.version}",
                                javax.xml.bind.annotation;uses:="javax.xml.transform,javax.xml.bind,javax.xml.parsers,javax.xml.transform.dom,org.w3c.dom";version="${fragment.xml.version}",
                                javax.xml.bind.attachment;uses:="javax.activation";version="${fragment.xml.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="${fragment.xml.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="${fragment.xml.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="${fragment.xml.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="${fragment.xml.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="${fragment.xml.version}",
                                javax.xml.stream.util;uses:="javax.xml.stream,javax.xml.stream.events,javax.xml.namespace";version="${fragment.xml.version}",
                                javax.xml.stream;uses:="javax.xml.stream.events,javax.xml.namespace,javax.xml.stream.util,javax.xml.transform";version="${fragment.xml.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;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>
