groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Jouvin (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GROOVY-8227) Allow to specify Groovysh (and GroovyShell) class loader different from TCCL
Date Mon, 12 Jun 2017 14:12:00 GMT
Denis Jouvin created GROOVY-8227:
------------------------------------

             Summary: Allow to specify Groovysh (and GroovyShell) class loader different from
TCCL
                 Key: GROOVY-8227
                 URL: https://issues.apache.org/jira/browse/GROOVY-8227
             Project: Groovy
          Issue Type: Bug
          Components: groovy-runtime, Groovysh
    Affects Versions: 2.4.x, 2.5.x
         Environment: OSGi (Karaf 2.x, 3.X or 4.x)
            Reporter: Denis Jouvin
             Fix For: 2.4.x, 2.5.x


Allthough the Groovy API seem to allow one to specify the class loader when instanciating
a Groovysh or GroovyShell, internally in some places Groovy will silently use the TCCL (thread
context class loader) and there is no way to avoid that without hacking Groovy and chasing
all the places where {code:java}getThreadContextClassLoader(){code} is used.

This is problematic, especially in OSGi environement, since the TCCL is not compatible with
OSGi principles (i.e. every bundle has its own class loader), and also with some modern modular
containers similar to OSGi. When a class loader is specified in the GroovyShell or Groovysh
creation, Groovy should propagate that class loader correctly (or instanciate children class
loader of that specified class loader), and in no way use the TCCL.

This may be a dupplicate of [Groovy 4895|https://issues.apache.org/jira/browse/GROOVY-4895]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message