Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Adobe Summit 2023 [19th to 23rd March, Las Vegas and Virtual] | Complete AEM Session & Lab list
SOLVED

Using plain groovy console in vault-upgrade-hook - missing requirement [groovy-json [551](R 551.0)] osgi.extender; (osgi.extender=osgi.serviceloader.registrar)

Avatar

Level 2

Hi, I am trying to use vault upgrade hook with plain groovy (not groovy console) to work with latest AEM as a Cloud Service instance (local setup, I know that this will not work on AMS isntance at the moment due to issue with FileVault, for more see this link)

 

As I read to do so I need to install Apache Sling Scripting Groovy and all it's dependencies:

 

// https://mvnrepository.com/artifact/org.apache.sling/org.apache.sling.scripting.groovy/1.2.0
<dependency>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.scripting.groovy</artifactId>
    <version>1.2.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy -->
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>3.0.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-json -->
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-json</artifactId>
    <version>3.0.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-templates -->
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-templates</artifactId>
    <version>3.0.1</version>
</dependency>

 

Unfortunately when I install json bundle I got the following error:

org.apache.felix.log.LogException: org.osgi.framework.BundleException: Unable to resolve groovy-json [551](R 551.0): missing requirement [groovy-json [551](R 551.0)] osgi.extender; (osgi.extender=osgi.serviceloader.registrar) Unresolved requirements: [[groovy-json [551](R 551.0)] osgi.extender; (osgi.extender=osgi.serviceloader.registrar)]

 

 

Do you have an idea what might be missing here ? Thanks for your help 🙂 

1 Accepted Solution

Avatar

Correct answer by
Level 2

I found a blog post https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html that addresses the issue I had below. To fix that I added the following bundles to the instance: 

 

            <!-- Dependencies needed to run Vault upgrade hook with plain groovy -->
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.scripting.groovy</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-templates</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-json</artifactId>
                <version>3.0.1</version>
            </dependency>
            <!-- Dependencies below needed because of issue wth groovy-json bundle -->
            <!-- https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html -->
            <dependency>
                <groupId>org.apache.aries.spifly</groupId>
                <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
                <version>1.3.3</version>
            </dependency>
            <!-- Dependencies below needs to be provided for org.apache.aries.spifly.dynamic.bundle-->
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-analysis</artifactId>
                <version>9.1</version>
            </dependency>

Installing those bundles fixed the issue - now all required bundles are active and I groovy script is executed once package with upgrade hook is installed. I am not sure whether this is the right way to go though - adding so many dependencies to make this work seems wrong 🙂  

View solution in original post

0 Replies

Avatar

Correct answer by
Level 2

I found a blog post https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html that addresses the issue I had below. To fix that I added the following bundles to the instance: 

 

            <!-- Dependencies needed to run Vault upgrade hook with plain groovy -->
            <dependency>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.scripting.groovy</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-templates</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-json</artifactId>
                <version>3.0.1</version>
            </dependency>
            <!-- Dependencies below needed because of issue wth groovy-json bundle -->
            <!-- https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html -->
            <dependency>
                <groupId>org.apache.aries.spifly</groupId>
                <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
                <version>1.3.3</version>
            </dependency>
            <!-- Dependencies below needs to be provided for org.apache.aries.spifly.dynamic.bundle-->
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>9.1</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-analysis</artifactId>
                <version>9.1</version>
            </dependency>

Installing those bundles fixed the issue - now all required bundles are active and I groovy script is executed once package with upgrade hook is installed. I am not sure whether this is the right way to go though - adding so many dependencies to make this work seems wrong 🙂  

Avatar

Administrator
@bartek__w, thank you for sharing the answer with community. This would help in posterity. Looking forward for more contribution form you.

Avatar

Level 2
Also using groovy-all package can help here, then issue with groovy-json is not showing. The only problem is to find proper version 🙂