Upgrading Arconia
Arconia is currently in active development. We’re working hard to improve it and appreciate your patience as we continue to refine the tool.
We’re moving fast, and the APIs may change frequently, but we’re committed to keeping the documentation up to date and making it easy to upgrade to the latest version.
We maintain an OpenRewrite recipe to help you upgrade your projects to the latest version of Arconia automatically. You can run it with the Arconia CLI, Gradle, or Maven as documented in the Automated Upgrade section below.
If you’d rather upgrade manually, you can follow the instructions in the Manual Upgrade section.
Furthermore, make sure you check the What’s New in Arconia page for the latest features and enhancements and the release notes.
Automated Upgrade
Arconia CLI
Using the Arconia CLI, you can upgrade your project to the latest version of Arconia:
arconia update framework
Optionally, you can provide the --to-version
flag to specify the version you want to upgrade to:
arconia update framework --to-version 0.14
Gradle OpenRewrite Plugin
Using the OpenRewrite Gradle Plugin, you can apply the recipe to your project as follows.
First, create an init.gradle
file in your Spring Boot project (root folder) with the following content:
initscript {
repositories {
maven { url "https://plugins.gradle.org/m2" }
}
dependencies {
classpath("org.openrewrite:plugin:latest.release")
}
}
rootProject {
plugins.apply(org.openrewrite.gradle.RewritePlugin)
dependencies {
rewrite("io.arconia.migrations:rewrite-arconia:latest.release")
}
afterEvaluate {
if (repositories.isEmpty()) {
repositories {
mavenCentral()
}
}
}
}
Then, run the following command:
./gradlew rewriteRun \
--init-script init.gradle \
-DactiveRecipe=io.arconia.rewrite.UpgradeArconia_0_14
Finally, you can remove the init.gradle
file.
Maven OpenRewrite Plugin
Using the OpenRewrite Maven Plugin, you can apply the recipe to your project as follows:
./mvnw -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=io.arconia.migrations:rewrite-arconia:LATEST \
-Drewrite.activeRecipes=io.arconia.rewrite.UpgradeArconia_0_14
Manual Upgrade
Dev Services
-
The
arconia-dev-services-connections
module has been removed and its content moved to thearconia-opentelemetry
module. As part of this change, the classes contained in theio.arconia.dev.services.connections
package have been moved to theio.arconia.opentelemetry.testcontainers
package. -
The
MariaDBDevServicesAutoConfiguration
class has been renamed toMariaDbDevServicesAutoConfiguration
to match the Arconia naming conventions. -
The
RabbitMQDevServicesAutoConfiguration
class has been renamed toRabbitMqDevServicesAutoConfiguration
to match the Arconia naming conventions.
Multitenancy
-
The
arconia-multitenancy-spring-boot-autoconfigure
module has been removed and its content moved to thearconia-multitenancy-core
andarconia-multitenancy-web
modules. As part of this change, the classes contained in theio.arconia.multitenancy.autoconfigure.core
package have been moved to theio.arconia.multitenancy.core.autoconfigure
package whereas the classes contained in theio.arconia.multitenancy.autoconfigure.web
package have been moved to theio.arconia.multitenancy.web.autoconfigure
package.
OpenTelemetry
-
The
arconia-opentelemetry-sdk-spring-boot-autoconfigure
module has been removed and its content moved to thearconia-opentelemetry
module. As part of this change, the classes contained in theio.arconia.opentelemetry.autoconfigure.sdk
package have been moved to theio.arconia.opentelemetry.autoconfigure
package.
Resource
-
The
arconia-opentelemetry-sdk-spring-boot-autoconfigure
module (now removed) provided additionalResourceContributor
beans that contributed the experimentalcontainer.id
andhost.id
attributes to the OpenTelemetry Resource. The experimental attributes have been removed as well as the related auto-configuration classes and configuration properties (arconia.otel.instrumentation.resource.*
). You can restore the previous behaviour by including theio.opentelemetry.instrumentation:opentelemetry-resources
dependency in your project and defining customResourceContributor
beans populating these attributes from theContainerResource
andHostIdResource
classes (in theio.opentelemetry.instrumentation.resources
package).
Bridges
-
The
arconia-opentelemetry-instrumentation-spring-boot-autoconfigure
module has been removed. The Logback OpenTelemetry Bridge instrumentation is now included in thearconia-opentelemetry-logback-bridge
module whereas the Micrometer Metrics OpenTelemetry Bridge instrumentation is now included in thearconia-opentelemetry-micrometer-metrics-bridge
modules. As part of this change, the logic contained in theio.arconia.opentelemetry.autoconfigure.instrumentation.logback
package has been moved to theio.arconia.opentelemetry.logback.autoconfigure
package whereas the logic contained in theio.arconia.opentelemetry.autoconfigure.instrumentation.micrometer
package has been moved to theio.arconia.opentelemetry.micrometer.metrics.autoconfigure
package. -
The configuration properties for the Logback OpenTelemetry Bridge have been moved from the
arconia.otel.instrumentation.logback-appender
group to thearconia.otel.logs.logback-bridge
group. -
The configuration properties for the Micrometer Metrics OpenTelemetry Bridge have been moved from the
arconia.otel.instrumentation.micrometer
group to thearconia.otel.metrics.micrometer-bridge
group.
Logs
-
The
arconia.otel.logs.logs-limits
configuration property group has been renamed toarconia.otel.logs.limits
.
Metrics
-
The
arconia.otel.metrics.exemplar-filter
configuration property has been renamed toarconia.otel.metrics.exemplars.filter
. -
The
arconia.otel.metrics.interval
configuration property has been renamed toarconia.otel.metrics.exporter.interval
.
Traces
-
The
arconia.otel.traces.span-limits
configuration property has been renamed toarconia.otel.traces.limits
.
Compatibility
-
Support for the OpenTelemetry Environment Variable Specification has been improved. As part of this process, support of the special/experimental properties used by the OpenTelemetry Spring Boot Starter on top of the standard environment variables has been removed.
-
Support for the Spring Boot OTLP/Actuator configuration properties (which could previously be enabled by setting the
arconia.otel.compatibility.actuator
property) has been removed. In its place, an automated migration recipe is available to help you migrate to the Arconia OpenTelemetry configuration properties. See the dedicated migration guide for more details.