Description
Describe the bug
It's currently not possible to implement the public interface org.jfrog.build.api.util.Log
. This is because the Log interface leaks an implementation class org.jfrog.filespecs.utils.Log
. In Gradle all classes and interfaces that come from a library used in a class or method signature should be declared as an api dependency.
Fix:
The build-info-api should explicitly declare org.jfrog.filespecs:file-specs-java
as an api
dependency here or else here
To Reproduce
With a new Gradle project create and compile the following class:
public class LogAdapter implements org.jfrog.build.api.util.Log {
// override methods
}
Compiler error:
error: cannot access org.jfrog.filespecs.utils.Log
public class LogAdapter implements org.jfrog.build.api.util.Log {
^
class file for org.jfrog.filespecs.utils.Log not found
Expected behavior
The org.jfrog.build.api.util.Log
interface can be implemented since it is in a public API
Versions
- org.jfrog.filespecs:file-specs-java:1.1.2
- org.jfrog.buildinfo:build-info-api:2.41.24
Additional context
The project must be using the Gradle module system (instead of maven pom files). This will happen automatically with newer versions of Gradle.
Activity