- Dependencies not defined using fs-configurations like
fsModuleCompile
will no longer be placed in thelib
directory. This results in smaller FSM files without any side effects since those files were not visible to the classloader anyway. - If a project specifies multiple versions of the same library, this will now result in a build error pointing out that only a single version is going to be included in the FSM. In case your build fails with an error message like below, please check the dependency tree of your project to ensure consistent versions.
* What went wrong:
Execution failed for task ':validateDescriptor'.
> File 'lib/commons-io-2.10.0.jar' specified for resource 'commons-io:commons-io' in component of
type 'web-app' with name 'custom-webapp' but is not found in the FSM. However, the different
version 'lib/commons-io-2.7.jar' was found. Please check your project for inconsistent dependency versions.
- When packaging an FSM file, only
fsm-resources
of the current project and its dependencies will be included. Previously, all subprojects of the root project had been evaluated in this step. Please verify the contents of your module after upgrading.
- The FSM task will no longer be added to the default publications automatically. In order to publish the FSM, add a configuration block like
publishing {
publications {
create<MavenPublication>("mavenJava") {
artifact(tasks.assembleFSM)
artifactId = "my-module-name"
}
}
}
- Resources defined with the
@Resource
annotation now usecom.espirit.moddev.components.annotations.params.resource.Scope
instead ofde.espirit.firstspirit.server.module.ModuleInfo.Scope
. - The
@WebResource
annotation no longer defines a scope because it is not necessary.
With version 4.0.0, support for legacy modules has been dropped. Additionally, some deprecated features were removed.
Since the "legacy mode" of FirstSpirit has been dropped with 2022-03 and the "isolation mode" being the default for new installations for some time now, legacy modules can no longer be created with this plug-in. For most users creating "hybrid" modules until now, a few changes need to be made during the upgrade:
- When using a custom template for the module descriptor, it has to be named
module-isolated.xml
. If there is also amodule.xml
, this has to be deleted. - The
resourceMode
of thefirstSpiritModule
extension is no longer available. - Annotating a class with
@Resource
or@WebResource
does not support themode
attribute anymore. - When specifying a dependency with a configuration like
fsModuleCompile
, theskipInLegacy
attribute is no longer evaluated.
The annotations dependency is added automatically added but may also be defined in subprojects. Please ensure using at least version 2.0.0.
Since version 3.0.2, the configurations fsProvidedCompile
and fsProvidedRuntime
were marked as deprecated
and are now removed entirely. When upgrading older modules, replace both of them with compileOnly
.
In FirstSpirit 2021-08 the GadgetComponent
API has changed. After upgrading this plugin to 4.0.0 or later, only
the new version of the API will be supported. If you still need support for detecting older GadgetComponents,
you have to stick with version 3.x.x of this plug-in until your FirstSpirit libraries can be upgraded.
Building modules with JDK 8 is no longer supported, the new minimum version is 11.