The fixes for the eclipse warnings have been merged to master, and verified to work on Eclipse version June 2021.
As a footnote, Eclipse does not currently synchronise JPMS settings from the project POM. There is an open bug report here: https://github.com/eclipse-m2e/m2e-core/issues/129 <https://github.com/eclipse-m2e/m2e-core/issues/129> This note is included in the documentation for users under docs/eclipse.md. Thanks, David > On 19 Jul 2021, at 18:03, David Cromberge <[email protected]> > wrote: > > Hi Lee, > > I’ve found a potential solution to address the relative path issue that you > mentioned below. > The `relativePath` property on the POM’s <parent> element provides a way to > lookup a dependency from a remote repository instead of the default order of > precedence. > > This change is introduced in > https://github.com/apache/datasketches-memory/pull/133 > <https://github.com/apache/datasketches-memory/pull/133>. > > David > >> On 16 Jul 2021, at 22:16, leerho <[email protected] >> <mailto:[email protected]>> wrote: >> >> Dave, >> After this recent merge #132, this problem reappeared: >> >> Project build error: 'parent.relativePath' of POM >> org.apache.datasketches:datasketches-memory:2.0.0-SNAPSHOT >> (/Users/lrhodes/dev/git/Apache/datasketches-memory2/datasketches-memory/pom.xml) >> points at org.apache.datasketches:datasketches-memory-root >> instead of org.apache:apache, >> please verify your project structure. >> pom.xml /datasketches-memory line 27 Maven pom Loading Problem >> >> I find this error description puzzling ... because the pom at the "root" of >> the project points to org.apache:apache as well as the pom under >> datasketches-memory. Clearly it is confused. >> >> On Fri, Jul 16, 2021 at 5:48 AM David Cromberge >> <[email protected] <mailto:[email protected]>> wrote: >> Thanks for your help with the Eclipse build, Lee. I’ll merge the fixes we >> have made into master and integrate your notes into the documentation >> afterwards. >> David >> >>> On 15 Jul 2021, at 19:30, leerho <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> I cleaned up a few more nits and had to add back the >>> SuppressWarnings("restricted"). (this is a continuous loop) >>> >>> I also have created the following startup documentation for Eclipse: >>> Use it as you see fit. >>> >>> Lee. >>> >>> On Mon, Jul 12, 2021 at 2:01 PM David Cromberge >>> <[email protected] <mailto:[email protected]>> >>> wrote: >>> Thank you for testing on the branch that I have created. >>> >>> Please be aware that I have updated the documentation for toolchains and >>> eclipse to further clarify the necessary steps for setting up a local IDE. >>> I have already updated the toolchains documentation to explain how a >>> developer can setup their local environment variables, (see >>> docs/toolchains.md). >>> >>> Furthermore, to address your Eclipse errors you need to ensure that you >>> have installed the requisite JREs in Eclipse, and configured each module to >>> use the correct JRE. Unfortunately it does not synchronise correctly with >>> Maven. >>> It is also necessary to add JPMS module exports for datasketches-java9, to >>> provide access to some of the JDK internals (namely, the cleaner). Note >>> that the `datasketches-java9-tests` module has been removed as this did not >>> play well with Eclipse. >>> >>> It is my hope that the updates I made earlier today to the documentation >>> should be sufficient to correct these errors (see docs/eclipse.md). >>> >>> I’ve tested these steps on a vanilla zip of the branch on the latest >>> Eclipse IDE (June 2021 - see below). If you experience difficulties, I’d >>> be happy to jump on a call and summarise any shortcomings on this thread. >>> >>> David >>> >>> <Screenshot 2021-07-12 at 21.40.28.png> >>> >>> >>> >>> >>>> On 12 Jul 2021, at 20:03, leerho <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> I am now testing exclusively from the build-fix-errors branch >>>> By removing JDK 10 and 12 from toolchains.xml and from the matrix in >>>> maven.yml I was able to successfully execute >>>> mvn clean install --toolchains .github/workflows/.toolchains.xml >>>> We still need docs to explain that the developer may need to do this based >>>> on what JDKs are in the developer's environment. >>>> In Eclipse, .gitignore, .project, .classpath, and .settings files appear >>>> in all the datasketches-memory* sub maven-module directories. >>>> So the root .gitignore file needs to be updated to make sure these files >>>> do not propagate into version control. (Attached) >>>> Eclipse will still not compile. Attached is the error logs. >>>> >>>> <Screen Shot 2021-07-12 at 11.12.54 AM.png> >>>> >>>> On Fri, Jul 9, 2021 at 7:55 PM leerho <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> More precisely: >>>> mvn clean package eclipse:eclipse --toolchains >>>> .github/workflows/.toolchains.xml >>>> Works. >>>> >>>> Now I'm going to see if I can get Eclipse working :) >>>> >>>> >>>> On Fri, Jul 9, 2021 at 3:19 PM David Cromberge >>>> <[email protected] <mailto:[email protected]>> >>>> wrote: >>>> OK - >>>> >>>> I need to investigate exactly how the module dependencies are getting >>>> resolved by some plugins, as I had a similar issue with the javadoc plugin >>>> and its class paths. >>>> >>>> To illustrate the point, the eclipse plugin command `mvn clean package >>>> eclipse:eclipse` will succeed. >>>> >>>> As I mentioned, I’ll try and correct these issues as soon as possible via >>>> a follow-up PR. >>>> >>>> >>>>> On 9 Jul 2021, at 23:08, leerho <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> No. Reverting can be messy. I prefer we just keep moving forward ... >>>>> It is not a crisis if master isn't perfect, as long as we can fix it >>>>> reasonably quickly :) >>>>> >>>>> >>>>> On Fri, Jul 9, 2021 at 3:03 PM David Cromberge >>>>> <[email protected] <mailto:[email protected]>> >>>>> wrote: >>>>> Interesting, I have not yet tested the enclose compatibly in that manner. >>>>> I tested using the IDE itself. >>>>> >>>>> As an update, I have created a new toolchain for the user, and am looking >>>>> at the surefire plugin mechanism for scanning dependencies. >>>>> >>>>> I’ll add the mvn eclipse:eclipse command to the list - I agree, it should >>>>> not be scanning maven central. >>>>> >>>>> Would you prefer I revert the PR merge whilst I address these issues? >>>>> >>>>> >>>>> David >>>>> >>>>>> On 9 Jul 2021, at 22:55, leerho <[email protected] >>>>>> <mailto:[email protected]>> wrote: >>>>>> >>>>>> Ok, I removed the <classifier>tests</classifier> from the pom. >>>>>> >>>>>> As long as the entries in the toolchain match the JDKs I have installed >>>>>> and the matrix versions also match then >>>>>> >>>>>> mvn clean install --toolchains .github/workflows/.toolchains.xml WORKS! >>>>>> >>>>>> However, when I try: mvn clean eclipse:eclipse --toolchains >>>>>> .github/workflows/.toolchains.xml >>>>>> it fails with >>>>>> [ERROR] Failed to execute goal >>>>>> org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce >>>>>> (enforce-banned-dependencies) on project >>>>>> datasketches-memory-java8-tests: Execution enforce-banned-dependencies >>>>>> of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce >>>>>> failed: >>>>>> org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException: >>>>>> Could not resolve following dependencies: >>>>>> [org.apache.datasketches:datasketches-memory-java8:jar:2.0.0-SNAPSHOT >>>>>> (test)]: Could not resolve dependencies for project >>>>>> org.apache.datasketches:datasketches-memory-java8-tests:jar:2.0.0-SNAPSHOT: >>>>>> org.apache.datasketches:datasketches-memory-java8:jar:2.0.0-SNAPSHOT >>>>>> was not found in >>>>>> https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/ >>>>>> >>>>>> <https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.google.com/url?q%253Dhttps://www.google.com/url?q%25253Dhttps://www.google.com/url?q%2525253Dhttps://repository.apache.org/content/groups/snapshots/org/apache/datasketches/%25252526source%2525253Dgmail-imap%25252526ust%2525253D1626472557000000%25252526usg%2525253DAOvVaw2ropAlkfYzKFBNVxduUwHm%252526source%25253Dgmail-imap%252526ust%25253D1626473317000000%252526usg%25253DAOvVaw2XzzitEqlgUU_DwnzUD6qE%2526source%253Dgmail-imap%2526ust%253D1626721420000000%2526usg%253DAOvVaw3jul9wTMp1jhZN-2t-gZUX%26source%3Dgmail-imap%26ust%3D1626978674000000%26usg%3DAOvVaw05LfymFkmAL6GpTChtBqlI&source=gmail-imap&ust=1627075026000000&usg=AOvVaw3ux8-aAnXzbJkS3uzll11i> >>>>>> during a previous attempt. This failure was cached in the local >>>>>> repository and resolution is not reattempted until the update interval >>>>>> of apache.snapshots has elapsed or updates are forced >>>>>> The irony is that I think >>>>>> org.apache.datasketches:datasketches-memory-java8:jar:2.0.0-SNAPSHOT >>>>>> exists in my .m2: >>>>>> (base) datasketches $ pwd >>>>>> /Users/lrhodes/.m2/repository/org/apache/datasketches >>>>>> (base) datasketches $ tree >>>>>> . >>>>>> ├── datasketches-memory >>>>>> ... >>>>>> │ ├── 2.0.0 >>>>>> │ │ ├── datasketches-memory-2.0.0.jar.lastUpdated >>>>>> │ │ └── datasketches-memory-2.0.0.pom.lastUpdated >>>>>> │ ├── 2.0.0-SNAPSHOT >>>>>> │ │ ├── _remote.repositories >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT-javadoc.jar >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT-sources.jar >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT-test-sources.jar >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT-tests.jar >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT.jar >>>>>> │ │ ├── datasketches-memory-2.0.0-SNAPSHOT.pom >>>>>> │ │ └── maven-metadata-local.xml >>>>>> │ ├── maven-metadata-apache.releases.https.xml >>>>>> │ ├── maven-metadata-central.xml >>>>>> │ ├── maven-metadata-central.xml.sha1 >>>>>> │ ├── maven-metadata-local.xml >>>>>> │ └── resolver-status.properties >>>>>> ├── datasketches-memory-java8 >>>>>> │ └── 2.0.0-SNAPSHOT >>>>>> │ ├── datasketches-memory-java8-2.0.0-SNAPSHOT.jar.lastUpdated >>>>>> │ └── resolver-status.properties >>>>>> ├── datasketches-memory-java8-tests >>>>>> │ └── 2.0.0-SNAPSHOT >>>>>> │ ├── >>>>>> datasketches-memory-java8-tests-2.0.0-SNAPSHOT-tests.jar.lastUpdated >>>>>> │ └── resolver-status.properties >>>>>> ... >>>>>> However when I open the contents of one of those "lastUpdated" files I >>>>>> see: >>>>>> #NOTE: This is a Maven Resolver internal implementation file, its format >>>>>> can be changed without prior notice. >>>>>> #Fri Jul 09 11:14:59 PDT 2021 >>>>>> https\://repository.apache.org/content/groups/snapshots/org/apache/datasketches/.lastUpdated=1625854499312 >>>>>> >>>>>> <https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.google.com/url?q%253Dhttps://www.google.com/url?q%25253Dhttps://www.google.com/url?q%2525253Dhttp://repository.apache.org/content/groups/snapshots/org/apache/datasketches/.lastUpdated%252525253D1625854499312%25252526source%2525253Dgmail-imap%25252526ust%2525253D1626472557000000%25252526usg%2525253DAOvVaw0V0lZQnMhTvqogOHBwW7Xh%252526source%25253Dgmail-imap%252526ust%25253D1626473317000000%252526usg%25253DAOvVaw0HxRrCpM1A83hYCHwrpZxu%2526source%253Dgmail-imap%2526ust%253D1626721420000000%2526usg%253DAOvVaw2UcqPMdCHRg5CZfJUsIiYp%26source%3Dgmail-imap%26ust%3D1626978674000000%26usg%3DAOvVaw0TQqr10-_nXvzZtt3_adfH&source=gmail-imap&ust=1627075026000000&usg=AOvVaw361Xuf1-ZryCKIxA17b77m> >>>>>> https\://repository.apache.org/content/groups/snapshots/org/apache/datasketches/.error= >>>>>> >>>>>> <https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.google.com/url?q%253Dhttps://www.google.com/url?q%25253Dhttps://www.google.com/url?q%2525253Dhttp://repository.apache.org/content/groups/snapshots/org/apache/datasketches/.error%252525253D%25252526source%2525253Dgmail-imap%25252526ust%2525253D1626472557000000%25252526usg%2525253DAOvVaw1bOghQQaqPVA0g29hbDYSg%252526source%25253Dgmail-imap%252526ust%25253D1626473317000000%252526usg%25253DAOvVaw0cycrZM7NX9X9VhR_fgRTA%2526source%253Dgmail-imap%2526ust%253D1626721420000000%2526usg%253DAOvVaw1eT8UXnch8Xg2ZWWC_X34X%26source%3Dgmail-imap%26ust%3D1626978674000000%26usg%3DAOvVaw0MLJl5K3qOV2sEDhszqRDu&source=gmail-imap&ust=1627075026000000&usg=AOvVaw1A5XDxyvM6J3CgCPlLCoJf> >>>>>> (blank) >>>>>> So it appears to reference the apache repo! Which it should not, I would >>>>>> think. >>>>>> >>>>>> Even though I can get maven to run, so far I haven't been able to get >>>>>> Eclipse to run. >>>>>> >>>>>> Lee. >>>>>> >>>>>> >>>>>> On Fri, Jul 9, 2021 at 1:18 PM David Cromberge >>>>>> <[email protected] <mailto:[email protected]>> >>>>>> wrote: >>>>>> Lee, >>>>>> >>>>>> Apologies for the issues that you are experiencing with the build. >>>>>> >>>>>> In order to support multiple versions of the JVM, the multi-release JAR >>>>>> is tested using the java8 tests suite. The tests are required as a >>>>>> module dependency and reflection is used to run all the tests from the >>>>>> java8 tests JAR. >>>>>> This process requires the use of a dependency classifier which is >>>>>> responsible for these errors. >>>>>> >>>>>> As a workaround, you can temporarily install the dependency locally, >>>>>> using `mvn install`, or you can manually edit the >>>>>> datasketches-memory-tests pom.xml to remove the classifier: >>>>>> >>>>>> <Screenshot 2021-07-09 at 21.16.53.png> >>>>>> >>>>>> >>>>>> Admittedly, it’s not ideal to use the GitHub actions toolchains as a >>>>>> user template. >>>>>> >>>>>> I’ll look into these problems in the interim and create a follow-up pull >>>>>> request to address them, >>>>>> >>>>>> Thank you for your patience, >>>>>> David >>>>>> >>>>>> >>>>>>> On 9 Jul 2021, at 20:54, leerho <[email protected] >>>>>>> <mailto:[email protected]>> wrote: >>>>>>> >>>>>>> Hmmm. >>>>>>> OK, :-( I read the README, and it says I only need JDK 8,9 and 11 >>>>>>> installed. >>>>>>> >>>>>>> With JAVA_HOME pointing to JDK 11, I tried >>>>>>> mvn clean compile --toolchains .github/workflows/.toolchains.xml >>>>>>> >>>>>>> I get the following errors: >>>>>>> [ERROR] Misconfigured toolchain. >>>>>>> org.apache.maven.toolchain.MisconfiguredToolchainException: >>>>>>> Non-existing JDK home configuration at >>>>>>> /Users/lrhodes/dev/git/Apache/datasketches-memory2/${env.JAVA10_HOME} >>>>>>> [ERROR] Misconfigured toolchain. >>>>>>> org.apache.maven.toolchain.MisconfiguredToolchainException: >>>>>>> Non-existing JDK home configuration at >>>>>>> /Users/lrhodes/dev/git/Apache/datasketches-memory2/${env.JAVA12_HOME} >>>>>>> I think it is telling me I need 10 and 12 installed too. >>>>>>> So I temporarily removed 10 and 12 from the matrix test (I don't have >>>>>>> those installed), >>>>>>> and I removed 10 and 12 from the toolchain. >>>>>>> >>>>>>> Now it gives me this error: >>>>>>> [ERROR] Failed to execute goal >>>>>>> org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce >>>>>>> (enforce-banned-dependencies) on project datasketches-memory-tests: >>>>>>> Execution enforce-banned-dependencies of goal >>>>>>> org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: >>>>>>> org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException: >>>>>>> >>>>>>> Could not resolve following dependencies: >>>>>>> [org.apache.datasketches:datasketches-memory-java8-tests:jar:tests:2.0.0-SNAPSHOT >>>>>>> (test)]: >>>>>>> Could not resolve dependencies for project >>>>>>> org.apache.datasketches:datasketches-memory-tests:jar:2.0.0-SNAPSHOT: >>>>>>> org.apache.datasketches:datasketches-memory-java8-tests:jar:tests:2.0.0-SNAPSHOT >>>>>>> >>>>>>> was not found in >>>>>>> https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/ >>>>>>> >>>>>>> <https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.google.com/url?q%253Dhttps://www.google.com/url?q%25253Dhttps://www.google.com/url?q%2525253Dhttps://www.google.com/url?q%252525253Dhttps://repository.apache.org/content/groups/snapshots/org/apache/datasketches/%2525252526source%252525253Dgmail-imap%2525252526ust%252525253D1626465263000000%2525252526usg%252525253DAOvVaw0zU9ASggdO53YTS6qMd0Bs%25252526source%2525253Dgmail-imap%25252526ust%2525253D1626472557000000%25252526usg%2525253DAOvVaw2YXDOOchjoKno5SYKbsC0l%252526source%25253Dgmail-imap%252526ust%25253D1626473317000000%252526usg%25253DAOvVaw0pqXemU9jqjhcLDEZ_VyZC%2526source%253Dgmail-imap%2526ust%253D1626721420000000%2526usg%253DAOvVaw300347HftUcKUf-wTEjBy-%26source%3Dgmail-imap%26ust%3D1626978674000000%26usg%3DAOvVaw3VZIN0iceODaebUbQYCnfq&source=gmail-imap&ust=1627075026000000&usg=AOvVaw3Xo9OB4F_F1lR0rFUEUC_C> >>>>>>> >>>>>>> during a previous attempt. This failure was cached in the local >>>>>>> repository and resolution is not reattempted until the update interval >>>>>>> of apache.snapshots has elapsed or updates are forced >>>>>>> Hmm. It should not be trying to locate the 2.0.0-SNAPSHOT from Apache >>>>>>> unless it can't find it locally in my .m2. But I can't create it in .m2 >>>>>>> unless I do an mvn install; and before I can do a maven install, I >>>>>>> need to successfully compile. I'm stuck in a do-loop. >>>>>>> >>>>>>> Next I tried removing all 9+ versions from both the toolchain and the >>>>>>> matrix. I get the same error. >>>>>>> >>>>>>> Lee. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Jul 9, 2021 at 12:02 PM leerho <[email protected] >>>>>>> <mailto:[email protected]>> wrote: >>>>>>> David, >>>>>>> After the merge of PR#131 and doing a new clone of : >>>>>>> Setting JAVA_HOME to JDK8 >>>>>>> mvn clean compile >>>>>>> successful compile of java 8, but fails on java 9 >>>>>>> Setting JAVA_HOME to JDK11 >>>>>>> mvn clean compile >>>>>>> Reactor Summary for datasketches-memory-root 2.0.0-SNAPSHOT: >>>>>>> [INFO] datasketches-memory-root ........................... SUCCESS [ >>>>>>> 0.912 s] >>>>>>> [INFO] datasketches-memory-java8 .......................... SUCCESS [ >>>>>>> 1.322 s] >>>>>>> [INFO] datasketches-memory-java8-tests .................... SUCCESS [ >>>>>>> 0.087 s] >>>>>>> [INFO] datasketches-memory-java9 .......................... SUCCESS [ >>>>>>> 0.602 s] >>>>>>> [INFO] datasketches-memory-java9-tests .................... SUCCESS [ >>>>>>> 0.191 s] >>>>>>> [INFO] datasketches-memory-java11 ......................... SUCCESS [ >>>>>>> 0.701 s] >>>>>>> [INFO] datasketches-memory ................................ SUCCESS [ >>>>>>> 0.182 s] >>>>>>> [INFO] datasketches-memory-tests .......................... FAILURE [ >>>>>>> 1.201 s] >>>>>>> [ERROR] Failed to execute goal >>>>>>> org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce >>>>>>> (enforce-banned-dependencies) on project datasketches-memory-tests: >>>>>>> Execution enforce-banned-dependencies of goal >>>>>>> org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: >>>>>>> org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException: >>>>>>> >>>>>>> Could not resolve following dependencies: >>>>>>> [org.apache.datasketches:datasketches-memory-java8-tests:jar:tests:2.0.0-SNAPSHOT >>>>>>> (test)]: >>>>>>> Could not resolve dependencies for project >>>>>>> org.apache.datasketches:datasketches-memory-tests:jar:2.0.0-SNAPSHOT: >>>>>>> Could not find artifact >>>>>>> org.apache.datasketches:datasketches-memory-java8-tests:jar:tests:2.0.0-SNAPSHOT >>>>>>> in apache.snapshots >>>>>>> (https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/ >>>>>>> >>>>>>> <https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.google.com/url?q%253Dhttps://www.google.com/url?q%25253Dhttps://www.google.com/url?q%2525253Dhttps://www.google.com/url?q%252525253Dhttps://repository.apache.org/content/groups/snapshots/org/apache/datasketches/%2525252526source%252525253Dgmail-imap%2525252526ust%252525253D1626465263000000%2525252526usg%252525253DAOvVaw0zU9ASggdO53YTS6qMd0Bs%25252526source%2525253Dgmail-imap%25252526ust%2525253D1626472557000000%25252526usg%2525253DAOvVaw2YXDOOchjoKno5SYKbsC0l%252526source%25253Dgmail-imap%252526ust%25253D1626473317000000%252526usg%25253DAOvVaw0pqXemU9jqjhcLDEZ_VyZC%2526source%253Dgmail-imap%2526ust%253D1626721420000000%2526usg%253DAOvVaw300347HftUcKUf-wTEjBy-%26source%3Dgmail-imap%26ust%3D1626978674000000%26usg%3DAOvVaw3VZIN0iceODaebUbQYCnfq&source=gmail-imap&ust=1627075026000000&usg=AOvVaw3Xo9OB4F_F1lR0rFUEUC_C>) >>>>>>> >>>>>>> I'm not sure how to resolve this. I'm wondering if I am missing a >>>>>>> toolchain in my environment. >>>>>>> >>>>>>> Lee. >>>>>>> >>>>>> >>>>> >>>> >>> >>> <ImportIntoEclipse.md> >> >
