This talk gives an introduction to the cross cutting concepts of Pax Construct, Pax Runner, and Pax Exam. We start with nothing, take Pax Construct, create your OSGi projects (standard, wrapped), provision into any osgi framework via Pax Runner, and finally add the unit tests based on Pax Exam.
"OSGi is not ready for the enterprise" "OSGi has no ready to use tooling" .. are misconceptions thrown around the internet.
Pax Tools is a unique, framework independent set of tools that make OSGi development enterprise ready and enjoyable.
Attendees can expect to gain knowledge that they can instantly run all major framework implementations while using one configuration-theme for all of them:
Pax Tools work greatly in an enterprise environment (tight Maven integration)
Pax Exam makes writing tests for OSGi platforms enjoyable.
2. me
• Toni Menzel, 26yrs
• independent consultant
• from Hannover / Germany
• started with OSGi in 2006
• OPS4J Pax Developer
• Lead of Pax Exam
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
3. Outline
• OPS4J & Pax Background
• Pax Construct
• Pax Runner
• Pax Exam
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
4. OPS4J Background
• Community since 2001
• Open Participation (“We hate patches”)
• Most Prominent Project: Pax
• Find it out at http://ops4j.org
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
5. Pax in a Nutshell
• Umbrella Project for OSGi @ OPS4J
• Focus on good practices, spec compliance
and interopability
• Framework Independent ( but we do love Felix )
• Tools + Service Implementations
• Widely used (Apache Felix, CXF, Mule,
SMX4, ModuleFusion,..)
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
6. The Pax Family
Pax Web
Pax Logging
+ Pax URL
Pax Swissbox
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
7. Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
8. The rails way..
• Commandline Toolbox
• “Maven Archetypes (on steroids) for OSGi”
• Create & Manage OSGi Projects
• Best Practices out of the box
• Maven
• Maven Bundle Plugin
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
9. Commands
• pax-create-project -g foo -a bar
• pax-wrap-jar -a asm
• pax-import-bundle -a cake
• pax-create-bundle -p com.company.log
• pax-provision -f felix|equinox|knopflerfish
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
10. DEMO Pax Construct
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
11. Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
12. High Level View
• Build for best developer experience
• Across all major frameworks
• Apache Felix
• Knopflerfish
• Equinox
• Concierge
• All Versions
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
13. Benefits
• Provisions all required artifacts
• Framework Platform
• Additional Bundles
• Generates
• Configuration Files
• Target Platform
• Runs platform at the end in a new JVM
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
14. Provisioning
• Profiles (SpringDM,CXF,Web.. many others)
• Pax URL:
• mvn:org.apache.felix/org.apache.felix.dependencymanager
• wrap:mvn:org.apache.commons/commons-logging/1.0.0
• Folders, Zip Files, OBR
• Support for Karaf Profiles
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
15. ..
• Create OSGi Distributables
• Used as:
• pax-run.sh
• pax-provisioning
• Eclipse Plugin (former Pax Cursor)
• Java API
• Lets have a look
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
16. DEMO Pax Runner
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
17. Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
18. What & Why
• Integration Testing for OSGi
• Core Principles:
• Run inside a real osgi container
• No side-effects (isolation)
• Test “orchestrates” your “real” Bundles
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
19. Best of breed
• Default Configuration uses
• Pax Runner under the hood
• JUnit4 as your visible Test Tool
• Leverages Maven for setup (optional!)
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
20. Anatomie
• Exam finds test classes (across IDE/Maven)
• Test will end up in its own probe
• Probe will be injected into framework
• Execution triggered by RMI hook
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
21. DEMO Pax Exam
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
22. One More Thing !
One more thing
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
23. 0.20
0.6
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
24. 0.6
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
25. 1.0
0.6
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
26. 1.0
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
27. 1.0
1.0
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
28. Questions
?
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
29. Thank you !
See you on http://ops4j.org
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com
30. Links
• http://www.ops4j.org
• Jira: http://issues.ops4j.org
• http://paxconstruct.ops4j.org
• http://paxrunner.ops4j.org
• http://paxexam.ops4j.org
• Pax Runner Profiles Repository: http://scm.ops4j.org/repos/ops4j/projects/pax/runner-repository
• Mailinglist: general@lists.ops4j.org
Monday, June 22, 2009 OSGi DevCon Europe Zurich, June 22nd, 2009. Filmcity, Track 1 2009 - OPS4J - Open Participation for Java - Community - Toni Menzel - toni@okidokiteam.com