Hi Karl,

it works perfectly so this means that we don't need to upgrade to a newer
version of Hadoop.
I added the following sed instruction to the ManifoldCF SDK using version
2.26 and it worked:

sed -i -e
's/<\/dependencies>/<dependency><groupId>org.apache.hadoop<\/groupId><artifactId>hadoop-annotations<\/artifactId><version>${hadoop.version}<\/version><exclusions><exclusion><groupId>jdk.tools<\/groupId><artifactId>jdk.tools<\/artifactId><\/exclusion><\/exclusions><\/dependency><\/dependencies>/g'
connectors/hdfs/pom.xml

We have to declare the following dependency in the connectors/hdfs/pom.xml:

<dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>
      <version>${hadoop.version}</version>
      <exclusions>
        <exclusion>
          <groupId>jdk.tools</groupId>
          <artifactId>jdk.tools</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

Cheers,
PG


Il giorno ven 24 nov 2023 alle ore 23:26 Piergiorgio Lucidi <
piergior...@apache.org> ha scritto:

> Hi Karl,
>
> the problem is that the unique dependency declared in that pom.xml is the
> hadoop-common importing hadoop-annotations that is causing the issue.
> Below what I see in the hadoop-annotations pom:
>
> <profiles>
>     <profile>
>       <id>os.linux</id>
>       <activation>
>         <os>
>           <family>!Mac</family>
>         </os>
>       </activation>
>       <dependencies>
>         <dependency>
>           <groupId>jdk.tools</groupId>
>           <artifactId>jdk.tools</artifactId>
>           <version>1.6</version>
>           <scope>system</scope>
>           <systemPath>${java.home}/../lib/tools.jar</systemPath>
>         </dependency>
>       </dependencies>
>     </profile>
>     <profile>
>       <id>jdk1.7</id>
>       <activation>
>         <jdk>1.7</jdk>
>       </activation>
>       <dependencies>
>         <dependency>
>           <groupId>jdk.tools</groupId>
>           <artifactId>jdk.tools</artifactId>
>           <version>1.7</version>
>           <scope>system</scope>
>           <systemPath>${java.home}/../lib/tools.jar</systemPath>
>         </dependency>
>       </dependencies>
>     </profile>
>   </profiles>
>
> Probably we could solve declaring hadoop-annotations dependency by adding
> an exclusion related to the jdk.tools dependency.
> Something like this:
>
> <dependency>
>       <groupId>org.apache.hadoop</groupId>
>       <artifactId>hadoop-annotations</artifactId>
>       <version>${hadoop.version}</version>
>       <exclusions>
>         <exclusion>
>           <groupId>jdk.tools</groupId>
>           <artifactId>jdk.tools</artifactId>
>         </exclusion>
>       </exclusions>
>     </dependency>
>
> I'll try to apply this using the ManifoldCF SDK and I'll let you know
>
> Cheers,
> PG
>
>
> Il giorno ven 24 nov 2023 alle ore 21:34 Karl Wright <daddy...@gmail.com>
> ha scritto:
>
>> Hi - the jar it's looking for may no longer be part of the java 11 jdk.
>> I'm not exactly sure how to best handle this in Maven.  It may simply be
>> possible to remove the dependency entirely from the maven pom.
>>
>>
>> On Fri, Nov 24, 2023 at 12:34 PM Piergiorgio Lucidi <
>> piergior...@apache.org>
>> wrote:
>>
>> > I have just created this ticket:
>> > https://issues.apache.org/jira/browse/CONNECTORS-1751
>> >
>> > Il giorno ven 24 nov 2023 alle ore 18:19 Piergiorgio Lucidi <
>> > piergior...@apache.org> ha scritto:
>> >
>> > > Hi folks,
>> > >
>> > > Thanks to the ManifoldCF SDK, I found another issue with the Maven
>> build.
>> > > Steps to reproduce the issue with the Manifold SDK:
>> > >
>> > > 1. Clone the ManifoldCF SDK project from the following URL:
>> > > git clone https://github.com/OpenPj/manifoldcf-sdk.git
>> > >
>> > > 2. Remove row 27 from the run.sh script, this line is including the
>> > hotfix
>> > > for the hadoop version upgrading it to the latest version 3.3.6.
>> > >
>> > > 3. Run the following command in order to download the ManifoldCF
>> source
>> > > code and run the Ant and Maven build process in a Docker container
>> based
>> > on
>> > > Maven 3.9.5 and OpenJDK Temurin 11This in order to install locally all
>> > the
>> > > Maven dependencies needed to implement custom extensions / connectors.
>> > The
>> > > Docker Volume includes the entire Maven repo used by the ManifoldCF
>> build
>> > > process and it will be copied in the SDK target folder and configured
>> in
>> > > order to compile your Java Custom code:
>> > >
>> > > ./run.sh init 2.26 ga
>> > >
>> > > The current version of the SDK includes the sep instruction to fix all
>> > the
>> > > build problems described here:
>> > > https://issues.apache.org/jira/browse/CONNECTORS-1750
>> > >
>> > > These issues are also resolved in ManifoldCF main trunk but still
>> present
>> > > in the latest previous release packages (source code packages).
>> > > I have to confess that I don't know if this issue is also included in
>> > > other releases.
>> > > The SDK is returning the following error that should be related to the
>> > > Hadoop Annotations dependencies of Hadoop 2.6.0, a very old version of
>> > > Hadoop that includes a JDK 1.6 dependency:
>> jdk.tools:jdk.tools:jar:1.6.
>> > >
>> > > [ERROR] Failed to execute goal on project mcf-hdfs-connector: Could
>> not
>> > > resolve dependencies for project
>> > > org.apache.manifoldcf:mcf-hdfs-connector:jar:2.26: The following
>> > artifacts
>> > > could not be resolved: jdk.tools:jdk.tools:jar:1.6: Could not find
>> > artifact
>> > > jdk.tools:jdk.tools:jar:1.6 at specified path
>> > > /opt/java/openjdk/../lib/tools.jar -> [Help 1]
>> > > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
>> execute
>> > > goal on project mcf-hdfs-connector: Could not resolve dependencies for
>> > > project org.apache.manifoldcf:mcf-hdfs-connector:jar:2.26: The
>> following
>> > > artifacts could not be resolved: jdk.tools:jdk.tools:jar:1.6: Could
>> not
>> > > find artifact jdk.tools:jdk.tools:jar:1.6 at specified path
>> > > /opt/java/openjdk/../lib/tools.jar
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>> > > (LifecycleDependencyResolver.java:243)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>> > > (LifecycleDependencyResolver.java:136)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>> > > (MojoExecutor.java:355)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
>> > > (MojoExecutor.java:313)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:212)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:174)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
>> > > (MojoExecutor.java:75)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
>> > > (MojoExecutor.java:162)
>> > >     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
>> > > (DefaultMojosExecutionStrategy.java:39)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:159)
>> > >     at
>> > >
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> > > (LifecycleModuleBuilder.java:105)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>> > > (MultiThreadedBuilder.java:193)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>> > > (MultiThreadedBuilder.java:180)
>> > >     at java.util.concurrent.FutureTask.run (FutureTask.java:264)
>> > >     at java.util.concurrent.Executors$RunnableAdapter.call
>> > > (Executors.java:515)
>> > >     at java.util.concurrent.FutureTask.run (FutureTask.java:264)
>> > >     at java.util.concurrent.ThreadPoolExecutor.runWorker
>> > > (ThreadPoolExecutor.java:1128)
>> > >     at java.util.concurrent.ThreadPoolExecutor$Worker.run
>> > > (ThreadPoolExecutor.java:628)
>> > >     at java.lang.Thread.run (Thread.java:829)
>> > > . . .
>> > > Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException:
>> Could
>> > > not find artifact jdk.tools:jdk.tools:jar:1.6 at specified path
>> > > /opt/java/openjdk/../lib/tools.jar
>> > >     at
>> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve
>> > > (DefaultArtifactResolver.java:305)
>> > >     at
>> > >
>> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts
>> > > (DefaultArtifactResolver.java:261)
>> > >     at
>> > >
>> >
>> org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies
>> > > (DefaultRepositorySystem.java:353)
>> > >     at
>> > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve
>> > > (DefaultProjectDependenciesResolver.java:182)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
>> > > (LifecycleDependencyResolver.java:224)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
>> > > (LifecycleDependencyResolver.java:136)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
>> > > (MojoExecutor.java:355)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
>> > > (MojoExecutor.java:313)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:212)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:174)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
>> > > (MojoExecutor.java:75)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
>> > > (MojoExecutor.java:162)
>> > >     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
>> > > (DefaultMojosExecutionStrategy.java:39)
>> > >     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> > > (MojoExecutor.java:159)
>> > >     at
>> > >
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> > > (LifecycleModuleBuilder.java:105)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>> > > (MultiThreadedBuilder.java:193)
>> > >     at
>> > >
>> >
>> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>> > > (MultiThreadedBuilder.java:180)
>> > >     at java.util.concurrent.FutureTask.run (FutureTask.java:264)
>> > >     at java.util.concurrent.Executors$RunnableAdapter.call
>> > > (Executors.java:515)
>> > >     at java.util.concurrent.FutureTask.run (FutureTask.java:264)
>> > >     at java.util.concurrent.ThreadPoolExecutor.runWorker
>> > > (ThreadPoolExecutor.java:1128)
>> > >     at java.util.concurrent.ThreadPoolExecutor$Worker.run
>> > > (ThreadPoolExecutor.java:628)
>> > >     at java.lang.Thread.run (Thread.java:829)
>> > >
>> > > Trying to use the latest version of Hadoop 3.3.6, reverting to the
>> > > original run.sh file, it solves this issue.
>> > > I would like to use the updated version because even if we found a
>> way to
>> > > exclude this old dependency it sounds strange to use very old
>> libraries
>> > > requiring jdk 1.6.
>> > > I'll create a specific ticket for this in order to discuss if it is
>> > > possible to update to the latest version without any issues.
>> > >
>> > > Please let me know what you think.
>> > > Thanks.
>> > >
>> > > Cheers,
>> > > PG
>> > >
>> > > --
>> > > Piergiorgio
>> > >
>> >
>> >
>> > --
>> > Piergiorgio
>> >
>>
>
>
> --
> Piergiorgio
>


-- 
Piergiorgio

Reply via email to