developingjavaee/osgi* applica4ons*with*...

27
Developing Java EE/OSGi Applica4ons with Apache Geronimo Kevan Miller, IBM [email protected] Nov. 9, 2011 Wednesday, November 9, 11

Upload: others

Post on 12-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Developing  Java  EE/OSGi  Applica4ons  with  Apache  Geronimo

Kevan  Miller,  [email protected]  

Nov.  9,  2011

Wednesday, November 9, 11

Page 2: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Who  Am  I

Kevan  Miller

Employer:  IBM

Ac@ve  at  the  ASF  since  2005:• Geronimo  (PMC  Chair)

• OpenEJB,  Aries,  OpenWebBeans

• Mentoring  Incubator  Podlings:  

-­‐ Bean  Valida@on,  KiSy,  SIS,  VCL,  Wink

Wednesday, November 9, 11

Page 3: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Agenda

Discuss  applica@on  development  on  Apache  Geronimo-­‐ Introduc@on

-­‐ Installa@on

-­‐ Command  and  control

-­‐ Deployment  plans

-­‐ IDE  support

Wednesday, November 9, 11

Page 4: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

!Agenda

Won’t  be  discussing  specific  Java  EE  or  OSGi  technologies  in  any  depth

Wednesday, November 9, 11

Page 5: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Geronimo  Overview

• ASF  project  started  in  2003

• Mission:Create  an  Open  Source  applica0on  server  from  Best-­‐of-­‐Breed  Open  Source  components

• Release  history:

5

201120102009200820072006

J2EE  1.4 Java  EE  5 Java  EE  6

Geronimo  1.0 Geronimo  2.0Geronimo  1.1 Geronimo  2.2Geronimo  2.1 Geronimo  3.0beta

Geronimo  3.0M1

Wednesday, November 9, 11

Page 6: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Apache  Geronimo

Tomcat

Bean  Valida@on

CXF Karaf

6

Wednesday, November 9, 11

Page 7: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Apache  Geronimo

Tomcat

Bean Validation

CXF

Karaf

7

Wednesday, November 9, 11

Page 8: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Geronimo  3.0

• 3.0-­‐beta  release  vote  underway– Java  EE  6  (full  and  web  profile)– OSGi  Enterprise  Applica@ons  (Aries)– OSGi  Kernel  Restructure  

8

Wednesday, November 9, 11

Page 9: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Install/Setup

• Build  from  source  or  download:– hSp://geronimo.apache.org/downloads.html

• untar  /  unzip  to  install

• JAVA_HOME  environment  variable  is  now  op@onal

9

Wednesday, November 9, 11

Page 10: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Geronimo  Directory  Layout

10

Directory Descrip.on

bin/ Geronimo  commands  (e.g.  deploy,  geronimo  run,  ...)

deploy/ Hot-­‐Deploy  for  Java  EE  apps

etc/ OSGi  /  Karaf  configura@on

hot-bundles/ Hot-­‐Deploy  for  OSGi  bundles

lib/ Small  set  of  geronimo  and  karaf  jars

repository/ Maven-­‐format  repository

schema/ Schemas  for  geronimo  deployment  plans

var/ geronimo,  tomcat,  logging  configura@on  files

Wednesday, November 9, 11

Page 11: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Configura@on  Overrides

• var/config/config-substitutions.properties

– Simple property file to configure commonly changed configuration options:

NamingPort = 1099ServerHostname = 0.0.0.0PortOffset = 0MaxThreadPoolSize = 500MinThreadPoolSize = 200JMXPort = 9999HTTPPort = 8080HTTPSPort = 8443

11

Wednesday, November 9, 11

Page 12: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Server  control

geronimo command <options>

12

Commands Descrip.on

geronimo  run Run  geronimo  in  foreground

geronimo  start Run  geronimo  in  background

geronimo  stop Stop  running  server

geronimo  jpda  run|start Run  geronimo  in  debug  mode

Op.ons Descrip.on

-­‐q  -­‐-­‐quiet Suppress  startup  progress  informa@on

-­‐l  -­‐-­‐long Verbose  startup  progress  info

-­‐c  -­‐-­‐clean Clean  OSGi  bundle  cache  before  star@ng  server

-­‐v  -­‐vv  -­‐vvv Verbose  logging,  very  verbose,  etc

Example: geronimo run --long

Wednesday, November 9, 11

Page 13: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Deployment

• Deploy  op@ons:– command  line:  ‘deploy’  

– karaf  shell– admin  console

– hot  deploy:  deploy  and  hotbundles

13

Wednesday, November 9, 11

Page 14: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Command  line  deploy

deploy <general-options> command <command-options>

‘deploy deploy my-web-app.war geronimo-web.xml’

14

General  Op.ons Descrip.on

-­‐-­‐host  (default:  localhost) hostname/ip  address  of  the  server

-­‐-­‐port  (default:  1099) Port  number  of  geronimo  server

Deploy  Command  Op.ons Descrip.on

archive    (required) Filename  of  the  WAR,  EAR,  RAR,  EJB  JAR

deployment  plan  (op@onal) Filename  of  the  geronimo  deployment  plan

Example: deploy deploy HelloWorld.war geronimo-web.xml

Wednesday, November 9, 11

Page 15: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Admin  Console  deploy

15

Wednesday, November 9, 11

Page 16: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Deployment  Plans

• Geronimo-­‐specific  xml  files  used  to  configure  applica5on  resources/behavior– ClassLoading– resource-­‐refs– context-­‐root– security– GBean  configura5on

• Documenta5on:  – hAps://cwiki.apache.org/GMOxDOC30/understanding-­‐deployment-­‐plans.html

16

Wednesday, November 9, 11

Page 17: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Deployment  Plans...

• Package  in  archives  META-­‐INF/  directory  and  will  be  automa@cally  processed

• Or  separate  file  specified  at  deploy  @me

17

Plan  name Descrip.on

geronimo-­‐web.xml WAR  configura@on  (WEB-­‐INF/)

geronimo-­‐[email protected] EAR  configura@on  (META-­‐INF/)

openejb-­‐jar.xml EJB  JAR  configura@on

geronimo-­‐ra.xml RAR  configura@on

Wednesday, November 9, 11

Page 18: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

<environment>  element<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">

<sys:environment> <sys:moduleId> <sys:groupId>org.foo</sys:groupId> <sys:artifactId>bar</sys:artifactId> <sys:version>1.0</sys:version> <sys:type>car</sys:type> </sys:moduleId>

<sys:dependencies> <sys:dependency> <sys:groupId>org.foo</sys:groupId> <sys:artifactId></sys:artifactId> <sys:version>1.2</sys:version> <sys:type>car</sys:type> </sys:dependency> </sys:dependencies>

<sys:bundle-activator/> <sys:bundle-classPath/> <sys:import-package/> <sys:export-package/> <sys:require-bundle/> <sys:dynamic-import/>

<sys:hidden-classes/> <sys:inverse-classloading/>

</sys:environment> </web-app>

18

maven-­‐based  naming  for  module  control

legacy  dependency  management

OSGi-­‐based  mechanismto  control  ClassLoading

legacy  ClassLoading  controls

Wednesday, November 9, 11

Page 19: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

geronimo-­‐web.xml

<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">

<sys:environment> <sys:moduleId> <sys:groupId>org.foo</sys:groupId> <sys:artifactId>bar</sys:artifactId> <sys:version>1.0</sys:version> <sys:type>car</sys:type> </sys:moduleId> </sys:environment>

<context-root>contextroot</web:context-root>

<work-dir>workdir</web:work-dir>

<sec:security> <sec:role-mappings> <sec:role role-name="admin"> <sec:principal class="o.a.g.s.realm.providers.GeronimoGroupPrincipal" name="admin" designated-run-as="true"/> </sec:role> </sec:role-mappings> </sec:security>

</web-app>

19

context  root

work  dir

security  mappings

Wednesday, November 9, 11

Page 20: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

geronimo-­‐[email protected]

<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2" application-name="MDBSampleEAR">

<module> <ejb>example-ejb.jar</ejb> <alt-dd>dds/my-ejb-geronimo-plan.xml</alt-dd> </module>

<module> <web> <web-uri>example-web.war</web-uri> <context-root>example</context-root> </web> </module>

</application>

20

example  ejb.jar  module

example  web  module

Wednesday, November 9, 11

Page 21: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

openejb-­‐jar.xml<openejb-jar xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">

<sys:environment> <sys:moduleId> <sys:groupId>org.foo</sys:groupId> <sys:artifactId>my-openejb-jar</sys:artifactId> <sys:version>1.0</sys:version> <sys:type>ear</sys:type> </sys:moduleId> </sys:environment>

<enterprise-beans> <entity> <ejb-name>ExchangeRate</ejb-name> <local-jndi-name>ExchangeRate</local-jndi-name> <resource-ref> <ref-name>jdbc/BankDataSource</ref-name> <resource-link>BankPool</resource-link> </resource-ref> </entity> </enterprise-beans></openejb-jar>

21

example  en@ty  module

Wednesday, November 9, 11

Page 22: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

IDE  Support

• Eclipse– Geronimo  produces  a  WTP  server  adapter  for  server  control,  geronimo  specific  configura5on

– OSGi  tooling  is  also  available

• NetBeans– Several  NetBeans  projects  including:

• hSp://code.google.com/p/wasce-­‐plugin/

• IDEA– Documenta5on  for  

22

Wednesday, November 9, 11

Page 23: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Define  a  server

• Server  -­‐>  

23

Wednesday, November 9, 11

Page 24: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Thanks!

24

Wednesday, November 9, 11

Page 25: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Resources

Geronimo  Informa@on:• hSp://geronimo.apache.org

• hSps://cwiki.apache.org/GMOxDOC30/[email protected]  

Contact  the  Geronimo  project:• [email protected]

[email protected]

• irc://irc.freenode.net/geronimo

Wednesday, November 9, 11

Page 26: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

More  informa@on

• Java  EE– hSp://download.oracle.com/javaee/6/tutorial/doc/

• OSGi– hSp://aries.apache.org/

26

Wednesday, November 9, 11

Page 27: DevelopingJavaEE/OSGi* Applica4ons*with* Apache*Geronimoarchive.apachecon.com/na2011/presentations/09-Wednesday/...Geronimo1.0 Geronimo1.1 Geronimo2.0 Geronimo2.1 Geronimo2.2 Geronimo3.0

Contact

Kevan  Miller• [email protected]

[email protected]

• TwiSer:  @kevanmiller

Wednesday, November 9, 11