John Blum created GEODE-9657:
--------------------------------

             Summary: Javadoc errors occur on Java 17 due to split packages in 
Geode
                 Key: GEODE-9657
                 URL: https://issues.apache.org/jira/browse/GEODE-9657
             Project: Geode
          Issue Type: Bug
          Components: core
    Affects Versions: 1.14.0, 1.13.4
            Reporter: John Blum


When trying to build any library, framework (e.g. _Spring Data for Apache 
Geode_ (SDG)) or application with Apache Geode on Java 17, Javadoc errors occur.

For example:

{code}
22:36:52  [ERROR] 
/opt/jenkins/data/workspace/spring-data-geode_3.0.x/spring-data-geode/src/main/java/org/springframework/data/gemfire/function/PojoFunctionWrapper.java:53:
 error: cannot access Identifiable
22:36:52  [ERROR] public class PojoFunctionWrapper implements Function {
22:36:52  [ERROR]        ^
22:36:52  [ERROR]   class file for org.apache.geode.lang.Identifiable not found
{code}

As it turns out, in Java 17, the _Javadoc_ tool now uses _Java_ modules.  
_Javadoc_ is started with:

{code}
javadoc … --add-modules ALL-MODULE-PATH --module-path --patch-module …
{code}

{{geode-core-1.14.0.jar}} ships 
{{org.apache.geode.lang.AttachAPINotFoundException}} and 
{{geode-common-1.14.0.jar}} ships {{org.apache.geode.lang.Identifiable}}. Due 
to this split-package arrangement, _Javadoc_ isn’t discovering {{Identifiable}} 
because it has found the package {{org.apache.geode.lang}} in 
{{geode-core-1.14.0.jar}}.

The best course of action is to make sure all {{org.apache.geode.lang}} 
sub-packages and class are in 1 JAR (e.g. {{geode-common}}) or the other (i.e. 
{{geode-core}}).




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to