compile errors around JMemoryBuddy

Jeanette Winzenburg fastegal at swingempire.de
Tue Nov 3 13:07:50 UTC 2020


Zitat von Florian Kirmaier <florian.kirmaier at gmail.com>:

> Eclipse probably handles the modules differently than Gradle.

probably - couldn't find gradle's magic in the build script (and lost  
interest, because that part is running okay and there are enough  
experts around to keep it that way :)

> The simplest solution would be to remove the code to automatically create
> heap dumps.
> Adding java.management to module-info of the tests doesn't sound wrong to
> me if it's using it.
>

that's basically, what I ended up with.

To summarize the problem: when compiling base and running tests of  
controls in Eclipse I got

a) JMemoryBuddy doesn't compile, Eclipse suggests to add requires  
jdk.management and java.management
b) following the suggestion, some controls test don't compile due to  
base:test.util.memory not being accessible

As changing production module-info is not an option (and Eclipse'  
support for test module-info is wip - see  
https://bugs.eclipse.org/bugs/show_bug.cgi?id=559601 ) I played a bit  
with the (new to me ;) module dependencies tab in build path config  
and added reads to both modules. Couldn't find a way to add them to  
test sources only (Eclipse added them to java src), so manually moved  
in .classpath file, its test entry now is:

<classpathentry kind="src" output="testbin" path="src/test/java">
	<attributes>
		<attribute name="test" value="true"/>
		<attribute name="optional" value="true"/>
		<attribute name="module" value="true"/>
		<attribute name="add-reads"  
value="javafx.base=jdk.management:javafx.base=java.management"/>
	</attributes>
</classpathentry>

This fixed the error in base.

To fix the error in controls, I added the export of new base test  
package in :controls .classpath

<classpathentry combineaccessrules="false" kind="src" path="/base">
	<attributes>
		<attribute name="module" value="true"/>
		<attribute name="add-exports"  
value="javafx.base/test.com.sun.javafx.binding=javafx.controls:javafx.base/test.util.memory=javafx.controls"/>
	</attributes>
</classpathentry>

no idea how stable all this is, working for me at least. Should the  
eclipse specific files updated in master, with this or something  
similar/better?

Opinions, please?

-- Jeanette



> On Mon, 2 Nov 2020 at 14:01, Kevin Rushforth <kevin.rushforth at oracle.com>
> wrote:
>
>> I didn't try it with an earlier JDK, but if it breaks when using JDK 11
>> it will need to be fixed.
>>
>> -- Kevin
>>
>>
>> On 11/2/2020 4:11 AM, Jeanette Winzenburg wrote:
>> >
>> > just fetched the latest upstream master and getting compile errors
>> > around xx.management packages (eclipse wants to add requires into the
>> > module-info - which certainly is the wrong way to go ;) Compiling
>> > against jdk12, if that matters (will update one of these days but
>> > shouldn't jdk11 be good enough).
>> >
>> > Any quick ideas on what might be wrong?
>> >
>> > -- Jeanette
>> >
>> >
>>
>>





More information about the openjfx-dev mailing list