<?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">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.stanbol</groupId>
    <artifactId>org.apache.stanbol.data.parent</artifactId>
    <version>1.2.0-SNAPSHOT</version>
    <relativePath>../../parent</relativePath>
  </parent>

  <groupId>org.apache.stanbol</groupId>
  <artifactId>org.apache.stanbol.data.sites.dbpedia.cached</artifactId>
  <version>1.2.0-SNAPSHOT</version>
  <packaging>bundle</packaging>

  <name>Apache Stanbol Data: Remote DBpedia.org with local cache</name>
  <description>
    This bundle installs DBpedia as Referenced Site.
    The SPARQL endpoint is used for query and retrievel however retrieved
    Entities are locally cached.
  </description>

  <inceptionYear>2011</inceptionYear>

  <scm>
    <connection>
      scm:svn:http://svn.apache.org/repos/asf/stanbol/trunk/data/sites/dbpediacached
    </connection>
    <developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/stanbol/trunk/data/sites/dbpediacached
    </developerConnection>
    <url>http://stanbol.apache.org/</url>
  </scm>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.0.1</version>
        <inherited>true</inherited>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <!-- Header used to load the provided configurations -->
            <Install-Path> 
              org/apache/stanbol/data/site/dbpedia/cached
            </Install-Path>
            <_versionpolicy>$${version;===;${@}}</_versionpolicy>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <!-- License provided in src/main/resources/README -->
            <exclude>src/main/resources/org/apache/stanbol/data/site/dbpedia/cached/org.apache.stanbol.enhancer.engines.entitytagging.impl.NamedEntityTaggingEngine-dbpedia.config</exclude>
            <exclude>src/main/resources/org/apache/stanbol/data/site/dbpedia/cached/org.apache.stanbol.entityhub.core.site.CacheImpl-dbpedia.config</exclude>
            <exclude>src/main/resources/org/apache/stanbol/data/site/dbpedia/cached/org.apache.stanbol.entityhub.site.referencedSite-dbpedia.config</exclude>
            <exclude>src/main/resources/org/apache/stanbol/data/site/dbpedia/cached/org.apache.stanbol.entityhub.yard.solr.impl.SolrYard-dbpediaCache.config</exclude>
          </excludes>
        </configuration>
      </plugin>
     </plugins>
  </build>

</project>
