G l a r I m y Presentation on
|
|
- Solomon Conley
- 5 years ago
- Views:
Transcription
1 G l a r I m y Presentation on OSGi with Apache Karaf Krishna Mohan Koyya Proprietor & Principle Consultant Glarimy Technology Services Benguluru Bharat krishna@glarimy.com
2 . The Classroom Protocol Few Administrative Formalities Sign in the attendance sheet, if provided Fill-in the feedback at the end of sessions, if provided Derive Maximum Value Ask questions, any time Participate in discussions and lab exercises Avoid brining personal or office work to the class room Stay away from internet while class in the session Lets Learn Together Switch-off or mute personal phones Leave/enter the class room without disturbing the class Take phone calls outside the class room Keep the class room clean and professional No cross discussions Reference Material Download from No rint/cd. Protect Environment!
3 Glarimy Technology Services About Glarimy Established in 2008 and Registered in 2010 Based out of Benguluru, Bharat (Bangalore, India) Business Interests Technology Consulting Architectural Appreciation Architectural Review Prototyping Corporate Training Software Design, Architecture and Processes Web 2.0 Technologies Standard and Enterprise Technologies Weekend Public Workshops One-day Executive Workshops on Saturdays Business Reach Through 3 rd Party Vendor Organizations and Direct Relationships Geographies: Banguluru, Chennai, Pune, Hyderabad, Kochi and etc., Client Base: HSBC, Robert Bosch, Oracle, Alcatel-Lucent and etc.,
4 Krishna Mohan Koyya Career spanning across 17 years 9 Years into Software Engineering with Cisco Systems, Wipro/Lucent and HP 6 Years as Principle Consultant and Founder of Glarimy Technology Services 1 Year as CEO at Sudhari IT Services, Bangalore 1 Year as HoD at Sasi Institute of Technology and Engineering, Tadepalligudem Proven Delivery Web 2.0: ExtJS, Dojo, Jquery Frameworks, HTML5, CSS3, XML Enterprise Java: Spring, Hibernate, EJB, JSF, OSGi, Web Services Design Patterns, Architectural Patterns, TDD Technology Expertise Distributed Systems and Network Management Systems Object Oriented Systems Development Infrastructure, Middleware and Web Layers with Java and Javascript Academics M.Tech (Computer Science & Tech) from Andhra University, Visakhapatnam BE (Electronics & Comm. Engg) from SRKR Engg. College, Bhimavaram
5 OSGi with Karaf Getting Started The what and why of OSGi An architectural overview of OSGi First Look at Bundles Introducing bundles Configuring bundles Defining bundles with metadata OSGi bundle lifecycle Lifecycle and modularity Working with Karaf Setting up Karaf Karaf Features: Console and Logging Deploying bundles Working with Bundles Splitting an application into bundles Versioning packages and bundles OSGi dependency resolution Ordering bundle activation Starting bundles lazily
6 OSGi with Karaf Advanced Bundle Management Handling exports and Imports Requiring bundles Dividing bundles into fragments Turning JARs into bundles Cyclic Dependencies OSGi services in action Extender Pattern Compendium Services Event Services Configuration Management Services Service Locater Service Declarative Services Working with BluePrint OSGi and Spring Framework Enterprise OSGi Migrating tests to OSGi Debugging bundles Solving class-loading issues Tracking down memory leaks 2014, Glarimy. All rights reserved.
7 OSGi Bundle Basics An OSGi bundle as the unit of modularization It must be a cohesive and self-contained unit It must explicitly define its dependencies to other modules and services. It must also explicitly define its external API. A bundle is a.jar files With additional meta information in META- INF/MANIFEST.MF file. The MANIFEST.MF file is part of the standard Java specification. OSGi adds additional metadata. Any non-osgi runtime will ignore the OSGi metadata. Therefore OSGi bundles can be used without restrictions in non-osgi Java environments.
8 OSGi Bundle Basics A bundle is uniquely identified by its name and version Bundle-SymbolicName Starts with the reverse domain name of the bundle author Bundle-Version property (major.minor.patch) patch is increased if all changes are backwards compatible. minor is increased if public API has changed but all changes are backwards compatible. major is increased if changes are not backwards compatible Both are defined in MANIFEST.MF file
9 OSGi Bundle Basics An Example Manifest File Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Bank-Api Plug-in Bundle-SymbolicName: com.glarimy.osgi; Bundle-Version: Bundle-Activator: com.glarimy.osgi.activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Export-Package: com.glarimy.osgi.api
10 OSGi Bundle Basics Example Bundle Manifest Headers Bundle-Name: Defines short description of the bundle Bundle-SymbolicName: Defines the unique identifier of the bundle Bundle-Version: Defines the bundle version Bundle-Activator: Defines an optional activator class Implements the BundleActivator interface. Bundle-RequiredExecutionEnvironment (BREE) Defines the Java version to run the bundle Bundle-ActivationPolicy: Defines the policy to decide when to activate a bundle Bundle-ClassPath: Location of the bundle classes. Defaults to root of the bundle
11 OSGi Bundle Basics A bundle define its dependency to other bundles or packages. Based on a certain or range of versions of other bundles Classes in the non-dependent bundles can not be found Except the packages/classes from JVM. A bundle defines its API via the Export-Package Identifier All packages which are not explicitly exported are not visible to other bundles. Each bundle has its own OSGi class-loader. It enforces restrictions on access to various classes according to the defined dependencies.
12 OSGi Bundle Lifecycle
13 OSGi Bundle Lifecycle OSGi manages dependency among the bundles. Installation The bundle is persisted into local cache Assigns a unique ID for the bundle (INSTALLED) Resolution Reads the MANIFEST.MF file Ensures that all dependent bundles are resolved (RESOLVED) Recursive process Chooses a bundle with highest version Chooses a bundle with lowest ID If the dependencies are not met, then the bundle is not resolved Activation Activates the bundle as per activation policy Ensures that all dependent bundles are activated
14 Manifest Headers Bundle-Classpath An ordered, comma-separated list Of relative bundle JAR file locations To be searched for class and resource requests. The default value DOT (.) if and only if there is no specified value Example Bundle-ClassPath:.,other-classes/,embedded.jar
15 Manifest Headers Export-Package A comma-separated list Of internal bundle packages To expose for sharing with other bundles. Unless exported, no package is visible outside the bundle Exception: Java Packages are always visible Example Export-Package: com.glarimy.api,com.glarimy.service Export-Package: com.glarimy.api; vendor="manning", com.glarimy.service; vendor= Glarimy Export-Package: com.glarimy.api; com.glarimy.service;vendor= Glarimy Export-Package: com.glarimy.api; com.glarimy.service; version="2.0.0"
16 Manifest Headers Import-Package A comma-separated list of packages As needed by internal bundle code From other bundles Can not import bundles, unless exported by the other bundles Example Import-Package: com.glarimy.api Import-Package: com.glarimy.api,com.glarimy.util Import-Package: org.osgi.framework; version="[1.3.0,2.0.0)
17 Manifest Headers Version Range Specification Square bracket for inclusive range Parenthesis for exclusive range Default 0.0.0: Any version Examples [min,max) : min <= x < max [min,max] : min <= x <= max (min,max) : min < x < max (min,max] : min < x <= max min : min <= x
18 Bundle Resolution Bundle Resolution Process The class is from a package starting with java The parent class loader is asked for the class. If the class is found, it s used. If there is no such class, the search ends with an exception. The class is from a package imported by the bundle The framework asks the exporting bundle for the class. If the class is found, it s used. If there is no such class, the search ends with an exception. The bundle class path is searched for the class If it s found, it s used. If there is no such class, the search ends with an exception Resolves a bundle automatically when another bundle attempts to use it.
19 OSGi Bundle Resolution Different versions of the same package in the same running JVM Highest priority to already-resolved candidates Multiple matches of resolved candidates are sorted according to version and then installation order Next priority to unresolved candidates Multiple matches of unresolved candidates are sorted according to version and then installation order Inconsistent import-export or dynamic deployments may cause class-cast exception
20 OSGi Bundle Resolution Uses Directive Attached to exported packages A comma-delimited list of packages Exposed by the associated exported package Example If package org.osgi.service.http uses package javax.servlet, importers of org.osgi.service.http are constrained to the same javax.servlet Export-Package: org.osgi.service.http; uses:="javax.servlet"; version="1.0.0" Import-Package: javax.servlet; version="2.3.0 Uses constraints are transitive
21 Updating Bundles Updates The new bundle version is put in place, but the old version is still kept around So bundles depending on it can continue loading classes from it. Each time an update without a refresh is performed, an another version of the bundle is introduced. Uninstalls The bundle is removed from the installed list of bundles, but it isn t removed from memory. Again, the framework keeps it around so dependent bundles can continue to load classes from it. Update followed by Refresh
22 Managing Exports Importing own packages It s generally a good idea to import and export interface packages Scenario: P is an interface package. A is a client bundle importing package P Both bundles B and C exporting P along with some implementations. OSGi allows either B or C only to export P as part of resolution. By importing as well as exporting P, either A or B can use/provide object of classes in P. Less number of versions of classes causes less number of conflicts. Manifest Snippet in bundles B and C Export-Package: com.glarimy.api; Version= Import-Pacakge: com.glarimy.api; Version=
23 Managing Exports Mandatory Export Attributes Bundle resolution is largely controlled by import declaration Only attributes mentioned in the Import are considered Scenario: Import matches the Export Declaration Export-Package: com.glarimy.dir.api;version= ;license= gts Import-Package: com.glarimy.dir.api;version=[1.0.0,2.0.0) Scenario: Import fails to match the Export Declaration Export-Package: com.glarimy.dir.api;version= ;license= gts ;mandatory:= license Import-Package: com.glarimy.dir.api;version=[1.0.0,2.0.0) Scenario: Import matches the Export Declaration Export-Package: com.glarimy.dir.api;version= ;license= gts ;mandatory:= license Import-Package: com.glarimy.dir.api;version=[1.0.0,2.0.0);license= gts
24 Managing Exports Include and Exclude Directives To specify a comma-delimited list of class names to exclude or include from the exported package, respectively. A class is only visible if it is matched by an entry in the include directive and not matched by any entry in the exclude directive. Wildcards are allowed Default value for Include is * (All) Default value of Exclude is empty string (None) Scenario: To export everything except Factory classes Export-Packages: com.glarimy.api;exclude:= *Factory Scenario: To export all Factory classes Export-Packages: com.glarimy.api;include:= *Factory
25 Managing Exports Duplicate Exports A given bundle can only see one version of a class Importing a package more than once is not allowed However, duplicate exports of the same package is allowed Scenario: Resolving for strict imports on and Export-Package: com.glarimy.api:version= 1.0.0,com.glarimy.api:Version= Scenario: Masking some of the packages for different imports Export-Package: com.glarimy.api; version="1.0.0"; exclude:="*factory", com.glarimy.api; version="1.0.0"; license= gts"; mandatory:= license"
26 Managing Imports Resolution Directive Can be mandatory for successfull resolution Can be optional for successful resolution Scenario: The logger is an optional library Import-Package: org.log4j.logger;version:2.3.0;resoltion:= Optional Dynamic Import Can be used when the package name is not known in advance Used as the last resort in resolution process Code must handle exceptions Scenario: Load the mysql driver classes dynamically DynamicImport-Package=com.mysql.jdbc.*;Version= 5.0.0
27 Activation Policy Bundle-ActivationPolicy: lazy Activates the bundle only when a class is loaded from it It remains in the started state until then Bundle-ActivationPolicy: lazy; include:="com.acme.service"
28 Requiring Bundles Require-Bundle Imports all packages exported from the other bundle Require-Bundle: A; bundle-version="[1.0.0,2.0.0)"; resolution:="optional" These packages are used only if Import-Package fails Enables splitting of bundles Splitting packages into more than one bundle PackageAdmin look for all Require-Bundles for imports Directive: reexport When bundle B requires bundle A with reexport visibility, any packages exported from A become visible to any bundles requiring B. Require-Bundle: A; bundle-version="[1.0.0,2.0.0)"; visibility:="reexport"
29 Working with Split Packages Avoid, if possible Always export split packages with a mandatory attribute to avoid unsuspecting bundles from using them. Use either Require-Bundle or Import-Package plus the mandatory attribute to access parts of the split packages. Bundle-SymbolicName: A Bundle-Version: Export-Package: org.foo.bar; version="2.0.0"; split="part1"; mandatory:="split To provide access to the whole package, create a facade bundle that requires the bundles containing the package parts and exports the package in question. Bundle-SymbolicName: C Bundle-Version: Require-Bundle: A; version="[2.0.0,2.1.0)", B; version="[2.0.0,2.1.0)" Export-Package: org.foo.bar; version="2.0.0"
30 Bundle Fragments Fragment-Host Bundle can be split into host & fragments This header specifies the single symbolic name of the host bundle on which the fragment depends, along with an optional bundle version range A host bundle is technically usable without fragments, but the fragments aren t usable without a host. Fragments are treated as optional host-bundle dependencies by the OSGi framework. But the host bundle isn t aware of its fragments Fragment-Host: org.foo.hostbundle; bundleversion="[1.0.0,1.1.0)"
31 Bundle Fragments Resolution The content and metadata from the fragments are conceptually merged with the host s content and metadata. Rather than giving each fragment its own class loader, the framework attaches the fragment content to the host s class loader. Two classes in the same package, but loaded by two different class loaders, can t access each others packageprivate members. By loading fragment classes with the host s class loader, the fragment classes are properly recombined to avoid this issue. This isn t true for split packages accessed through Require- Bundle.
32 OSGi with Karaf Bundle-RequiredExecutionEnvironment This header specifies a comma delimited list of supported execution environments. Bundle-RequiredExecutionEnvironment: J2SE- 1.4,J2SE-1.5,JavaSE-1.6 It s possible to install a bundle on a given execution environment even if it s not compatible with it, but it wouldnt be resolved unless its required execution environment matches the current one.
33 Manifest Headers Bundle-ActivationPolicy A marker to tell the OSGi runtime whether this bundle should be activated Bundle-Activator A class implementing the BundleActivator which will be called at bundle activation time and deactivation time. Bundle-Category A comma-separated list of category names. Bundle-ClassPath Where to load classes from from the bundle. Bundle-ContactAddress header is used to store a human-readable physical address of where to find out more information about the bundle.
34 Manifest Headers Bundle-Copyright May be used to store some text indicating the copyright owner of the bundle. Bundle-Description A header allows you to provide a human-readable textual description of the bundle. Bundle-DocURL Is a textual header, which can contain a URL (typically a website) that the user can find more information about the bundle. DynamicImport-Package Is not widely used. Its purpose is to allow a bundle to be wired up to packages that may not be known about in advance.
35 Manifest Headers Export-Package consumable by other bundles. A comma-separated list of fullyqualified packages, to be consumed by other bundles, often with a version attribute. If not specified, the version defaults so Bundle-Host Declares this bundle to be a Fragment, and specifies which parent bundle to attach to: Import-Package A header is used to declare dependencies at a package level from the bundle. The Bundle-ManifestVersion Is not mandatory, but if missing defaults to version 1. OSGi R4 introduced Bundle-ManifestVersion: 2, and so in practice, almost 2014, Glarimy. All rights reserved.
36 Manifest Headers Bundle-Name is a textual identifier for the bundle. Bundle-NativeCode contains information about native libraries that should be loaded by this bundle Require-Bundle header is used to express a dependency on a bundle's exports by reference to its symbolic name instead of via specific packages. Bundle-RequiredExceptionEnviornment presents a list of Execution Environments that must be present for this bundle to install.
37 Manifest Headers Service-Component Is a header used in Declarative Services to define many individual XML files (or patterns) which can be used to declare components. Bundle-SymbolicName Is used together with Bundle-Version to uniquely identify a bundle in an OSGi runtime. Bundle-Vendor Contains a human-readable textual description string which identifies the vendor of the bundle Bundle-Version Specifies the version of this bundle, in major.minor.micro.qualifier format. The default, if not specified, is assumed to be , Glarimy. All rights reserved.
38 The Final Resolution Requests for classes in java. packages are delegated to the parent class loader; search stops Requests for classes in an imported package are delegated to the exporting bundle; search stops Requests for classes in a package from a required bundle are delegated to the exporting bundle; searching continues with a failure The host bundle class path is searched for the class; searching continues with a failure Fragment bundle class paths are searched for the class in the order in which the fragments were installed. Searching stops if found but continues through all fragment class paths and then to the next step with a failure. If the package in question isn t exported or required, requests matching any dynamically import package are delegated to an exporting bundle if one is found. Searching stops with either a success or a failure
39 The Extender Pattern Some bundle in the application acts as the extender: it listens for bundles being started and/or stopped. When a bundle is started, the extender probes it to see if it s an extension bundle. The extender looks in the bundle s manifest (using Bundle.getHeaders()) or the bundle s content (using Bundle.getEntry()) for specific metadata it recognizes. If the bundle does contain an extension, the extension is described by the metadata. The extender reads the metadata and performs the necessary tasks on behalf of the extension bundle to integrate it into the application. The extender also listens for extension bundles to be stopped, in which case it removes the associated extensions from the application.
40 Services They are not proxies They are real objects Nullify the references for proper garbage collection Hold them only for using not for storing Only services of same version Services might not be visible though active Use Service Factory It creates an instance on demand Same instance to the same bundle Destroys once the bundle is done with it
41 Services objectclass Class name the service was registered under. Can t be changed after registration. service.id Unique registration sequence number, assigned by the framework when registering the service. service.pid Persistent (unique) service identifier service.ranking Ranking used when discovering services. Defaults to 0. Services are sorted by their ranking (highest first) and then by their ID (lowest first) service.description Description of the service service.vendor Name of the vendor providing the service 2014, Glarimy. All rights reserved.
42 Services Perform attribute matching: (name=john Smith) (age>=20) (age<=65) Perform fuzzy matching: (name~=johnsmith) Perform wildcard matching: (name=jo*n*smith*) Determine if an attribute exists: (name=*) Match all the contained clauses: (&(name=john Smith)(occupation=doctor)) Match at least one of the contained clauses: ( (name~=john Smith)(name~=Smith John)) Negate the contained clause: (!(name=john Smith))
43 OSGi Event Admin Provides a publish-subscribe model for handling events. Based on OSGi Event Admin Service Specification. Dispatches events between Event Publishers and Event Subscribers By interposing an event channel. Publishers and Subscribers have no direct knowledge of each other Communication can be synchronous and asynchronous. Mechanism org.osgi.service.event.event : topic and properties org.osgi.service.event.eventadmin: sendevent, postevent org.osgi.service.event.eventhandler: handleevent org.osgi.service.event.eventconstants: EventConstants.EVENT_TOPIC
44 OSGi Config Admin Makes it possible to write dynamically configurable services Configuration updates without restart Programmatic configuration Based on OSGi Config Admin Service Specification. Manages configuration of managed services By persisting configuration By updating the interested parties about changes in configuration Mechanism org.osgi.service.cm.managedservice updated(dicitionary) org.osgi.service.cm.configurationadmin update(dictionary) service.pid 2014, Glarimy. All rights reserved.
45 OSGi Blueprint Services Bean Provides components with the same basic semantics as Spring beans: Construction via reflective construction or static factory methods Support for singletons or prototype instances Injection of properties or constructor arguments Lifecycle callbacks for activation and deactivation Service Allows components to provide OSGi services Environment Provides components access to the OSGi framework and the Blueprint container, including the bundle context of the component
46 OSGi Blueprint Services Reference Gets a single service from the OSGi service registry for the component based on the service interface and an optional filter over the service properties Reference list Gets one or more services from the OSGi service registry for the component based on the service interface and an optional filter over the service properties
47 OSGi Blueprint Service
48 OSGi Blueprint Services Consuming Services <blueprint <bean id= directory" class= com.glarimy.glarimydirectory init-method="activate destroy-method="deactivate"/> <reference-list id="shape interface="org.foo.shape.simpleshape availability="optional"> <reference-listener bindmethod="addshape unbindmethod="removeshape ref="paintframe"/> </reference-list> <service id="window 2014, Glarimy. All rights reserved.
49 Testing OSGi Bundles Junit Runner Mocking with Mockito and etc., PAX-Exam Pax Exam is a testing toolkit that addresses the need for bundlelevel testing. When a Pax Exam test is run, it starts an OSGi framework, installs and starts a selection of bundles, and then makes an OSGi BundleContext Injects the BundleContext ServiceTracker helps in getting the service for assertions
50 Common Issues The identity of a class at execution time is not only associated with its fully qualified class name, it s also scoped by the class loader that loads it. The exact same class loaded by two different class loaders is loaded twice by the Java VM And is treated as two different and incompatible types. Casting an instance of one to the other, results in ClassCastException. When embedding and exporting common open source packages in a bundle, import them as well!
51 Class Loading Issues ClassNotFoundException Package-Private classes only visible to classes from the same class loader Often found in split-packages ClassCastException itemtracker.open(true) discovers all the services Results in incompatible services Missing/Mismatched Uses Class.forName()
52 Debugging in Karaf Use remote debugging. > bin\karaf.bat debug set KARAF_DEBUG=true Then, you can launch Karaf using the usual way: Last, inside your IDE, connect to the remote application (the default port to connect to is 5005). This option works fine when it is needed to debug a project deployed top of Apache Karaf.
53 Thank You Glarimy Technology Services Consulting & Corporate Training: Weekend Executive Workshops: Queries:
OSGi in Action. RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE CREATING MODULAR APPLICATIONS IN JAVA MANNING. Greenwich (74 w. long.
OSGi in Action CREATING MODULAR APPLICATIONS IN JAVA RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE 11 MANNING Greenwich (74 w. long.) contents foreword xiv preface xvii acknowledgments xix about
More informationModular Java Applications with Spring, dm Server and OSGi
Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction
More informationAgenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.
OSGi Overview freeman.fang@gmail.com ffang@apache.org Apache Servicemix Commiter/PMC member Apache Cxf Commiter/PMC member Apache Karaf Commiter/PMC member Apache Felix Commiter Agenda Why OSGi What is
More informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationEquinox Framework: How to get Hooked
Equinox Framework: How to get Hooked Thomas Watson, IBM Lotus Equinox Project co-lead Equinox Framework lead developer 2008 by IBM Corp; made available under the EPL v1.0 March 2008 Tutorial Agenda Equinox
More informationJava Modularity Support in OSGi R4. Richard S. Hall ApacheCon (San Diego) December 14 th, 2005
Java Modularity Support in OSGi R4 Richard S. Hall ApacheCon (San Diego) December 14 th, 2005 Modularity What is it? What is Modularity? (Desirable) property of a system, such that individual components
More informationRed Hat JBoss Fuse 6.1
Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications for OSGi containers Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications
More informationOSGi. Building and Managing Pluggable Applications
OSGi Building and Managing Pluggable Applications What A Mess Billing Service Orders Shipping Accounting Workflow Inventory Application From The View Of... Building monolithic applications is evil nuf
More informationOSGi in Action. Ada Diaconescu
OSGi in Action Karl Pauls Clement Escoffier karl.pauls@akquinet.de clement.escoffier@akquinet.de INF 346. Ada Diaconescu ada.diaconescu@telecom-paristech.fr 2 OSGi in Action - Clement Escoffier (clement.escoffier@akquinet.de)
More informationFirst Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009
First Steps in RCP Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany February 19th, 2009 Agenda» About us» RCP Architecture and Bundles» Extension Points and Views» Bundle Dependencies 2 Jan Blankenhorn»
More informationBeware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2
JUnit Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain Dependencies Debugging Surefire OSGi p2 Mac OS X Update Site Tycho Redistribution and other use of this material requires
More informationJSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity
JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity Richard S. Hall June 28 th, 2006 Agenda Modularity Modularity in Java Modularity in Java + OSGi technology Introduction to OSGi technology Apache
More informationCS5233 Components Models and Engineering
Prof. Dr. Th. Letschert CS5233 Components Models and Engineering (Komponententechnologien) Master of Science (Informatik) OSGI Bundles and Services Slides on OSGi are based on OSGi Alliance: OSGi Service
More informationEquinox OSGi: Pervasive Componentization
Equinox OSGi: Pervasive Componentization Thomas Watson Equinox Development Lead IBM Lotus Jeff McAffer, Eclipse RCP and Equinox Lead IBM Rational Software 10/3/2006 Why is Eclipse interesting? Extensible
More informationIntroduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX
Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject
More informationDeveloping Applications with Java EE 6 on WebLogic Server 12c
Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need
More informationPatterns and Best Practices for Dynamic OSGi Applications
Patterns and Best Practices for Dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationPatterns and Best Practices for dynamic OSGi Applications
Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationLiberate your components with OSGi services
Liberate your components with OSGi services One products journey through the Modularity Maturity Model Alasdair Nottingham (not@uk.ibm.com) WebSphere Application Server V8.5 Liberty Profile Development
More informationMuleSoft Certified Developer - Integration Professional Exam Preparation Guide
MuleSoft Certified Developer - Integration Professional Exam Preparation Guide Mule Runtime 3.8 June 24, 2016 1 Table of Contents PREPARATION GUIDE PURPOSE... 3 EXAM OBJECTIVE... 3 PREPARATION RECOMMENDATIONS...
More informationBreaking Apart the Monolith with Modularity and Microservices CON3127
Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice
More informationOSGi Best Practices. Emily
OSGi Best Practices Emily Jiang @IBM Use OSGi in the correct way... AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 3 Modularization in Java > Jars have no modularization characteristics No
More informationCO Java EE 7: Back-End Server Application Development
CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional
More informationModularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt
Modularity in Java With OSGi Alex Blewitt @alblue Docklands.LJC January 2016 Modularity in Java Modularity is Easy? Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity
More informationModularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr
Modularity in Java 9 Balázs Lájer Software Architect, GE HealthCare HOUG Oracle Java conference, 04. Apr. 2016. Modularity in Java before Java 9 Source: https://www.osgi.org/developer/architecture/ 2 MANIFEST.MF
More informationSAS 9.2 Foundation Services. Administrator s Guide
SAS 9.2 Foundation Services Administrator s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2009. SAS 9.2 Foundation Services: Administrator s Guide. Cary, NC:
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.
More informationSAS 9.4 Foundation Services: Administrator s Guide
SAS 9.4 Foundation Services: Administrator s Guide SAS Documentation July 18, 2017 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS 9.4 Foundation Services:
More informationOSGi Service Platform Enterprise Specification. The OSGi Alliance
OSGi Service Platform Enterprise Specification The OSGi Alliance Release 4, Version 4.2 March 2010 OSGi Allian ce Digitally signed by OSGi Alliance DN: cn=osgi Alliance, c=us, o=osgi Alliance Reason: I
More informationOracle Fusion Middleware
Oracle Fusion Middleware Developing Extensions for Oracle JDeveloper 12c (12.1.2) E23013-01 June 2013 Documentation for Oracle JDeveloper users that describes how to develop downloadable extensions to
More informationJava J Course Outline
JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The
More informationJava EE 6: Develop Business Components with JMS & EJBs
Oracle University Contact Us: + 38516306373 Java EE 6: Develop Business Components with JMS & EJBs Duration: 4 Days What you will learn This Java EE 6: Develop Business Components with JMS & EJBs training
More informationOracle Fusion Middleware Developing Extensions for Oracle JDeveloper. 12c ( )
Oracle Fusion Middleware Developing Extensions for Oracle JDeveloper 12c (12.2.1.3.0) E67105-01 August 2017 Oracle Fusion Middleware Developing Extensions for Oracle JDeveloper, 12c (12.2.1.3.0) E67105-01
More informationMIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2
1 SUMMARY 1 INTRODUCTION... 4 2 HOW TO UPGRADE FROM DIGITAL EXPERIENCE MANAGER 7.1 TO 7.2... 5 2.1 Code base review and potential impacts... 5 2.2 Deployment scripts/procedure review... 5 2.3 Test environment
More informationIntroduction to OSGi. Marcel Offermans. luminis
Introduction to OSGi Marcel Offermans luminis Introduction Marcel Offermans marcel.offermans@luminis.nl Luminis Arnhem Apeldoorn Enschede IT solutions from idea to implementation with and for customers:
More informationDeveloping Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008
Developing Java Applications with OSGi Capital District Java Developers Network Michael P. Redlich March 20, My Background (1) Degree B.S. in Computer Science Rutgers University (go Scarlet Knights!) Petrochemical
More information1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008
01234567890123456789012345678901234567890123456789012345678901234567890123456789 1. Introduction 1.1. Project/Component Working Name: Modularization of GlassFish using OSGi 1.2. Name(s) and e-mail address
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.
More informationOSGi Subsystems from theory to practice Glyn Normington. Eclipse Virgo Project Lead SpringSource/VMware
from theory to practice Glyn Normington Eclipse Virgo Project Lead SpringSource/VMware 1 Software rots 2 modularity helps 3 but... 4 A clean design 5 without enforcement 6 works fine for a while 7 then
More informationSpring Interview Questions
Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About
More informationBEAWebLogic. Event Server. WebLogic Event Server Reference
BEAWebLogic Event Server WebLogic Event Server Reference Version 2.0 July 2007 Contents 1. Introduction and Roadmap Document Scope and Audience............................................. 1-1 WebLogic
More informationApache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007
Apache Felix A Standard Plugin Model for Apache Richard S. Hall Atlanta, Georgia U.S.A. November 13th, 2007 Agenda Why OSGi technology? OSGi technology overview Apache Felix status Example application
More informationIntroduction to Spring Framework: Hibernate, Spring MVC & REST
Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationJava Training For Six Weeks
Java Training For Six Weeks Java is a set of several computer software and specifications developed by Sun Microsystems, later acquired by Oracle Corporation that provides a system for developing application
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More informationActive Endpoints. ActiveVOS Platform Architecture Active Endpoints
Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use
More informationUnderstanding ClassLoaders WebSphere 5.1, 6.0 and 6.1
IBM Software Group Understanding ClassLoaders WebSphere 5.1, 6.0 and 6.1 Speaker: Paul Van Norman WebSphere Support Technical Exchange Agenda Classloader overview Classloader delegation mode & policies
More informationIBM WebSphere Application Server 8. Java EE 6 Feature Packs
IBM WebSphere Application Server 8 EE 6 Feature Packs Thomas Bussière- bussiere@fr.ibm.com IT Architect Business Solution Center La Gaude, France Enabling Developers to Start With Open Source/Community
More information2 Apache Wink Building Blocks
2 Apache Wink Building Blocks Apache Wink Building Block Basics In order to take full advantage of Apache Wink, a basic understanding of the building blocks that comprise it and their functional integration
More informationOracle Complex Event Processing
Oracle Complex Event Processing Reference Guide Release 3.0 July 2008 Alpha/Beta Draft Oracle Complex Event Processing Reference Guide, Release 3.0 Copyright 2007, 2008, Oracle and/or its affiliates. All
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: CDN$3275 *Prices are subject to GST/HST Course Description: This course provides a comprehensive introduction to JPA
More informationRed Hat JBoss Fuse 6.1
Red Hat JBoss Fuse 6.1 Management Console User Guide Managing your environment from the Web Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Management Console User Guide Managing your environment from
More informationVision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1
Umair Javed 2004 J2EE Based Distributed Application Architecture Overview Lecture - 2 Distributed Software Systems Development Why J2EE? Vision of J2EE An open standard Umbrella for anything Java-related
More informationEurope on a Disk Geodata Processing with Eclipse and OSGi. Harald Wellmann 10 Nov 2008
Europe on a Disk Geodata Processing with Eclipse and OSGi Harald Wellmann 10 Nov 2008 Overview Past and Present of Navigation Data Processing Anaconda: The Future Our usage of OSGi and Eclipse 2008 Harman
More informationSPRING MOCK TEST SPRING MOCK TEST I
http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at
More informationJava Enterprise Edition
Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:
More informationPro JPA 2. Mastering the Java Persistence API. Apress* Mike Keith and Merrick Schnicariol
Pro JPA 2 Mastering the Java Persistence API Mike Keith and Merrick Schnicariol Apress* Gootents at a Glance g V Contents... ; v Foreword _ ^ Afooyt the Author XXj About the Technical Reviewer.. *....
More informationFast Track to EJB 3.0 and the JPA Using JBoss
Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity
More informationClass Dependency Analyzer CDA Developer Guide
CDA Developer Guide Version 1.4 Copyright 2007-2017 MDCS Manfred Duchrow Consulting & Software Author: Manfred Duchrow Table of Contents: 1 Introduction 3 2 Extension Mechanism 3 1.1. Prerequisites 3 1.2.
More informationConfiguration for Microprofile. Mark Struberg, Emily Jiang, John D. Ament
Configuration for Microprofile Mark Struberg, Emily Jiang, John D. Ament 1.2, December 21, 2017 Table of Contents Microprofile Config.........................................................................
More informationZero Turnaround in Java Jevgeni Kabanov
Zero Turnaround in Java Jevgeni Kabanov ZeroTurnaround Lead Aranea and Squill Project Co-Founder Turnaround cycle Make a change Check the change Build, deploy, wait DEMO: SPRING PETCLINIC TURNAROUND Outline
More informationOSGi Remote Services with SCA using Apache Tuscany. Raymond Feng
OSGi Remote s with SCA using Apache Tuscany Raymond Feng rfeng@apache.org Agenda What are OSGi remote services? A sample scenario: Distributed Calculator Representing OSGi entities using SCA Predefined
More informationModularity for Java and How OSGi Can Help
Modularity for Java and How OSGi Can Help Richard Hall To cite this version: Richard Hall. Modularity for Java and How OSGi Can Help. présentation invitée à DECOR04. 2004. HAL Id: hal-00003299
More informationEnhydra Shark. What is Enhydra Shark? Table of Contents
Table of Contents What is Enhydra Shark?... 1 StartingShark...2 ConfiguringShark...2 Setting "enginename" parameter...3 Setting kernel behaviour in the case of unsatisfied split conditions... 4 Setting
More informationOSGi. Building LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Background
More informationThis course is intended for Java programmers who wish to write programs using many of the advanced Java features.
COURSE DESCRIPTION: Advanced Java is a comprehensive study of many advanced Java topics. These include assertions, collection classes, searching and sorting, regular expressions, logging, bit manipulation,
More informationSpringSource dm Server User Guide
SpringSource dm Server User Guide Rob Harrop Paul Kuzan Sam Brannen Damilola Senbanjo Paul Harris Christopher Frost Ben Hale Glyn Normington Juliet Shackell 2.0.5.RELEASE Copyright SpringSource Inc., 2009
More informationCHAPTER 20. Integrating Code Libraries Plug-ins as JARs
CHAPTER 20 Integrating Code Libraries Even the most Eclipse-biased developer would concede that the majority of Java libraries out there are not shipped as plug-ins. This chapter discusses the integration
More informationECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ
ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ 1. What is Oracle proposing in EclipseLink, the Eclipse Persistence Platform Project? Oracle is proposing the creation of the Eclipse Persistence Platform
More informationBuilding LinkedIn's Next Generation Architecture with OSGI
OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Yan
More information/ / JAVA TRAINING
www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.
More informationPeter Kriens OSGi Evangelist/Director. OSGi R4.3 // Next Release Overview
Peter Kriens OSGi Evangelist/Director OSGi R4.3 // Next Release Overview Agenda Framework & ServiceTracker update to Java 5 generics A replacement for Package Admin and Start Level A Shell standard Managing
More informationCreating an application with the Virgo Web Server
Creating an application with the Virgo Web Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson Abstract 2.1.0.CI-10 Warning Please note
More informationTHIS IS ONLY SAMPLE RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE Name: xxxxxx
Name: xxxxxx Email ID: xxxxxx Ph: xxxxxx Summary: Over 7 years of experience in object oriented programming, design and development of Multi-Tier distributed, Enterprise applications using Java and J2EE
More informationJava- EE Web Application Development with Enterprise JavaBeans and Web Services
Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven
More informationCORE JAVA 1. INTRODUCATION
CORE JAVA 1. INTRODUCATION 1. Installation & Hello World Development 2. Path environment variable d option 3. Local variables & pass by value 4. Unary operators 5. Basics on Methods 6. Static variable
More informationJava EE 6: Develop Web Applications with JSF
Oracle University Contact Us: +966 1 1 2739 894 Java EE 6: Develop Web Applications with JSF Duration: 4 Days What you will learn JavaServer Faces technology, the server-side component framework designed
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: +966 1 1 2739 894 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn This course is aimed at developers who want to build Java
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationJigsaw and OSGi: What the Heck Happens Now?
Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi
More informationAppDev StudioTM 3.2 SAS. Migration Guide
SAS Migration Guide AppDev StudioTM 3.2 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2006. SAS AppDev TM Studio 3.2: Migration Guide. Cary, NC: SAS Institute Inc.
More informationStruts: Struts 1.x. Introduction. Enterprise Application
Struts: Introduction Enterprise Application System logical layers a) Presentation layer b) Business processing layer c) Data Storage and access layer System Architecture a) 1-tier Architecture b) 2-tier
More informationJAVA. 1. Introduction to JAVA
JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords
More informationZero Turnaround in Java Watching the logs roll by Jevgeni Kabanov
Zero Turnaround in Java Watching the logs roll by Jevgeni Kabanov Founder of ZeroTurnaround Aranea and Squill Project Co-Founder Speaker, Scientist, Engineer, Entrepreneur, Turnaround cycle Make a change
More informationCO Java EE 6: Develop Database Applications with JPA
CO-77746 Java EE 6: Develop Database Applications with JPA Summary Duration 4 Days Audience Database Developers, Java EE Developers Level Professional Technology Java EE 6 Delivery Method Instructor-led
More informationAdobe Experience Manager
Adobe Experience Manager Extend and Customize Adobe Experience Manager v6.x Student Guide: Volume 1 Contents CHAPTER ONE: BASICS OF THE ARCHITECTURAL STACK... 10 What is Adobe Experience Manager?... 10
More informationNetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2
More informationLeverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8
Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8 Author: Ying Liu cdlliuy@cn.ibm.com Date: June,29 2011 2010 IBM Corporation THE INFORMATION
More informationUsing the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway
Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway Applying Application Delivery Technology to Web Services Overview The Cisco ACE XML Gateway is the newest
More informationOracle Fusion Middleware 11g: Build Applications with ADF Accel
Oracle University Contact Us: +352.4911.3329 Oracle Fusion Middleware 11g: Build Applications with ADF Accel Duration: 5 Days What you will learn This is a bundled course comprising of Oracle Fusion Middleware
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn Java EE is a standard, robust,
More informationTraining topic: OCPJP (Oracle certified professional Java programmer) or SCJP (Sun certified Java programmer) Content and Objectives
Training topic: OCPJP (Oracle certified professional Java programmer) or SCJP (Sun certified Java programmer) Content and Objectives 1 Table of content TABLE OF CONTENT... 2 1. ABOUT OCPJP SCJP... 4 2.
More informationJVA-163. Enterprise JavaBeans
JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),
More informationJ2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.
J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using
More informationApache Wink Developer Guide. Draft Version. (This document is still under construction)
Apache Wink Developer Guide Software Version: 1.0 Draft Version (This document is still under construction) Document Release Date: [August 2009] Software Release Date: [August 2009] Apache Wink Developer
More informationCreating an application with dm Server
Creating an application with dm Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson 2.0.0.RC1 Abstract Spring application programmers are
More information"Charting the Course... Mastering EJB 3.0 Applications. Course Summary
Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching
More information