<project>
  <parent>
    <artifactId>specs</artifactId>
    <groupId>org.apache.geronimo.specs</groupId>
    <version>1.1</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>geronimo-corba_3.0_spec</artifactId>
  <name>CORBA 3.0</name>
  <version>${geronimoSpecsCorba30Version}</version>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-spec-corba-3.0/</connection>
    <developerConnection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-spec-corba-3.0/</developerConnection>
    <url>http://svn.apache.org/viewcvs.cgi/geronimo/specs/trunk/geronimo-spec-corba-3.0/</url>
  </scm>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>idlj-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <debug>false</debug>
          <compiler>jacorb</compiler>
          <sources>
            <source>
              <emitStubs>false</emitStubs>
              <emitSkeletons>false</emitSkeletons>
              <includes>
                <include>**/IOP.idl</include>
                <include>**/IIOP.idl</include>
                <include>**/GIOP.idl</include>
                <include>**/CSI.idl</include>
                <include>**/CSIIOP.idl</include>
                <include>**/GSSUP.idl</include>
                <include>**/BiDirPolicy.idl</include>
                <include>**/CONV_FRAME.idl</include>
                <include>**/SendingContext.idl</include>
                <include>**/Dynamic.idl</include>
                <!-- <include>**/DynamicAny.idl</include> -->
                <include>**/PortableServer.idl</include>
                <include>**/PortableInterceptor.idl</include>
                <include>**/Security.idl</include>
                <include>**/SecurityLevel1.idl</include>
                <include>**/SecurityLevel2.idl</include>
                <include>**/TimeBase.idl</include>
                <include>**/SecurityAdmin.idl</include>
                <include>**/SECIOP.idl</include>
                <include>**/SSLIOP.idl</include>
                <include>**/CosNaming.idl</include>
                <include>**/CosTransactions.idl</include>
                <include>**/corba.idl</include>
                <include>**/CompletionStatus.idl</include>
              </includes>
              <excludes>
                <exclude>**/reference/**/*.idl</exclude>
              </excludes>
              <packagePrefix>org.omg</packagePrefix>
              <defines>
                <define>
                  <symbol>_PRE_3_0_COMPILER_</symbol>
                </define>
                <define>
                  <symbol>GIOP_1_1</symbol>
                </define>
                <define>
                  <symbol>GIOP_1_2</symbol>
                </define>               
              </defines>
              <additionalArguments>
              </additionalArguments>
            </source>          
          </sources>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-idl-compiler</artifactId>
            <version>2.2.3</version>
          </dependency>
          <dependency>
            <groupId>logkit</groupId>
            <artifactId>logkit</artifactId>
            <version>1.2.2</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
