Expand my Community achievements bar.

SOLVED

How are bundles numbered in AEM?

Avatar

Level 6

Hi,

How are bundle numbers created?

I have two instances of AEM 6.5 installed in two machines. A bundle (say 450) is present in instance A but not in instance B. One suggestion is to get a copy of the missing bundle from A and install it in B. The instance B already has a different bundle with the same number 450. Will this overwrite the existing bundle in B? I cannot change the bundle internally by re-bundling it with an unique number. This is not an option for me. Is it safe to rename the bundle number from the file system in the launchpad/felix folder? 

Are there any other suggest to resolve it.

Thanks

1 Accepted Solution

Avatar

Correct answer by
Employee

Hi @aemuser001,

In OSGi, the bundles are identified by their symbolic name and version, not by a numeric identifier like "450". The number you refer to might be the bundle ID, which is assigned by the OSGi framework at runtime and can differ between instances. The bundle ID is a runtime identifier and is not meant to be static or used for identifying bundles across different environments. The symbolic name and version are the key identifiers that should be used to differentiate bundles.


If you try to install a bundle with the same symbolic name and version as an existing bundle in another instance, it will typically overwrite the existing bundle. The numeric ID (like "450") is not a factor in this process. It will only override the bundle with the same symbolic name and version.

Renaming the bundle file in the launchpad/felix directory is not recommended. This directory is managed by the OSGi framework, and manual changes can lead to inconsistencies or issues during runtime. The safest approach to resolving the issue is to manage bundles by their symbolic name and version. Avoid relying on the numeric bundle ID for deployment, and refrain from manually altering files in the launchpad/felix directory.

Thanks
Pranay

View solution in original post

4 Replies

Avatar

Correct answer by
Employee

Hi @aemuser001,

In OSGi, the bundles are identified by their symbolic name and version, not by a numeric identifier like "450". The number you refer to might be the bundle ID, which is assigned by the OSGi framework at runtime and can differ between instances. The bundle ID is a runtime identifier and is not meant to be static or used for identifying bundles across different environments. The symbolic name and version are the key identifiers that should be used to differentiate bundles.


If you try to install a bundle with the same symbolic name and version as an existing bundle in another instance, it will typically overwrite the existing bundle. The numeric ID (like "450") is not a factor in this process. It will only override the bundle with the same symbolic name and version.

Renaming the bundle file in the launchpad/felix directory is not recommended. This directory is managed by the OSGi framework, and manual changes can lead to inconsistencies or issues during runtime. The safest approach to resolving the issue is to manage bundles by their symbolic name and version. Avoid relying on the numeric bundle ID for deployment, and refrain from manually altering files in the launchpad/felix directory.

Thanks
Pranay

Avatar

Level 6

Hi Pranay,

Thanks for the explanation. How can I identify the symbolic name and version of the bundle? From where in the AEM instance can I read and identify the bundle name, to make sure an existing bundle is not overwritten.

Thanks,

Leena

Avatar

Employee

Hi Leena,


To view the bundle information you can navigate to the URL[0] and click on the bundle for which you want to see the definition.

Pranaym_0-1736256778812.png

[0] http://localhost:4502/system/console/bundles

Thanks
Pranay

Avatar

Level 6

Thank you, this information is very helpful, Pranay. This can be marked as resolved.