Feedback Welcome! We use your feedback to focus efforts, develop new features, and to make TomEE better for everyone. Help us grow!

Web Profile

Apache TomEE Web Profile delivers Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation and EJB Lite

Comparison »


Plus

Apache TomEE Plus delivers all that is in the Web Profile, plus EJB Full, Java EE Connector Architecture, JMS, JAX-WS and and JAX-RS.

Comparison »

 

Standalone

An "EJB" Server that can be run as a separate, standalone, server process. Contains EJB Full, CDI, JPA, JMS, JAX-WS, JAX-RS

Comparison »

Drop-in WARs

A version of Apache OpenEJB that can be dropped into any Tomcat 7.x install effectively creating your own Apache TomEE Web Profile or Apache TomEE Plus.

 

Source

Should you want to build any of the above binaries, this source bundle is the right one covers them all.

Examples

Currently, we have over 50 examples of various aspects of Java EE 6 ranging from EJB, CDI, JAX-RS and more. If you're learning Java EE, this is your secret weapon.

 

Upgrades

New Features

  • TOMEE-127 Remote Arquillian Adapter for TomEE
  • TOMEE-136 Arquillian Adapter for classic Tomcat+OpenEJB.war
  • TOMEE-137 Arquillian.xml properties overridable as system properties for TomEE adapters
  • TOMEE-174 TomEE Maven Plugin
  • TOMEE-173 Application Provisioning via Maven Repositories
  • TOMEE-66 Support for @EJB refs from one server to another
  • OPENEJB-1794 Multipoint Automatic Reconnect
  • OPENEJB-1804 Client Event API for monitoring connection, clustering and failover activity
  • OPENEJB-1807 New "sticky+round" ConnectionStrategy
  • OPENEJB-1806 New "sticky+random" ConnectionStrategy
  • OPENEJB-1799 auto import import-<unit-name>.sql sql scripts
  • OPENEJB-1719 Add a karaf-command to deploy, undeploy and list EJBs available in OpenEJB server on Apache Karaf
  • OPENEJB-1819 ability to deploy an application through JMX when DeployerEjb is deployed
  • OPENEJB-1817 JMX Monitoring of all ServerServices (i.e. remotely accessible network services)
  • OPENEJB-1814 JMX Management of Multipoint discovery server service
  • OPENEJB-1773 system property to set the bean validation provider globally
  • OPENEJB-1736 Example: OSGi on Apache Karaf
  • OPENEJB-1735 OSGi Support on Apache Karaf

Improvements

  • TOMEE-158 Greatly increased deployment speed of large applications
  • TOMEE-162 Greatly improved annotation scanning performance
  • TOMEE-169 Optimization scanning for tld files
  • TOMEE-140 Example: @WebService OUT params with @WebParam and JAX-WS Holder
  • TOMEE-150 using webapp as fallback for module type discovering (like tomcat)
  • TOMEE-92 provide a system.properties file with default values
  • TOMEE-144 Eliminate servlet-specific double scan
  • TOMEE-145 endorsed jaxb 2.2
  • TOMEE-168 Load OpenEJB System applications directly, without scanning
  • TOMEE-165 Stateful bean capacity config should have a more manageable default
  • TOMEE-164 Optimization on reading built-in tld files
  • TOMEE-124 provisioning file to add libs to openejb when tomee starts
  • TOMEE-40 Log files not empty on a fresh TomEE install
  • TOMEE-131 The openejb.xml file should be called tomee.xml in TomEE
  • TOMEE-134 Rename openejb.war to tomee.war
  • TOMEE-156 ability to set a global session manager
  • TOMEE-139 Example: @WebService @HandlerChain
  • TOMEE-176 Switch to java.util.logging and integrate with Tomcat logs
  • TOMEE-151 Example: JPA @Enumerated
  • OPENEJB-1789 Multipoint.discoveryHost allows for "bind" of 0.0.0.0
  • OPENEJB-1793 Multipoint.reconnectDelay configures how log to wait between attempts to rejoin the multipoint network
  • OPENEJB-1792 Multipoint.discoveryName property allows for easy identification of servers in logs
  • OPENEJB-1797 making handler of dynamic EJB managed by CDI in a better way
  • OPENEJB-1808 Client property 'openejb.client.connection.strategy' can be set as System or InitialContext property
  • OPENEJB-1803 Improved RandomConnectionStrategy for clustering and failover
  • OPENEJB-1805 All client logging revised and greatly expanded
  • OPENEJB-1801 Improved StickyConnectionStrategy for clustering and failover
  • OPENEJB-1802 Improved RoundRobinConnectionStrategy for clustering and failover
  • OPENEJB-1756 allow to give shortcut as log factory
  • OPENEJB-1758 newloaderlogic should allow to add or remove prefix for lib path to scan
  • OPENEJB-1816 Client ConnectionPoolCreated and ConnectionPoolTimeout events
  • OPENEJB-1712 Use slf4j and logger class instead of System.out.println in Activator of org.apache.openejb.core.osgi.impl
  • OPENEJB-1815 Ability to restart Multipoint ServerService
  • OPENEJB-1760 Checks to ease the transition from Log4j to java.util.logging
  • OPENEJB-1812 Client Event issued on Configuration change
  • OPENEJB-1813 EJBd Protocol communicates server/container invocation times to client
  • OPENEJB-1762 check the latest stable version from repo1
  • OPENEJB-1810 Client Event issued when Servers Added/Removed from cluster
  • OPENEJB-1811 Client Event issued on connection Failover and Request Retry
  • OPENEJB-1829 Plain Java to parse openejb.xml and tomee.xml files
  • OPENEJB-1775 ability to override webservice deployment address like https://cwiki.apache.org/GMOxKB/how-do-i-specify-a-different-endpoint-address-for-my-web-service.html
  • OPENEJB-1770 ability to put provisionned libraries in a folder different from tomee lib folder
  • OPENEJB-1740 remove configure internal/embedded
  • OPENEJB-1777 Jar file scanning performance
  • OPENEJB-1778 Improved error message for NoInjectionMetaDataException details how to proceed
  • OPENEJB-1779 Split simple-webservice example
  • OPENEJB-1739 using JUL by default
  • OPENEJB-1784 Run heavy static initializers in parallel for performance boost
  • OPENEJB-1787 upgrade jaxb to 2.2
  • OPENEJB-1786 Improve logging to improve failover debugging
  • OPENEJB-1781 Ability to print HTTP messages to System.out for easy debugging
  • OWB-604 more details for exceptions during bootstrapping
  • OWB-661 hashCode, equals and toString() of our built in Qualifier Literals should be implemented ourselfs
  • OWB-657 review startup performance
  • OWB-637 [perf] ELContextStore.destroyDependents() creates unnecessary HashMap$KeyIterator instances
  • OWB-653 remove @ViewScoped support
  • OWB-635 support callbacks (@PostContrcut, @PreDestroy) in Extensions
  • OWB-638 [PERF] Avoid unnecessary AbstractList$Itr instances
  • OWB-639 [perf] InjectionResolver.getBeanCacheKey creates many StringBuilder instances
  • OWB-647 [PERF] Avoid unnecessary StringBuilder instances - improve checkNullInstance, checkScopeType, ... methods
  • OWB-596 Provide info about injetion point for "Passivation capable beans must satisfy passivation capable dependencies ..."
  • OWB-641 the jee5-ejb-resource module should support @EJB(mappedName)

Bugs

  • TOMEE-148 only one persistence.xml in libs is taken into account
  • TOMEE-149 env-entries.properties is ignored
  • TOMEE-166 Web.xml metadata-complete effectively ignored
  • TOMEE-170 Windows AntiJarLocking broken in embedded scenarios
  • TOMEE-159 Removed "load every class" logic that crept in prior to certification -- performance issue
  • TOMEE-155 disposes method are not called with request scoped
  • OPENEJB-1798 @GeneratedValue fails to work in some situations with OpenJPA
  • OPENEJB-1809 RandomConnectionStrategy fixed reliability issues
  • OPENEJB-1796 multiple persistence.xml are ignored
  • OPENEJB-1800 can't inject bean through abstract class (see OWB-655)
  • OPENEJB-1757 deployerejb.undeploy method should use absolute path when moduleid is not working
  • OPENEJB-1759 Passivation of @Stateful beans with references to a container managed EntityManager
  • OPENEJB-1627 Could not create configuration when ejb module is deployed in openejb 4.0-SNAPSHOT on Apache Karaf
  • OPENEJB-1714 Logging error is generated when openejb osgi bundle create an openEjb instance
  • OPENEJB-1732 Singleton bean cannot be deployed
  • OPENEJB-1766 MultipointDiscoveryAgentTest needs to allow more missed heartbeats
  • OPENEJB-1830 Omitting <ejb-name> from xml may result in failed deployment
  • OPENEJB-1824 TomEE wrongly detecte disabled beans as broken
  • OPENEJB-1776 Some properties supplied via EJBContainer.createEJBContainer or InitialContext ignored
  • OPENEJB-1771 cdi interceptors can be managed at class level or method level even for EJBs
  • OWB-602 OpenWebBeans OpenEJB integration OSGi bundle declares the wrong version for the javax.transaction package
  • OWB-660 WebBeansContext #activateContext for SessionScoped.class doesn't set the ThreadLocal
  • OWB-580 ObserverMethodImpl needs support for EJB's whose Bean Types do not include the EJB class
  • OWB-658 BeanManager.getBeans(Type, Annotation...) can not be used to query all known beans
  • OWB-659 An annotated interface class is being seen as a manage bean.
  • OWB-633 define stereotypes & thirdparty
  • OWB-636 Samples point to parent pom file that doesn't exist
  • OWB-655 CDI doesn«t inject stateless EJB by abstract class.
  • OWB-634 @Interceptors added by extension ignored
  • OWB-617 NullPointerException in InstanceBean#createInstance
  • OWB-574 NewBean doesn't support EJBs
  • OWB-645 InjectionPoint is null when using @Produces. NullPointerException caused by CDI container providing a null InjectionPoint into a producer method.
  • OWB-646 Failover does not work (again)
  • OWB-648 regression on tck org.jboss.jsr299.tck.tests.lookup.injectionpoint.InjectableReferenceTest
  • OWB-567 Lookup of Provider results in NullPointerException on get()
  • OWB-643 it isn't possible to add/remove @Alternative during the bootstrapping process
  • OWB-644 wrong config entry for LoaderService
  • OWB-628 Event injection doesn't work in observer methods.
  • OWB-649 exceptions in EJB's are wrapped in InvocationTargetException

Tasks & Sub-Tasks

  • OPENEJB-1788 Consolidate IO code
  • OPENEJB-1828 Disable hsql ServerService by default
  • OPENEJB-1726 Create an OSGi example ready to run
  • OWB-662 remove obsolete class WebBeansAnnotation
  • OWB-656 remove webbeans-openejb
  • OPENEJB-1623 Example: Sharing of @ApplicationScoped beans
  • OPENEJB-1768 Validation: Check that @WebService beans are not @Stateful or @MessageDriven or @ManagedBean
  • OPENEJB-1769 Validation: Check for mistaken 'javax' system properties listed as 'java'
  • OPENEJB-1612 Example: Sharing of @RequestScoped beans
 

Upgrades

New Features

  • TOMEE-6 Arquillian adapter
  • TOMEE-84 TomEE Embedded Container
  • TOMEE-86 Implementation of EJBContainer.createEJBContainer for TomEE Embedded
  • TOMEE-96 All-in-one TomEE Embedded jar
  • TOMEE-95 Command line 'java -jar tomee-embedded.jar myAwesome.war' launching
  • TOMEE-58 New concept of persistence-fragment.xml file
  • TOMEE-71 Ability to reload Persistence units via JMX
  • TOMEE-72 Example: Reloading Persistence unit properties dynamically
  • TOMEE-104 Allow custom JAX-RS providers to be used
  • TOMEE-99 Example: CDI @Alternative and @Stereotype
  • TOMEE-101 Example: CDI Events and @Observes
  • TOMEE-97 Beginning documentation for Meta-Annotation support
  • TOMEE-37 TomEE webapps based Deployer implementation
  • OPENEJB-1454 Meta Annotation Support
  • OPENEJB-1691 Dynamic @Proxy beans
  • OPENEJB-1430 Scanning an JMX Registration of @ObjectName mbeans in applications
  • OPENEJB-1737 Example: Dynamic JMX MBean example
  • OPENEJB-1517 EJBContainer.createEJBContainer MODULES supports various org.apache.openejb.jee.* types
  • OPENEJB-1571 CDI Injection for clients of EJBContainer and tests using ApplicationComposer
  • OPENEJB-1706 CDI Injection support for MDBs
  • OPENEJB-1744 Example: MDBs as CDI beans
  • OPENEJB-1705 Example: Simple CDI Interceptor
  • OPENEJB-1654 System property overrides for MDB ActivationConfig
  • OPENEJB-1690 Ability to define DataSources, Topics, Queues and other resources in applications with a META-INF/resources.xml file
  • OPENEJB-1453 Metatyping for EJB and Dependency Injection Annotations
  • OWB-621 Alternative configuration method for buggy container or pre servlet api 2.5 container

Improvements

  • TOMEE-102 Cleaned up error handling of closed jars at shutdown
  • TOMEE-107 Reduced logging of harmless "Could not install our singleton service" message
  • TOMEE-106 Better handling of DataSource "maxWait" property, supports ints
  • TOMEE-108 Smarter default of Log4j, Slf4j and JULI logging implementation selection
  • TOMEE-100 Trim internal objects from logging
  • TOMEE-93 Ensure JAX-RS @HeaderParam matching is case insensitive
  • TOMEE-91 Improved error handling and resolving of REST @Path URLs
  • TOMEE-82 SQLLoginModule support for HSQLDB 2.x
  • TOMEE-83 Improved ability to imply type of<env-entry>
  • TOMEE-87 Expanded scope of Global JNDI
  • TOMEE-123 Eliminate webapp lib scanning from known libs
  • TOMEE-73 Example: JAX-RS example with Application
  • TOMEE-60 More Optimization in scanning of webapp libs
  • TOMEE-122 WebService subcontext mapping adjustable with tomee.jaxws.subcontext property
  • TOMEE-121 WebServices mapped into / <webappcontext>/webservices/<name>
  • TOMEE-75 Resolve default persistence provider before Assembly
  • OPENEJB-1755 Repackaging LocalInitialContextFactory into org.apache.openejb.core
  • OPENEJB-1746 More helpful information on ConcurrentAccessTimeoutException
  • OPENEJB-48 Log the location of the openejb.conf file being used
  • OPENEJB-1747 Avoid NPE when a custom mdb container uses badly defined activation properties
  • OPENEJB-1749 Better logging of @Stateful @PreDestroy exceptions
  • OPENEJB-1701 Improved Multipoint and Multicast discovery logging
  • OPENEJB-1750 Improved documentation on Windows Service installer
  • OPENEJB-1700 deploying rest ejb as ejb when it is returned by Application.getClasses()/getSingletons()
  • OPENEJB-1754 Reduce logging of failed security checks due to being unauthorized
  • OPENEJB-1753 New 'openejb.descriptors.output.folder' property for location of generated descriptors
  • OPENEJB-1722 manage JtaPlatform instead of TransactionManagerLookup when hibernate 4 as JPA provider
  • OPENEJB-1752 Tolerate toString() issues with ejb method return values when logging on DEBUG
  • OPENEJB-1751 Ability to deactivate all internal JMX MBeans
  • OPENEJB-1742 Respect 'openjpa.Specification' persistence.xml property
  • OPENEJB-1743 Better MDB/CDI support
  • OPENEJB-1741 Faster jar scanning at deploy
  • OPENEJB-1699 managing @ApplicationPath for rest
  • OPENEJB-1738 MDB Queue/Topic name defaults to MappedName
  • OPENEJB-1715 Add ServiceTracker in Activator class to wait till we find the ServiceManagerProxy
  • OWB-623 Relax check on @AroundInvoke Interceptors 'throws Exception'
  • OWB-627 Automatically destroy @Dependent contextual instances created with Instance
  • OWB-475 support for optional beans

Bugs

  • TOMEE-56 jsp group properties order not respected
  • TOMEE-103 Further reduction of possible LinkageError in log files
  • TOMEE-105 fixing contextroot in TomcatWebAppBuilder for windows
  • TOMEE-51 Deployment without web.xml not possible. With web.xml, tests do not run.
  • TOMEE-11 conf/logging.properties conflicts with juli configuration for Tomcat
  • TOMEE-10 JNDI Browser in the openejb.war does not show @LocalBean views as EJBs
  • TOMEE-94 context.xml ignored in internally created Tomcat StandardContexts
  • TOMEE-90 Fixed REST Service undeployment issue
  • TOMEE-98 Possible name conflict with internal "Comp" bean
  • TOMEE-47 ServletContext.getResource(path).getInputStream() fails
  • TOMEE-43 library-directory ignored
  • TOMEE-42 TCCL.getResources() returns duplicated when deploying with OpenEJB deployer
  • TOMEE-80 Avoid hibernate HHH015010 at startup
  • TOMEE-89 Fixed lifecycle issue in CDI BeforeBeanDiscovery
  • TOMEE-85 Fixed issues with rootUrl in persistence units of webapps
  • TOMEE-39 context.xml of WAR not loaded
  • TOMEE-88 Possible EL related issue prevents startup
  • TOMEE-30 OpenEJBLifecycle.startApplication brutly cast Object in StartupObject
  • TOMEE-33 seam-international-timeanddate fails to deploy
  • TOMEE-34 seam-remoting-helloworld fails to deploy
  • TOMEE-35 Unable to lookup BeanManager from JNDI
  • TOMEE-36 NullPointerException when Missing required persistence.xml for @PersistenceUnit
  • TOMEE-120 Fixed issue preventing serveral Web Service applications from being deployed simultaneously
  • TOMEE-77 Ignore REST Applications without default constructor
  • TOMEE-1 TomEE Beta 1.0.0 doesn't start with MyFaces CODI
  • TOMEE-27 UnknownModuleTypeException thrown when no-web.xml webapp deployed
  • TOMEE-76 Avoid NullPointerException in no-web.xml applications
  • TOMEE-29 Applications always seem to be refreshed/redployed
  • TOMEE-74 Fixed serialization issue with ValidationFactory references
  • TOMEE-79 Fixed "no root logger" warning
  • TOMEE-78 Issue finding openejb.war in Tomcat
  • TOMEE-110 Fixed Tomcat issue with JSF code/prelude ordering
  • TOMEE-111 Avoid overriting files in Tomcat installer if already installed
  • TOMEE-61 allow ROOT to contain rest service
  • TOMEE-115 Issue in OWB preventing CDI Extensions from adding Interceptors to EJBs
  • OPENEJB-1523 TomEE 6.0.26 / 3.1.4: NPE in org.apache.catalina.startup.HostConfig.manageApp
  • OPENEJB-1730 Reliability of multipoint discovery heartrates less than 1 second
  • OPENEJB-1745 Fix null pointer in discardInstance when releaseInstance has already been called
  • OPENEJB-1748 Fixed undeploy race condition
  • OPENEJB-1710 ClassCastException when deploying ear files containing persistence.xml
  • OPENEJB-1709 TomEE webapps (See rest-example) doesn't work under Windows (Path - Problem with backslash "\")
  • OPENEJB-1708 Servlet Injection
  • OPENEJB-1443 EntityManager in non-transactional business methods using queries can be used only once
  • OPENEJB-1729 Reliability of Multipoint remove event when last peer disappears
  • OPENEJB-1702 Multicast and Multipoint 'heart_rate' property ignored
  • OPENEJB-1704 undeploy or shutdown call ejbCreate() on stateless session beans
  • OPENEJB-1711 Multithreaded filling of @Stateless pools to PoolMin at bean startup
  • OPENEJB-1733 Parameters are not always available in custom interceptor when the bean is a webservice
  • OWB-620 any disabled bean of passivating scope will wrongly be detected as 'not passivatable'
  • OWB-622 beanmanager injection in afterBeanDiscovery method parameter
  • OWB-624 AnnotatedTypes registered in BeforeBeanDiscovery might get processed twice
  • OWB-615 remove @Overrides for interfaces to be java5 compatible
  • OWB-597 StackOverFlow when injecting product in same bean where @Produces is placed
  • OWB-589 " ... requires a passivation capable dependency ..." for producer method with return type String and non serializable injected dependency
  • OWB-616 javax.el.ExpressionFactory has final methods! CDI doesn't allow that. - Test on final PRIVATE methods too?
  • OWB-619 @New beans must only exist if there is at least one injection point for them
  • OWB-618 we sometimes invoke a dispose method without having created the bean upfront
  • OWB-562 non-enabled alternative beans with passivating scope fail validation during deployment
  • OWB-630 AmbiguousResolutionException thrown for Decorators that Decorate multiple beans where any of those beans are passivation capable.
  • OWB-631 openwebbeans-resource misses openwebbeans.properties
  • OWB-565 missing check for producer methods
  • OWB-625 BeanManager.resolve throw java.util.NoSuchElementException with an empty set parameter
  • OWB-629 NoClassDefFoundError for optional dependencies
  • OWB-515 interceptors don't support inheritance without an overridden method annotated with @AroundInvoke