blob: 40356d57b87a500fcabcb003b094164d988aff3a [file] [log] [blame]
//
// 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.
//
==== EJB
This section describes how to add support of EJB in Apache Karaf. It doesn't describe how to develop EJB applications.
===== Apache OpenEJB
Apache Karaf doesn't provide "native" support of EJB (Enterprise Java Beans).
Apache OpenEJB provides EJB support for Apache Karaf by providing a set of features.
You have to update some Karaf configuration to have full OpenEJB support.
First, in the `etc/system.properties`, you have to append the following properties:
----
...
#
# OpenEJB scanner
#
openejb.deployments.classpath.exclude=bundle:*
openejb.deployments.classpath.filter.descriptors=true
----
Due to some OpenEJB version constraints, you also have to update the `etc/jre.properties` by changing the version of
the `javax.xml.namespace` package, and remove the version of the `javax.annotation` package (provided by Geronimo
Annotation API spec bundle, used by OpenEJB):
----
...
javax.annotation, \
javax.annotation.processing, \
...
javax.xml.namespace;version="1.0.0", \
...
----
It enables the OpenEJB bundles scanning, looking for EJBs.
After starting/restart Karaf to take these changes, we can install the OpenEJB feature:
----
karaf@root()> feature:repo-add openejb
----
By default, the `feature:repo-add openejb` command will install the latest OpenEJB version available.
You can specify a target version using the `version` argument:
----
karaf@root()> feature:repo-add openejb 4.5.2
----
Now, you have a set of new OpenEJB features available in your Apache Karaf container:
----
karaf@root()> la
...
openejb-core | 4.5.2 | | openejb-features |
openejb-server | 4.5.2 | | openejb-features |
openejb-cxf | 4.5.2 | | openejb-features |
openejb-rest | 4.5.2 | | openejb-features |
openejb-soap | 4.5.2 | | openejb-features |
----
You can add EJB support installing the `openejb-core` feature:
----
karaf@root()> feature:install openejb-core
----
===== Apache KarafEE
A custom distribution of Apache Karaf embedding OpenEJB is available in the Apache TomEE project.
The name of this custom distribution is KarafEE: https://svn.apache.org/repos/asf/tomee/karafee/
However, this project is now "deprecated", and all resources from KarafEE will move directly to Apache Karaf soon.