<?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.stratos</groupId>
        <artifactId>stratos-components-parent</artifactId>
        <version>4.1.5</version>
    </parent>

    <artifactId>org.apache.stratos.autoscaler</artifactId>
    <packaging>bundle</packaging>
    <name>Apache Stratos - Autoscaler</name>
    <description>Autoscaler components</description>

    <dependencies>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.registry.core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.logging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.utils</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.ntask.core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.identity.oauth.stub</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.identity.application.mgt.stub</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wso2.carbon</groupId>
            <artifactId>org.wso2.carbon.databridge.commons</artifactId>
        </dependency>

        <!-- Stratos components -->
        <dependency>
            <groupId>org.apache.stratos</groupId>
            <artifactId>org.apache.stratos.messaging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.stratos</groupId>
            <artifactId>org.apache.stratos.common</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.stratos</groupId>
            <artifactId>org.apache.stratos.cloud.controller.service.stub</artifactId>
        </dependency>

        <!-- Misc -->
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-compiler</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-lang.wso2</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>antlr</artifactId>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>antlr-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-decisiontables</artifactId>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>stringtemplate</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-jsr94</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>knowledge-internal-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>knowledge-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-verifier</artifactId>
        </dependency>
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-templates</artifactId>
        </dependency>
        <dependency>
            <groupId>xmlpull</groupId>
            <artifactId>xmlpull</artifactId>
        </dependency>
        <dependency>
            <groupId>xpp3</groupId>
            <artifactId>xpp3_min</artifactId>
        </dependency>
        <dependency>
            <groupId>com.nimbusds.wso2</groupId>
            <artifactId>nimbus-jose-jwt</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
        </dependency>
        <dependency>
            <groupId>jsr94</groupId>
            <artifactId>jsr94</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mvel</groupId>
            <artifactId>mvel2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.amber.wso2</groupId>
            <artifactId>amber</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-scr-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Bundle-Name>${project.artifactId}</Bundle-Name>
                        <Private-Package>org.apache.stratos.autoscaler.internal.*</Private-Package>
                        <Export-Package>
                            !org.apache.stratos.autoscaler.internal.*,
                            !org.apache.stratos.autoscaler.stub.*,
                            org.apache.stratos.autoscaler.*
                        </Export-Package>
                        <Import-Package>
                            org.wso2.carbon.utils.*;version="${carbon.platform.imp.pkg.version.range}",
                            org.wso2.carbon.registry.core.*;version="${carbon.kernel.registry.imp.pkg.version.range}",
                            org.wso2.carbon.identity.application.mgt.*;version="${carbon.platform.imp.pkg.version.range}",
                            org.wso2.carbon.identity.oauth.stub.*;version="${carbon.platform.imp.pkg.version.range}",
                            org.wso2.carbon.databridge.commons.*;version="${carbon.platform.imp.pkg.version.range}",
                            org.wso2.carbon.ntask.core.*;version="0.0.0",

                            org.apache.stratos.common.*;version="${project.version}",
                            org.apache.stratos.messaging.*;version="${project.version}",
                            org.apache.stratos.cloud.controller.stub.*;version="${project.version}",

                            org.apache.commons.logging.*; version="${commons.logging.imp.pkg.version.range}",
                            org.apache.commons.configuration.*;version="${commons.configuration.imp.pkg.version.range}",
                            org.apache.commons.lang.*;version="${commons.lang.imp.pkg.version.range}",
                            org.apache.commons.lang3.*;version="${commons.lang3.imp.pkg.version.range}",
                            com.google.gson.*;version="${gson.imp.pkg.version.range}",
                            com.nimbusds.jose.*;version="${nimbus.jose.jwt.imp.pkg.version.range}",
                            com.nimbusds.jwt.*;version="${nimbus.jose.jwt.imp.pkg.version.range}",
                            org.apache.amber.*;version="${amber.version}"
                            *;resolution:=optional
                        </Import-Package>
                        <DynamicImport-Package>*</DynamicImport-Package>
                        <Embed-Dependency>
                            antlr,antlr-runtime,drools-compiler,drools-core,drools-decisiontables,drools-jsr94,
                            drools-templates,drools-verifier,ecj,itext,jsr94,knowledge-api,knowledge-internal-api,
                            stringtemplate,xmlpull,xpp3_min,xstream;scope=compile|runtime
                        </Embed-Dependency>
                        <Embed-Directory>lib</Embed-Directory>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-java2wsdl-maven-plugin</artifactId>
                <configuration>
                    <className>org.apache.stratos.autoscaler.services.impl.AutoscalerServiceImpl</className>
                    <outputFileName>target/generated-resources/wsdl/AutoscalerService.wsdl</outputFileName>
                    <serviceName>AutoscalerService</serviceName>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>java2wsdl</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/rules</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
</project>
