<?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.load.balancer</groupId>
        <artifactId>load-balancer-parent</artifactId>
        <version>4.1.5</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>apache-stratos-load-balancer-p2-profile-gen</artifactId>
    <packaging>pom</packaging>
    <name>Apache Stratos - Load Balancer - P2 Profile Generation</name>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>unpack-carbon-core</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>wso2carbon-core</artifactId>
                                    <version>${carbon.kernel.version}</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-1</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0001</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-2</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0002</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-3</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0003</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-4</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0004</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-5</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0005</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-6</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0006</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-7</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0007</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-kernel-patch-8</id>
                        <phase>test</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>WSO2-CARBON-PATCH-4.2.0</artifactId>
                                    <version>0008</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.wso2.maven</groupId>
                <artifactId>carbon-p2-plugin</artifactId>
                <executions>
                    <execution>
                        <id>2-p2-repo-generation</id>
                        <phase>package</phase>
                        <goals>
                            <goal>p2-repo-gen</goal>
                        </goals>
                        <configuration>
                            <metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
                            <artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
                            <publishArtifacts>true</publishArtifacts>
                            <publishArtifactRepository>true</publishArtifactRepository>
                            <featureArtifacts>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.service.mgt.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.transport.mgt.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.transport.nhttp.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.datasource.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.apache.synapse.wso2.feature:${synapse.wso2.feature.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.apache.synapse.transport.nhttp.feature:${synapse.wso2.feature.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.task.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.mediation.initializer.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.endpoint.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.sequences.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.mediators.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.relay.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.ntask.core.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.registry.core.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.security.mgt.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.module.mgt.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.throttle.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.caching.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.rm.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.databridge.datapublisher.feature:${carbon.kernel.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.wso2.carbon:org.wso2.carbon.event.server.feature:${carbon.kernel.version}
                                </featureArtifactDef>

                                <!-- Stratos features -->
                                <featureArtifactDef>
                                    org.apache.stratos:org.apache.stratos.load.balancer.feature:${project.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.apache.stratos:org.apache.stratos.load.balancer.common.feature:${project.version}
                                </featureArtifactDef>
                                <featureArtifactDef>
                                    org.apache.stratos:org.apache.stratos.messaging.feature:${project.version}
                                </featureArtifactDef>
                            </featureArtifacts>
                        </configuration>
                    </execution>
                    <execution>
                        <id>p2-profile-generation</id>
                        <phase>package</phase>
                        <goals>
                            <goal>p2-profile-gen</goal>
                        </goals>
                        <configuration>
                            <profile>default</profile>
                            <metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
                            <artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
                            <destination>
                                ${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/components
                            </destination>
                            <deleteOldProfileFiles>true</deleteOldProfileFiles>
                            <features>
                                <feature>
                                    <id>org.apache.synapse.wso2.feature.group</id>
                                    <version>${synapse.wso2.feature.version}</version>
                                </feature>
                                <feature>
                                    <id>org.apache.synapse.transport.nhttp.feature.group</id>
                                    <version>${synapse.wso2.feature.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.task.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.datasource.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.mediation.initializer.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.service.mgt.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.transport.mgt.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.transport.nhttp.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.endpoint.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.sequences.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.mediators.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.relay.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.ntask.core.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.registry.core.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.databridge.datapublisher.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>
                                <feature>
                                    <id>org.wso2.carbon.event.server.feature.group</id>
                                    <version>${carbon.kernel.version}</version>
                                </feature>

                                <!-- Stratos features -->
                                <feature>
                                    <id>org.apache.stratos.messaging.feature.group</id>
                                    <version>${project.version}</version>
                                </feature>
                                <feature>
                                    <id>org.apache.stratos.load.balancer.feature.group</id>
                                    <version>${project.version}</version>
                                </feature>
                                <feature>
                                    <id>org.apache.stratos.load.balancer.common.feature.group</id>
                                    <version>${project.version}</version>
                                </feature>
                            </features>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <replace token="false" value="true"
                                         dir="target/wso2carbon-core-${carbon.kernel.version}/repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator">
                                    <include name="**/bundles.info"/>
                                </replace>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
