Hi Gunnar,

A question for you about Hibernate accessing non-exported types, in connection with your fascinating blog entry http://in.relation.to/2016/06/17/bean-validation-and-the-jigsaw-liaison/

The user module com.example.acme 'provides' a secret implementation of javax.validation.ConstraintValidator. The RI module org.hibernate.validator.engine 'uses' ConstraintValidator. Great -- until code in the RI module tries to instantiate the secret implementation class directly, and gets an IAE. Why isn't the RI module letting ServiceLoader instantiate custom constraint validators on its behalf?

(Earlier, the API module javax.validation was happy to have ServiceLoader instantiate validation providers on its behalf.)

Alex

On 6/15/2016 3:24 AM, Gunnar Morling wrote:
Hi,

When referring to a not-exported type from another module, I'm getting this
rather generic compilation error:

     package someprivate.pakkage does not exist
import someprivate.pakkage.SomeType;
                                               ^
     error: cannot find symbol SomeType

As if the type was not existing at all. As per this blog post [1], a more
specific error used to be raised in previous EA builds:

     error: SomeType is not visible because
     package someprivate.pakkage is not visible

I found that previous error more helpful, as it gives an indication of what
to do in order to prevent it. Has this been changed intentionally? Or am I
doing something wrong here?

Thanks,

--Gunnar

[1]
https://blog.codecentric.de/en/2015/11/first-steps-with-java9-jigsaw-part-1/

Reply via email to