enterprise development
play

Enterprise Development with What needs to be done to run JEE like - PowerPoint PPT Presentation

Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-Author of Apache Karaf Cookbook 3


  1. Enterprise Development with …

  2. What needs to be done to run JEE like applications inside Karaf?

  3. @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-Author of Apache Karaf Cookbook 3 2014-­‑10-­‑23

  4. Agenda • Enterprise Requirements • OSGi with Karaf • Enterprise Requirements on Karaf • Specialties • Http Service • Cellar - or how to cluster Karaf • Summary 4 2014-­‑10-­‑23

  5. Enterprise Requirements

  6. Enterprise Java Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 6 2014-­‑10-­‑23

  7. OSGi with Karaf

  8. OSGi - a very brief introduction • Modular • OSGi Bundles: • High Cohesion (One classloader/bundle) • Low Coupling (Package Import/Export) • Versioning per bundle ( [1.0,2,0) ) • Service Registry 8 2014-­‑10-­‑23

  9. What is Karaf • Container • OSGi Applications • Ligthtweight • expandable to Full Enterprise support • Covers all major needs • Logging • Deployment • Configuration 9 2014-­‑10-­‑23

  10. Karaf - Overview JMX Blueprint SSH Config Console Logging Deployer Admin OSGi Framework - Felix / Equinox 10 2014-­‑10-­‑23

  11. Enterprise requirements on Karaf

  12. Karaf Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 12 2014-­‑10-­‑23

  13. Enterprise - Pax Web Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 13 2014-­‑10-­‑23

  14. Enterprise - Pax CDI Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 14 2014-­‑10-­‑23

  15. Enterprise - Aries Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 15 2014-­‑10-­‑23

  16. Enterprise - Tomee aka OpenEJB Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 16 2014-­‑10-­‑23

  17. Enterprise - CXF Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 17 2014-­‑10-­‑23

  18. Enterprise - ActiveMQ Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 18 2014-­‑10-­‑23

  19. Enterprise - Cellar Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 19 2014-­‑10-­‑23

  20. Enterprise - Karaf with features Servlet 3 JSP JAX-WS JAX-RS JASPIC JSR-88 EJB 3.1 CDI JAX-RPC JAXB JACC JSR-77 JSF 2 JAXR JMS JCA RMI JTA Bean JPA 2 SAAJ JAAS JavaMail JNDI Validation 20 2014-­‑10-­‑23

  21. Specialties

  22. JPA - Karaf <persistence xmlns="http://java.sun.com/xml/ns/persistence" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
 version="2.0" > 
 <persistence-unit name="cookbook" transaction-type="JTA"> 
 <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
 <jta-data-source> osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/cookbook) </jta-data-source> 
 <class>de.nierbeck.apachecon.persistence.entity.Book</class> 
 <class>de.nierbeck.apachecon.persistence.entity.Recipe</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> 
 <properties> 
 <property name="openjpa.Log" value="slf4j" /> 
 <property name="openjpa.RuntimeUnenhancedClasses" value="supported" /> 
 <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/> 
 </properties> 
 </persistence-unit> 
 </persistence> 22 2014-­‑10-­‑23

  23. JPA - Karaf <persistence xmlns="http://java.sun.com/xml/ns/persistence" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 To have this blueprint xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
 JNDI is needed version="2.0" > 
 <persistence-unit name="cookbook" transaction-type="JTA"> 
 <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
 <jta-data-source> osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/cookbook) </jta-data-source> 
 <class>de.nierbeck.apachecon.persistence.entity.Book</class> 
 <class>de.nierbeck.apachecon.persistence.entity.Recipe</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> 
 <properties> 
 <property name="openjpa.Log" value="slf4j" /> 
 <property name="openjpa.RuntimeUnenhancedClasses" value="supported" /> 
 <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/> 
 </properties> 
 </persistence-unit> 
 </persistence> 22 2014-­‑10-­‑23

  24. JTA - Karaf <blueprint default-activation=„eager" xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <bean id="cookBookServiceImpl" class="de.nierbeck.apachecon.persistence.dao.CookBookServiceImpl"> <jpa:context property="em" unitname="cookbook" /> <tx:transaction method="*" value="Required" /> </bean> <service id="cookBookService" ref="cookBookServiceImpl" interface="de.nierbeck.apachecon.persistence.api.CookBookService" /> </blueprint> 23 2014-­‑10-­‑23

  25. JTA - Karaf <blueprint default-activation=„eager" xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0" To have this blueprint xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 JPA and JTA is needed http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <bean id="cookBookServiceImpl" class="de.nierbeck.apachecon.persistence.dao.CookBookServiceImpl"> <jpa:context property="em" unitname="cookbook" /> <tx:transaction method="*" value="Required" /> </bean> <service id="cookBookService" ref="cookBookServiceImpl" interface="de.nierbeck.apachecon.persistence.api.CookBookService" /> </blueprint> 23 2014-­‑10-­‑23

  26. Client - Karaf <?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> <reference id="cookBookService" interface="de.nierbeck.apachecon.persistence.api.CookBookService" /> <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0"> <command> <action class="de.nierbeck.apachecon.commands.CreateBook"> <property name="bookService" ref="cookBookService" /> </action> </command> ... </command-bundle> </blueprint> 24 2014-­‑10-­‑23

  27. Demo

  28. Persistence 26 2014-­‑10-­‑23

  29. Client 27 2014-­‑10-­‑23

  30. Client Shell 28 2014-­‑10-­‑23

  31. Client - Shell 29 2014-­‑10-­‑23

  32. Client Shell 30 2014-­‑10-­‑23

  33. Client - Shell 31 2014-­‑10-­‑23

  34. Http Service with …

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend