Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You have an existing AEM application which is based on wcm.io Configuration 0.x, and you want to migration to Apache Sling Context-Aware Configuration. Maybe you are also using wcm.io Handler 0.x which is also based on wcm.io Configuration 0.x.

...

Remove these bundles from you your deployment:

  • io.wcm:io.wcm.config.api
  • io.wcm:io.wcm.config.core
  • io.wcm:io.wcm.config.editor

And instead deploy these bundles:

  • io.wcm:io.wcm.caconfig.applicationio.wcm:io.wcm.caconfig.compat
  • io.wcm:io.wcm.caconfig.editor

Existing OSGi configurations for wcm.io Configuration 0.x should work in the same way in the compatibility Layer, the PIDs are unchanged. For configuration persistence, only io.wcm.config.core.persistence.impl.ToolsConfigPagePersistenceProvider is supported, which still has to be enabled explicitly.

...

  • io.wcm:io.wcm.testing.wcm-io-mock.caconfigio.wcm:io.wcm.testing.wcm-io-mock.caconfig-compat
  • org.apache.sling:org.apache.sling.testing.caconfig-mock-plugin

...

And instead use the new Mock context plugins like this:

Code Block
java
java
import static io.wcm.testing.mock.wcmio.caconfig.compat.ContextPlugins.WCMIO_CACONFIG_COMPAT;
import static io.wcm.testing.mock.wcmio.handler.ContextPlugins.WCMIO_HANDLER;
import static io.wcm.testing.mock.wcmio.sling.ContextPlugins.WCMIO_SLING;
import static org.apache.sling.testing.mock.caconfig.ContextPlugins.CACONFIG;

@Rule
public AemContext = new AemContextBuilder()
        .plugin(CACONFIG)
        .plugin(WCMIO_SLING, WCMIO_CACONFIG, WCMIO_CACONFIG_COMPAT, WCMIO_HANDLER)
        .build();

If your are not using wcm.io Handler you can remove WCMIO_SLING and WCMIO_HANDLER.

Disable the configuration editor on publish:

No Format
[configurations runModes=publish]
  
  # Disable Configuration Editor on publish
  io.wcm.caconfig.editor.impl.EditorConfig
    enabled=B"false"

Scenario B: Drop-in replacement via Compatibility Layer and update to new APIs

Do the same steps as in Scenario A, but additionally you should update your code:

...

.

If you want to use the new Configuration Annotation Class Feature as described in Apache Sling Context-Aware Configuration you can do this and remove your wcm.io Configuration Parameters Definitions instead. You then use directly the Sling Context-Aware Configuration API to read the configuration data. Within Sightly templates you have to switch the syntax to access the configuration as well as described in the Sling Context-Aware documentation. The configuration of your parameters are then stored in /conf and no longer in ./tools/config pages. Only the configuration parameters provided by wcm.io Handler still use the compatibility layer. In the configuration editor you can edit both.

You may use the wcm.io Context-Aware Configuration Extensions for AEM to configure additional context path strategies or persistence strategies for the configuration data that is read and written directly through the Sling Context-Aware Configuration API.

Scenario C: Full Migration including upgrade to wcm.io Handler 1.x

TBDSee Migrate from wcm.io Handler 0.x to 1.x


Filter by label (Content by label)
showLabelsfalse
max5
spacesWCMIO
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("config","configuration","migration") and type = "page" and space = "WCMIO"
labelsconfig configuration

...