[jacorb-developer] Should jacorb-omgapi be fed into the compiler?

Nick Cross jacorb at goots.org
Mon Jul 13 14:27:38 CEST 2015


On 13/07/15 13:03, Timothy Astle wrote:
> Thanks Nick,
>
> Does anyone know how to adjust Eclipse so that it does basically what
> you're doing with IntelliJ?  I assume it has to do with tweaking the JDT
> compiler.  Ideally, when I import the Maven project, it'd just take the
> compiler settings and apply them to the Eclipse project.

As mentioned in the ProgrammingGuide section 2.2.5 I would recommend 
trying the JBoss Tools Endorsed Libraries plugin


> Tim
>
> PS.  Endorsed is deprecated in Java
> 8.https://docs.oracle.com/javase/8/docs/technotes/guides/standards/

As far as I know its not removed in JDK 8. Is the plan is to change it 
to upgradable modules in Java 9 ? ( 
http://blog.codefx.org/java/dev/how-java-9-and-project-jigsaw-may-break-your-code/#Removal-Of-The-Endorsed-Standards-Override-Mechanism 
)

Nick

> On 10/07/2015 5:53 PM, Nick Cross wrote:
>>
>> Hi,
>>
>> Reply inline
>>
>> On 06/07/15 20:59, Timothy Astle wrote:
>>> I observed something odd today and I'm not sure what to make of it
>>> (mostly because it was done this way for such a long time), so I'm going
>>> to do my best to describe what I seen in hope of understanding this
>>> better.  I'm going to omit versions and configuration details for now,
>>> just so I can make sure my logic is correct.
>>>
>>> Today when using Eclipse, I started seeing a compilation error for a
>>> class that extends a CORBA stub.  This stub extends the
>>> org.omg.CORBA.Object.  The eclipse compiler complained that my stub
>>> implementation was missing implementations for the following methods:
>>>
>>> * _get_client_policy(...)
>>> * _validate_connection(...)
>>> * etc.
>>
>>
>> Yes I have seen that in IntelliJ and often have to place the JacORB
>> stubs first.
>>
>>> Basically, the methods outlined in this conversation, which relate to a
>>> CORBA 3.1 draft:
>>> http://www.omg.org/issues/issue5782.txt
>>>
>>> I had a colleague use Eclipse and click through to his implementation
>>> (which didn't have problems) and he had Oracle comments all over the
>>> place.  So his Object interface was from Oracle (JDK), mine was from the
>>> 3.6.1 jacorb-omgapi bundle.
>>>
>>> The build using Maven (javac) never hits what I observed in Eclipse, but
>>> I'm not convinced it is correct, even though it "works".  I would have
>>> expected that we would have been using the org.omg.CORBA.Object from
>>> JacORB.  So during compilation, I would have expected it to fail the
>>> same as I'm now seeing in Eclipse.
>>>
>>> So I started digging about our configuration and looking at examples
>>> online for any hints so see if my suspicions were right or wrong.
>>>
>>> I don't believe the compiler plays a role in this particular problem
>>> because the generated code appears to be fine, but I'll show what I
>>> have:
>>>
>>> <plugin>
>>>        <groupId>org.codehaus.mojo</groupId>
>>>        <artifactId>idlj-maven-plugin</artifactId>
>>>        <version>1.2.1</version>
>>>        <executions>
>>>            <execution>
>>>                <goals>
>>>                    <goal>generate</goal>
>>>                </goals>
>>>            </execution>
>>>        </executions>
>>>        <configuration>
>>>            <compiler>jacorb</compiler>
>>>            <sources>
>>>                <source>
>>>                    <includes>
>>> <include>**/example.idl</include>
>>>                    </includes>
>>>                    <additionalArguments>
>>> <additionalArgument>-D_PRE_3_0_COMPILER_</additionalArgument>
>>> <additionalArgument>-DJACORB</additionalArgument>
>>>                    </additionalArguments>
>>>                    <compatible>false</compatible>
>>>                    <emitStubs>true</emitStubs>
>>> <emitSkeletons>false</emitSkeletons>
>>>                </source>
>>>            </sources>
>>>            <includeDirs>
>>> <includeDir>src/main/idl/jacorb</includeDir>
>>>                <includeDir>src/main/idl</includeDir>
>>>            </includeDirs>
>>>            <dependencies>
>>>                <dependency>
>>>                    <groupId>org.jacorb</groupId>
>>> <artifactId>jacorb-idl-compiler</artifactId>
>>>                    <version>3.6.1</version>
>>>                </dependency>
>>>            </dependencies>
>>>        </configuration>
>>> </plugin>
>>>
>>> Since the problem seems to be compile time, I started thinking about
>>> things like -Xbootclasspath, endorsedDirs, etc.  Then I stumbled across
>>> this:
>>>
>>> https://github.com/JacORB/JacORB/blob/master/demo/maven/pom.xml#L57
>>>
>>> So I'm like, "Hey, maybe I'm onto something here."  I tried this:
>>>
>>> <plugin>
>>>        <groupId>org.apache.maven.plugins</groupId>
>>>        <artifactId>maven-compiler-plugin</artifactId>
>>>        <configuration>
>>>            <source>1.8</source>
>>>            <target>1.8</target>
>>>            <compilerArgs>
>>>                <args>-Xlint:all</args>
>>> <args>-Xbootclasspath/p:${settings.localRepository}/org/jacorb/jacorb-omgapi/3.6.1/jacorb-omgapi-3.6.1.jar</args>
>>>
>>>            </compilerArgs>
>>>        </configuration>
>>> </plugin>
>>>
>>> and sure enough, it causes errors during our Maven compilation. I
>>> believe this is good.
>>>
>>> The runtime configuration uses the following properties:
>>>
>>> -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB
>>> -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
>>>
>>> so I think the runtime configuration should continue to work okay (I
>>> could be wrong).
>>>
>>> Does anyone have any thoughts?  Should I be setting the bootclasspath to
>>> the compiler as I did above to cause the failure? (Or is there a better
>>> way to do this?)  Does anyone notice anything else obvious that I could
>>> be missing in the configuration?
>>>
>>
>>
>> As you can see from the Maven demo and from the compiler command in
>> the regression suite I do use endorsed.dirs (equivalent to
>> Xbootclasspath) to ensure that the JacORB stubs are found first so the
>> correct ones are used.
>>
>> Correspondingly I run putting the JacORB stubs first as well.
>>
>> Regards
>>
>> Nick
>>
>>
>>
>> _______________________________________________
>> jacorb-developer maillist  -
>> jacorb-developer at lists.spline.inf.fu-berlin.de
>> https://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer
>>
>>
>



More information about the jacorb-developer mailing list