<?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.yoko</groupId>
        <artifactId>yoko</artifactId>
        <version>1.5-SNAPSHOT</version>
    </parent>
    <artifactId>yoko-spec-corba</artifactId>
    <packaging>bundle</packaging>
    <name>Apache Yoko CORBA Spec</name>

    <dependencies>
        <dependency>
            <groupId>org.apache.yoko</groupId>
            <artifactId>yoko-osgi</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <!--<sourceDirectory>${basedir}/src/main/generated-sources/idl</sourceDirectory>-->
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        <Export-Package>
                            org.omg.*;version=2.4,
                            org.apache.*;version=1.0
                        </Export-Package>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                  <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                      <goal>add-source</goal>
                    </goals>
                    <configuration>
                      <sources>
                          <source>${basedir}/src/main/generated-sources/idl</source>
                      </sources>
                    </configuration>
                  </execution>
                </executions>
            </plugin>
              <!--<plugin>-->
              <!--<groupId>org.apache.maven.plugins</groupId>-->
              <!--<artifactId>maven-compiler-plugin</artifactId>-->
              <!--<configuration>-->
                <!--<compilerArguments>-->
                  <!--<endorseddirs>${project.build.directory}/endorsed</endorseddirs>-->
                <!--</compilerArguments>-->
              <!--</configuration>-->
            <!--</plugin>-->

        </plugins>
    </build>

    <profiles>
        <profile>
            <id>generate-source</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>idlj-maven-plugin</artifactId>
                        <version>1.0</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <debug>false</debug>
                            <compiler>idlj</compiler>
                            <outputDirectory>${basedir}/src/main/generated-sources/idl</outputDirectory>
                            <sources>
                                <source>
                                    <emitStubs>true</emitStubs>
                                    <emitSkeletons>true</emitSkeletons>
                                    <includes>
                                        <include>
                                            **/CosTSInteroperation.idl
                                        </include>
                                        <include>**/CosNaming.idl</include>
                                        <include>
                                            **/CosTransactions.idl
                                        </include>
                                        <include>
                                            **/CosTSInteroperation.idl
                                        </include>
                                        <include>**/CSI.idl</include>
                                        <include>**/CSIIOP.idl</include>
                                        <include>**/GSSUP.idl</include>
                                        <include>**/Security.idl</include>
                                        <include>**/SSLIOP.idl</include>
                                        <include>**/SecurityLevel1.idl</include>
                                        <include>**/SecurityLevel2.idl</include>
                                    </includes>
                                    <packagePrefixes>
                                        <packagePrefix>
                                            <type>IIOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>GIOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CosNaming</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CSI</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>GSSUP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CSIIOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>TimeBase</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>Security</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SSLIOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CosTransactions</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CosTSInteroperation</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CosTSPortability</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityLevel1</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityLevel2</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CONV_FRAME</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>IOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SECIOP</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>BiDirPolicy</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>CosLifeCycle</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>Dynamic</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>DynamicAny</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>IOP_N</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>LifeCycleService</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>Messaging</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>NRService</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>PortableInterceptor</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>PortableServer</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityAdmin</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityReplaceable</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityLevel1</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                        <packagePrefix>
                                            <type>SecurityLevel2</type>
                                            <prefix>org.omg</prefix>
                                        </packagePrefix>
                                    </packagePrefixes>
                                </source>
                            </sources>
                        </configuration>
                    </plugin>
                    
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
