| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| == Update Notes (from Karaf 3.x to 4.x versions) |
| |
| This section is dedicated to users of previous Apache Karaf version. |
| |
| [NOTE] |
| ==== |
| For the users upgrading from Karaf 2.x, please see the "Update Notes (from 2.x to 3.x)" in the Karaf 3.x |
| documentation first. |
| ==== |
| |
| [NOTE] |
| ==== |
| Karaf 4.x supports Java8. |
| ==== |
| |
| === Distributions |
| |
| Apache Karaf 4.x is available as tar.gz and zip archives. The content is the same and works on either Unix or Windows |
| platforms. |
| The `bin` folder contains both sh and bat scripts. |
| |
| === Commands |
| |
| Karaf 4 commands are close to the ones provided in Karaf 3. |
| |
| The sub-shell modes are the same (in `etc/org.apache.karaf.shell.cfg` or using `shell:completion` command). |
| |
| However, some minor changes have been introduced and new commands available: |
| |
| |=== |
| |Apache Karaf 4.x |
| |
| |feature:requirement-list |
| |
| |feature:requirement-add |
| |
| |feature:requirement-remove |
| |
| |feature:regions |
| |
| |feature:start |
| |
| |feature:stop |
| |
| |jaas:group-create |
| |
| |jaas:group-add |
| |
| |jaas:group-delete |
| |
| |jaas:group-list |
| |
| |jaas:group-role-add |
| |
| |jaas:group-role-delete |
| |
| |jaas:su |
| |
| |jaas:sudo |
| |
| |shell:edit |
| |
| |shell:env |
| |
| |shell:less |
| |
| |shell:stack-traces-print |
| |
| |shell:threads |
| |
| |shell:while |
| |
| |log:list |
| |
| |bundle:capabilities |
| |
| |bundle:diag |
| |
| |bundle:id |
| |
| |bundle:load-test |
| |
| |bundle:requirements |
| |
| |bundle:resolve |
| |
| |system:name |
| |=== |
| |
| We encourage the users to use the `--help` option to check the name and type of arguments and options. |
| |
| In term of development, you can still use the blueprint definition as you do in Karaf 2.x & 3.x (with the corresponding annotations). |
| |
| However, in Karaf 4.x, you can use DS and new annotations and avoid the usage of a blueprint XML. |
| |
| The new annotations are available: @Service, @Completion, @Parsing, @Reference. It allows you to complete define the command |
| in the command class directly. |
| |
| To simplify the generation of the code and OSGi headers, Karaf 4.x provides the karaf-services-maven-plugin (in org.apache.karaf.tooling Maven groupId). |
| |
| Take a look in the developer guide for the command development "new style" details. |
| |
| === Features repositories |
| |
| Karaf 4.x provides: |
| |
| * `mvn:org.apache.karaf.features/enterprise/4.0.x/xml/features` |
| * `mvn:org.apache.karaf.features/framework/4.0.x/xml/features` |
| * `mvn:org.apache.karaf.features/spring/4.0.x/xml/features` |
| * `mvn:org.apache.karaf.features/standard/4.0.x/xml/features` |
| * `mvn:org.apache.karaf.features/static/4.0.x/xml/features` |
| |
| === Features resolver |
| |
| Apache Karaf 4.x brings a complete new feature resolver. The purpose is to simplify the features installation and |
| lifecycle. |
| The new resolver now checks the feature requirements (defined directly in the features XML), and check which bundles |
| provides the capabilities to satisfy these requirements. |
| It allows Karaf to automatically install bundles required by features. |
| |
| For "old style" feature (features XML using namespace from Karaf 2.x or 3.x), this feature is not enabled. |
| As soon as you use a "new style" feature (with namespace 1.3.0 used by Karaf 4.x), this feature is enabled. |
| |
| === Namespaces |
| |
| Apache Karaf 4.x brings updated version of the namespaces: |
| |
| * Supported features namespaces: |
| ** `karaf-features-1.0.0.xsd` |
| ** `karaf-features-1.1.0.xsd` |
| ** `karaf-features-1.2.0.xsd` |
| ** `karaf-features-1.2.1.xsd` |
| ** `karaf-features-1.3.0.xsd` |
| * Supported jaas namespaces: |
| ** `karaf-jaas-1.0.0.xsd` |
| ** `karaf-jaas-1.1.0.xsd` |
| * Supported shell namespaces: |
| ** `karaf-shell-1.0.0.xsd` |
| ** `karaf-shell-1.1.0.xsd` |
| |
| === Maven plugin |
| |
| A cleanup of the goals provided by {{karaf-maven-plugin}} has been done. |
| |
| Now the provided goals are: |
| |
| * `karaf:archive` to create a tar.gz or zip of a Karaf distribution |
| * `karaf:assembly` to create a custom Karaf distribution assembly |
| * `karaf:kar` to create a kar file |
| * `karaf:verify` to verify and validate Karaf features |
| * `karaf:features-add-to-repository` to recursively copy features XML and content into a folder (repository) |
| * `karaf:features-export-meta-data` to extract the metadata from a features XML |
| * `karaf:features-generate-descriptor` to generate a features XML |
| * `karaf:commands-generate-help` to generate help/documentation on the commands |
| * `karaf:run` to run a Karaf container directly from Maven |
| * `karaf:client` to interact with a remote Karaf instance |
| * `karaf:deploy` to deploy an application to a remote Karaf instance |
| |
| === Update guide |
| |
| We encourage users to start a fresh Apache Karaf 4.x container. |
| |
| If you upgrade an existing container, `lib` and `system` folder have to be updated (just an override copy). |
| |
| For the `etc` folder, a diff is required as some properties changed and new configurations are available. |