<project>
  <parent>
    <artifactId>specs</artifactId>
    <groupId>org.apache.geronimo.specs</groupId>
    <version>1.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>geronimo-corba_2.3_spec</artifactId>
  <name>CORBA</name>
  <version>1.0</version>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>maven-idlj-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <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>
          </packagePrefixes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>