I have updated Eclipse to version 2019-03, and pulled the latest version of Poi
trunk from the Git mirror. Eclipse now builds POI without errors, but
apparently I cannot make use of it (see details below). I am trying to get
around this by going back to using Ant to build build.xml with the "jar"
target, but it fails during the test phase. I am an Ant newbie, so I can only
guess as to what is happening here.
When Ant fails, the following written is to the console:
[junit] Running org.apache.poi.TestXMLPropertiesTextExtractor
[junit] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
1.028 sec
[junit] Running org.apache.poi.extractor.ooxml.TestExtractorFactory
[junit] Tests run: 15, Failures: 0, Errors: 4, Skipped: 0, Time elapsed:
2.54 sec
BUILD FAILED
C:\Users\David M. Gauntt\git\poi\build.xml:1629: The following error occurred
while executing this line:
C:\Users\David M. Gauntt\git\poi\build.xml:1595: The following error occurred
while executing this line:
C:\Users\David M. Gauntt\git\poi\build.xml:1237: Tests failed
The lines of build.xml that cause the errors are:
<target name="test-ooxml"
depends="compile-main,compile-ooxml,-test-ooxml-check,jacocotask,-ooxml-lite-agent"
unless="ooxml.test.notRequired"
description="test OOXML classes">
// Fails on the following line
<ooxml-test-runner classpath="test.ooxml.classpath" type="ooxml"/>
<delete file="${ooxml.testokfile}"/>
<antcall target="-test-ooxml-write-testfile"/>
</target>
and
<macrodef name="ooxml-test-runner" xmlns:jacoco="antlib:org.jacoco.ant">
<attribute name="classpath"/>
<attribute name="type"/>
<sequential>
// Fails on the following line
<poiunit failureproperty="ooxml.test.failed" heap="768"
jacocodest="build/jacoco-@{type}.exec">
<classpath>
<path refid="@{classpath}"/>
<path refid="test.jar.classpath"/>
</classpath>
I will see if I can disable a test target as a jury-rig, but that doesn't seem
like the best possible solution.
Details on Eclipse failure
I had written a UnitTest project to run unit tests on Poi (and other software).
In Eclipse, I have added ApachePOI as a "Required Project" in the build path,
but I get the following in the Problem window:
"The type org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet
cannot be resolved. It is indirectly referenced from required .class files"
I can get rid of this by adding two libarires that I downloaded from the
internet: "ooxml-schemas-1.4.jar" ad "ooxml-security-1.1.jar". When I do this
I can build and run the UnitTest project, but it appears to be executing the
XSSFSheet code in "ooxml-schemas-1.4.jar" rather than in the ApachePOI project,
which defeats the whole purpose of the UnitTest project.
________________________________
From: Gauntt, David
Sent: Thursday, April 25, 2019 11:34:53 AM
To: POI Developers List
Subject: Re: EXT MSG Re: Error while building POI project
Thanks for looking into this; I will try updating Eclipse and rebuilding
tonight.
I have also been working on building it using Ant within Eclipse; I will
post a question in the next day or two about my current problem with that.
‹
David M. Gauntt, Ph.D.
Associate Professor, Department of Radiology
UAB Medical Center
On 4/25/19, 7:58 AM, "Dominik Stadler" <[email protected]> wrote:
>Hi David,
>
>Sorry that it took you some time to make it work, we try to make it easy,
>but as things are constantly
>
>Sounds like a limitation of Eclipse, I just tried with Eclipse 4.7.x and
>saw the same error with latest trunk, it seems not many people working on
>POI are using Eclipse nowadays.
>
>I then tried with latest Eclipse 2019.03, there most of the compilation
>errors are gone, 4 are remaining for casts that seem to be too complex for
>Eclipse but are working with Oracle/OpenJDK/IBMJDK, we should probably
>work
>around those so we support at least the current version of Eclipse, even
>if
>it has limitations in its implementation of Java compilation.
>
>I performed a few smaller changes that should make it work on Eclipse
>2019.03 again, so if you can switch Eclipse and update to latest trunk,
>you
>should be able to compile.
>
>Thanks... Dominik.
>
>
>On Thu, Apr 25, 2019 at 3:04 AM Gauntt, David <[email protected]>
>wrote:
>
>> I am getting close to my first successful build of the POI project, and
>> have run into a couple of compiler errors that seem to be blocking me.
>>The
>> first of these is
>>
>>
>> Cannot reference a field before it is defined
>>
>>
>> This is caused 100 times in RecordTypes. java. How is it that other
>> people are getting this project to compile properly but not me? I am
>> building in Eclipse ver 2018-09 under Windows 10, using Java SE 1.8.
>>The
>> project is a copy of tag REL_4_1_0 from the Git mirror of POI.
>>
>>
>> The following code illustrates this error. Ironically, while the error
>> message says that I am trying to reference a field, the error seems to
>>be
>> caused by a method reference (UnknownRecordPlaceholder::new).
>>
>>
>> public final class SSCCE {
>>
>> static class UnknownRecordPlaceholder {
>> }
>>
>> enum RecordTypes {
>> // Error caused by next line
>> UnknownRecordPlaceholder(UnknownRecordPlaceholder::new);
>>
>> @FunctionalInterface
>> public interface RecordConstructor {
>> void test();
>> }
>>
>> public final RecordConstructor recordConstructor;
>>
>> RecordTypes(RecordConstructor recordConstructor) {
>> this.recordConstructor = recordConstructor;
>> }
>> }
>>
>> }
>>
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]