Title: Documentation

See also the [examples page](examples-trunk/index.html) for downloadable, executable and code-focused view of Java EE and TomEE.
You can also find us on IRC freenode.org #openejb and #tomee

{row

{span-one-third
###IDE
[Get started with Intellij](tomee-and-intellij.html), [Debugging in Intellij](contrib/debug/debug-intellij.html)  
[Get started with Eclipse (WTP)](tomee-and-eclipse.html)  
[Get started with Eclipse (m2e-Webby)](getting-started-with-eclipse-and-webby.html)  
[Get started with Netbeans](tomee-and-netbeans.html)  

###General Informations
[Comparison: OpenEJB, TomEE, TomEE+](comparison.html)  
[TomEE Directory structure](tomee-directory-structure.html)  
[Deploying in TomEE](deploying-in-tomee.html)  
[The 'tomee' webapp](tomee-webapp.html)  
[TomEE Reference Card](refcard/refcard.html)  
[ApplicationComposer](application-composer/index.html)  
}
{span-one-third
###Configuration
[System Properties](system-properties.html)  
[Deployments](deployments.html)  
[Configuring Resources](Configuring-in-tomee.html)  
[Configuring DataSources](configuring-datasources.html)  
[Containers and Resources](containers-and-resources.html)  
[JMS Resources and MDB Container](jms-resources-and-mdb-container.html)  
[Configuring JavaMail](configuring-javamail.html)  
[TomEE Security](tomee-and-security.html)  
[Security How To](security.html)  
[EJB Clients](clients.html)  
[EJB over SSL](ejb-over-ssl.html)  
[JNDI Names](jndi-names.html)  
[Changing JMS implementations](changing-jms-implementations.html)  
[Changing JPA to Hibernate](tomee-and-hibernate.html)  
}
{span-one-third
###Testing Techniques
[Application discovery via the classpath](application-discovery-via-the-classpath.html)  
[Embedded Configuration](embedded-configuration.html)  
[Configuring DataSources in Tests](configuring-datasources-in-tests.html)  
[Configuring PersistenceUnits in Tests](configuring-persistenceunits-in-tests.html)  
[Configuring Containers in Tests](configuring-containers-in-tests.html)  
[Configuring Logging in Tests](configuring-logging-in-tests.html)  
[Alternate Descriptors](alternate-descriptors.html)  
[Unit Testing Transactions](unit-testing-transactions.html)  
[TestCase with TestBean inner-class](testcase-with-testbean-inner-class.html)  
[TestCase Injection (@LocalClient)](local-client-injection.html)  
}
}
{row

{span-one-third
###Discovery and Failover
[Overview](ejb-failover.html)  
[Multicast Discovery (UDP)](multicast-discovery.html)  
[Multipulse Discovery (UDP)](multipulse-discovery.html)  
[Multipoint Discovery (TCP)](multipoint-discovery.html)  
[Multipoint Considerations](multipoint-considerations.html)  
[Multipoint Recommendations](multipoint-recommendations.html)  
[Logging Events](failover-logging.html)  
}
{span-one-third

###OpenEJB Standalone Server
[Understanding the Directory Layout](understanding-the-directory-layout.html)  
[Startup](startup.html)  
[Deploy Tool](deploy-tool.html)  
[Properties Tool](properties-tool.html)  
}
{span-one-third
###Spring
[Spring and OpenEJB 3.0](spring-and-openejb-3.0.html)  
[Spring and OpenEJB 3.1 and later](spring.html)  
[Spring, EJB and JPA example](spring-ejb-and-jpa.html)  
}
}
{row

{span-one-third
###Arquillian
[Arquillian Primer - What you need to know](arquillian-getting-started.html)  
[Using the TomEE Arquillian adapters](arquillian-available-adapters.html)  
}
{span-one-third
###TomEE Maven Plugin
[Getting started](tomee-mp-getting-started.html)  
[tomee-maven-plugin reference documentation](maven/index.html)  
[tomee-embedded-maven-plugin reference documentation](tomee-embedded-maven-plugin.html)  
[TomEE simple webapp archetype documentation](tomee-mp-getting-started.html)  
}
{span-one-third
###Tips and Tricks
[Install TomEE using the drop-in WAR](installation-drop-in-war.html)  
[Global Concurrency Management](tip-concurrency.html)  
[WebLogic Lookup](tip-weblogic.html)  
[Jersey Client](tip-jersey-client.html)  
}
}
