← All tasks
javakubernetes-client/java #1615Repaired task

Instructions for Examples lead to java.lang.ClassNotFoundException: io.kubernetes.client.examples.xxxExample

envgap__kubernetes-client__java-1615

01 / FAILURE SIGNATURE

Captured in a clean container

[ERROR] Failed to execute goal on project client-java-examples-release-12: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-12:jar:12.0.1-SNAPSHOT: The following artifacts could not be resolved: io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT, io.kubernetes:client-java-prometheus-operator-models:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT -> [Help 1]

02 / ENVIRONMENT RECIPE

Base commit
f58be100d49d8739317d575f393ae28b81a1b361
Manifest
examples/examples-release-12/pom.xml
Reproduce
mvn -B -q -f examples/examples-release-12/pom.xml -Dgpg.skip -Dmaven.javadoc.skip=true -Dcheckstyle.skip -DskipTests package
Run under trace
mvn -B -q -f examples/examples-release-12/pom.xml -Dgpg.skip -Dmaven.javadoc.skip=true -Dcheckstyle.skip -DskipTests package
Reference environment fix used for admission
diff --git a/examples/examples-release-11/README.md b/examples/examples-release-11/README.md
index 19ac61196..914bb9cd6 100644
--- a/examples/examples-release-11/README.md
+++ b/examples/examples-release-11/README.md
@@ -3,11 +3,11 @@
 ```sh
 export REPO_ROOT=/path/to/client-java/repo
 
-cd ${REPO_ROOT}/kubernetes
+cd ${REPO_ROOT}/
 mvn install
 
-cd ${REPO_ROOT}/examples
-mvn package
+cd ${REPO_ROOT}/examples/examples-10
+mvn compile
 mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"
 ```
 
diff --git a/examples/examples-release-12/README.md b/examples/examples-release-12/README.md
index 19ac61196..64ad8b80f 100644
--- a/examples/examples-release-12/README.md
+++ b/examples/examples-release-12/README.md
@@ -3,11 +3,11 @@
 ```sh
 export REPO_ROOT=/path/to/client-java/repo
 
-cd ${REPO_ROOT}/kubernetes
+cd ${REPO_ROOT}/
 mvn install
 
-cd ${REPO_ROOT}/examples
-mvn package
+cd ${REPO_ROOT}/examples/examples-12
+mvn compile
 mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"
 ```
 
diff --git a/examples/examples-release-12/pom.xml b/examples/examples-release-12/pom.xml
index 318e771de..ff2e5dff4 100644
--- a/examples/examples-release-12/pom.xml
+++ b/examples/examples-release-12/pom.xml
@@ -12,8 +12,8 @@
 	<name>client-java-examples-release-12</name>
 
 	<properties>
-		<kubernetes.prometheus.version>12.0.1-SNAPSHOT</kubernetes.prometheus.version>
-		<kubernetes.cert-manager.version>12.0.1-SNAPSHOT</kubernetes.cert-manager.version>
+		<kubernetes.prometheus.version>10.0.1</kubernetes.prometheus.version>
+		<kubernetes.cert-manager.version>10.0.1</kubernetes.cert-manager.version>
 	</properties>
 
 	<dependencies>
diff --git a/examples/examples-release-13/README.md b/examples/examples-release-13/README.md
index 19ac61196..98a3dee17 100644
--- a/examples/examples-release-13/README.md
+++ b/examples/examples-release-13/README.md
@@ -3,11 +3,11 @@
 ```sh
 export REPO_ROOT=/path/to/client-java/repo
 
-cd ${REPO_ROOT}/kubernetes
+cd ${REPO_ROOT}/
 mvn install
 
-cd ${REPO_ROOT}/examples
-mvn package
+cd ${REPO_ROOT}/examples/examples-13
+mvn compile
 mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"
 ```

03 / ORIGINAL ISSUE TEXT

kubernetes-client/java #1615 · read the original issue
**Describe the bug**

Instructions for Examples lead to java.lang.ClassNotFoundException: io.kubernetes.client.examples.xxxExample



The content of the Readme files

```

examples/examples-release-10

examples/examples-release-11

examples/examples-release-12

examples/examples-release-13

```

have all the same misleading content:

```

export REPO_ROOT=/path/to/client-java/repo



cd ${REPO_ROOT}/kubernetes

mvn install



cd ${REPO_ROOT}/examples

mvn package

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"

```



If you follow those instructions, then the `mvn exec` command will give you an error 

```

java.lang.ClassNotFoundException: io.kubernetes.client.examples.Example

```

Then I have tried to do the following:

```

cd examples-release-13

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"

```

Here, we get another error message:

```

[ERROR] Failed to execute goal on project client-java-examples-release-13: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-13:jar:12.0.1-SNAPSHOT: Failed to collect dependencies at io.kubernetes:client-java-api:jar:12.0.1-SNAPSHOT: Failed to read artifact descriptor for io.kubernetes:client-java-api:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-parent:pom:12.0.1-SNAPSHOT -> [Help 1]

```

Newbees have a hard time with those examples, I can tell. I was interested in the InClusterClientExample, and I found that none of the versions 11, 12 (12 this is the version the Readme of the main project points to) and 13 work. Only version 10 seems to work:

Version 13:

```

cd ${REPO_ROOT}/examples/examples-release-13

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.InClusterClientExample"

...

[ERROR] Failed to execute goal on project client-java-examples-release-13: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-13:jar:12.0.1-SNAPSHOT: Failed to collect dependencies at io.kubernetes:client-java-api:jar:12.0.1-SNAPSHOT: Failed to read artifact descriptor for io.kubernetes:client-java-api:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-parent:pom:12.0.1-SNAPSHOT -> [Help 1]

```

Version 12:

```

cd ${REPO_ROOT}/examples/examples-release-12

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.InClusterClientExample"

...

[ERROR] Failed to execute goal on project client-java-examples-release-12: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-12:jar:12.0.1-SNAPSHOT: The following artifacts could not be resolved: io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT, io.kubernetes:client-java-prometheus-operator-models:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT -> [Help 1]

```

Version 11 and Version 10 seem to work. They only have a problem with the permissions:

```

cd ${REPO_ROOT}/examples/examples-release-12

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.InClusterClientExample"

...

io.kubernetes.client.openapi.ApiException: Forbidden

```

However, IMHO, to make it easier for newbees, the example should describe how to prepare the environment including the service account and rbac, so the example works.



** Client Version **

master (99bab18)



** Kubernetes Version **

`1.14.1`



** Java Version **

Java 11.0.9.1



**To Reproduce**

See above



**Expected behavior**

When following the Example Readmes, we should receive a success.



**KubeConfig**

Not applicable



**Server (please complete the following information):**

 - OS: Linux CentOS 7

 - native



**Additional context**

Add any other context about the problem here.

Continue on GitHub ↗

04 / LABELS

Labels checked by running the task · needs human review

misspecificationunderspecification
Label rules and the text that matched
[
  {
    "category": "misspecification",
    "rule": "signature.unresolvable_declared_requirement",
    "source": "failure_signature",
    "excerpt": "[ERROR] Failed to execute goal on project client-java-examples-release-12: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-12:jar:12.0.1-SNAPSHOT: The following artifacts could not be resolved: io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT, io.kubernetes:client-java-prometheus-operator-models:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT -> [Help 1]"
  },
  {
    "category": "underspecification",
    "rule": "signature.missing_system_requirement",
    "source": "failure_signature",
    "excerpt": "[ERROR] Failed to execute goal on project client-java-examples-release-12: Could not resolve dependencies for project io.kubernetes:client-java-examples-release-12:jar:12.0.1-SNAPSHOT: The following artifacts could not be resolved: io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT, io.kubernetes:client-java-prometheus-operator-models:jar:12.0.1-SNAPSHOT: Could not find artifact io.kubernetes:client-java-cert-manager-models:jar:12.0.1-SNAPSHOT -> [Help 1]"
  },
  {
    "category": "misspecification",
    "rule": "diff.changes_existing_manifest_line",
    "source": "manifest_diff:examples/examples-release-12/pom.xml",
    "excerpt": "-\t\t<kubernetes.prometheus.version>12.0.1-SNAPSHOT</kubernetes.prometheus.version>\n-\t\t<kubernetes.cert-manager.version>12.0.1-SNAPSHOT</kubernetes.cert-manager.version>\n+\t\t<kubernetes.prometheus.version>10.0.1</kubernetes.prometheus.version>\n+\t\t<kubernetes.cert-manager.version>10.0.1</kubernetes.cert-manager.version>"
  }
]

Mined from a merged pull request linked to the issue whose changed files are all environment files.

The base commit is the pull request's base, not the dated default-branch commit; the registry is pinned to the merge date so the pull request's own pins resolve.

Default commands from envgap default-recipe synthesizer v1; gold_files are the pull request's environment diff.

Preparation uses current registries. Historical package availability is not enforced here; execution metadata records this limitation separately from the oracle's date-bounding policy.