[ 
https://issues.apache.org/jira/browse/GROOVY-11578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17932320#comment-17932320
 ] 

Paul King commented on GROOVY-11578:
------------------------------------

I also added an additional test to my Karaf spike (tests that the 
groovy-datetime module is working, it's not a service but extension methods 
could disappear if there were classloader issues with that module):
{code:java}
    @Test
    public void testExecGroovyDateTimeCommand() throws Exception {
        String resultNoArgs = executeCommand("groovy:exec \""
                + "import java.time.LocalTime\n"
                + "println LocalTime.of(23, 59).format('HH:mm')\"");
        assertContains("23:59", resultNoArgs);
    }
{code}
It and the other Groovy tests pass with spifly reverted back to 1.2.4. 
Reverting the version is obviously a workaround.

> Services loaded via the service loader not working in (some) OSGi contexts 
> for Groovy 4+
> ----------------------------------------------------------------------------------------
>
>                 Key: GROOVY-11578
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11578
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 4.0.26
>            Reporter: Paul King
>            Assignee: Paul King
>            Priority: Major
>         Attachments: groovy-json-example.zip
>
>
> This is related to GROOVY-11570 and GROOVY-11571 but it seems worthwhile 
> having an issue that is just about getting the services working again.
> Current steps to reproduce:
> * clone the apache/karaf repo
> * change groovy versions: codehaus=>apache, 3.0.24=>4.0.26
> * add an additional test to GroovyTest (see below) to exercise service loader 
> related functionality
> * run "mvn test" in the itests directory
> Additional test:
> {code}
> @Test
> public void testExecGroovyJsonCommand() throws Exception {
>     String resultNoArgs = executeCommand("groovy:exec \""
>             + "import org.apache.groovy.json.internal.FastStringUtils\n"
>             + "println FastStringUtils.toCharArray('result') == 
> 'result'.toCharArray()\"");
>     assertContains("true", resultNoArgs);
> }
> {code}
> Result:
> {noformat}
> <system-err><![CDATA[groovy:exec "import 
> org.apache.groovy.json.internal.FastStringUtils
> println FastStringUtils.toCharArray('result') == 'result'.toCharArray()"
> java.lang.RuntimeException: Unable to load FastStringService
>       at 
> org.apache.karaf.itests.KarafTestSupport.executeCommand(KarafTestSupport.java:444)
>       at 
> org.apache.karaf.itests.KarafTestSupport.executeCommand(KarafTestSupport.java:358)
>       at 
> org.apache.karaf.itests.KarafTestSupport.executeCommand(KarafTestSupport.java:345)
>       at 
> org.apache.karaf.itests.GroovyTest.testExecGroovyJsonCommand(GroovyTest.java:54)
>         ...
>       at 
> org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:43)
>         ...
> Caused by: java.lang.RuntimeException: Unable to load FastStringService
>       at 
> org.apache.groovy.json.internal.FastStringUtils.getService(FastStringUtils.java:56)
>         ...
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to