Suche senden
Hochladen
Using OSGi in Nakamura
•
Als PPT, PDF herunterladen
•
0 gefällt mir
•
1,472 views
Carl Hall
Folgen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 21
Jetzt herunterladen
Empfohlen
Coherence 12.1.2 Live Events
Coherence 12.1.2 Live Events
harvraja
A portlet-API based approach for application integration
A portlet-API based approach for application integration
whabicht
Introduction to Everit Component Registry - B Zsoldos
Introduction to Everit Component Registry - B Zsoldos
mfrancis
Durable functions
Durable functions
명신 김
Dependency injection - the right way
Dependency injection - the right way
Thibaud Desodt
Martin Anderson - threads v actors
Martin Anderson - threads v actors
bloodredsun
Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)
Paco de la Cruz
ATG pipelines
ATG pipelines
Kate Semizhon
Empfohlen
Coherence 12.1.2 Live Events
Coherence 12.1.2 Live Events
harvraja
A portlet-API based approach for application integration
A portlet-API based approach for application integration
whabicht
Introduction to Everit Component Registry - B Zsoldos
Introduction to Everit Component Registry - B Zsoldos
mfrancis
Durable functions
Durable functions
명신 김
Dependency injection - the right way
Dependency injection - the right way
Thibaud Desodt
Martin Anderson - threads v actors
Martin Anderson - threads v actors
bloodredsun
Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)
Paco de la Cruz
ATG pipelines
ATG pipelines
Kate Semizhon
Sagas Middleware Architecture
Sagas Middleware Architecture
Mateusz Bosek
Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30)
Paco de la Cruz
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Paco de la Cruz
Workshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & Redux
Visual Engineering
Azure Durable Functions
Azure Durable Functions
Karthikeyan VK
Chapter 4.2
Chapter 4.2
sotlsoc
Developing JSR 286 Portlets
Developing JSR 286 Portlets
Cris Holdorph
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
varien
CC111 Example
CC111 Example
MichaelCevallos
React + Redux. Best practices
React + Redux. Best practices
Clickky
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
Dev_Events
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
David Gómez García
Repetition is bad, repetition is bad.
Repetition is bad, repetition is bad.
Michele Giacobazzi
What is new in java 8 concurrency
What is new in java 8 concurrency
kshanth2101
Why erlang
Why erlang
Doug Goldie
S3CA Samples
S3CA Samples
guestc404b0
UX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 Approach
Carl Hall
Man in the Mirror
Man in the Mirror
mavericbryan
Confidence Instantly
Confidence Instantly
mavericbryan
Mark Colthorpe Show
Mark Colthorpe Show
Mark_Colthorpe
þágufallssýki
þágufallssýki
Brekki
20 Points For Quality And Pi V2.3
20 Points For Quality And Pi V2.3
TimKasse
Weitere ähnliche Inhalte
Was ist angesagt?
Sagas Middleware Architecture
Sagas Middleware Architecture
Mateusz Bosek
Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30)
Paco de la Cruz
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Paco de la Cruz
Workshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & Redux
Visual Engineering
Azure Durable Functions
Azure Durable Functions
Karthikeyan VK
Chapter 4.2
Chapter 4.2
sotlsoc
Developing JSR 286 Portlets
Developing JSR 286 Portlets
Cris Holdorph
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
varien
CC111 Example
CC111 Example
MichaelCevallos
React + Redux. Best practices
React + Redux. Best practices
Clickky
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
Dev_Events
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
David Gómez García
Repetition is bad, repetition is bad.
Repetition is bad, repetition is bad.
Michele Giacobazzi
What is new in java 8 concurrency
What is new in java 8 concurrency
kshanth2101
Was ist angesagt?
(14)
Sagas Middleware Architecture
Sagas Middleware Architecture
Azure Durable Functions (2019-03-30)
Azure Durable Functions (2019-03-30)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Workshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & Redux
Azure Durable Functions
Azure Durable Functions
Chapter 4.2
Chapter 4.2
Developing JSR 286 Portlets
Developing JSR 286 Portlets
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
CC111 Example
CC111 Example
React + Redux. Best practices
React + Redux. Best practices
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Repetition is bad, repetition is bad.
Repetition is bad, repetition is bad.
What is new in java 8 concurrency
What is new in java 8 concurrency
Andere mochten auch
Why erlang
Why erlang
Doug Goldie
S3CA Samples
S3CA Samples
guestc404b0
UX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 Approach
Carl Hall
Man in the Mirror
Man in the Mirror
mavericbryan
Confidence Instantly
Confidence Instantly
mavericbryan
Mark Colthorpe Show
Mark Colthorpe Show
Mark_Colthorpe
þágufallssýki
þágufallssýki
Brekki
20 Points For Quality And Pi V2.3
20 Points For Quality And Pi V2.3
TimKasse
Andere mochten auch
(8)
Why erlang
Why erlang
S3CA Samples
S3CA Samples
UX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 Approach
Man in the Mirror
Man in the Mirror
Confidence Instantly
Confidence Instantly
Mark Colthorpe Show
Mark Colthorpe Show
þágufallssýki
þágufallssýki
20 Points For Quality And Pi V2.3
20 Points For Quality And Pi V2.3
Ähnlich wie Using OSGi in Nakamura
Pavlo Zhdanov "Java and Swift: How to Create Applications for Automotive Head...
Pavlo Zhdanov "Java and Swift: How to Create Applications for Automotive Head...
LogeekNightUkraine
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
Appster1
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
Appster1
Job Managment Portlet
Job Managment Portlet
riround
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)
Gunith Devasurendra
Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi style
Felix Meschberger
What's Coming in Spring 3.0
What's Coming in Spring 3.0
Matt Raible
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
Simo Ahava
AngularJs-training
AngularJs-training
Pratchaya Suputsopon
The Web on OSGi: Here's How
The Web on OSGi: Here's How
mrdon
Bring the fun back to java
Bring the fun back to java
ciklum_ods
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
Felix Meschberger
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
Felix Meschberger
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
mfrancis
Struts 2 + Spring
Struts 2 + Spring
Bryan Hsueh
Introducing Struts 2
Introducing Struts 2
wiradikusuma
A gently introduction to AngularJS
A gently introduction to AngularJS
Gregor Woiwode
May 2010 - RestEasy
May 2010 - RestEasy
JBug Italy
RESTEasy
RESTEasy
Massimiliano Dessì
Amplify를 통해 클라우드 기반 모바일 앱 개발하기 - 박태성(IDEASAM) :: AWS Community Day 2020
Amplify를 통해 클라우드 기반 모바일 앱 개발하기 - 박태성(IDEASAM) :: AWS Community Day 2020
AWSKRUG - AWS한국사용자모임
Ähnlich wie Using OSGi in Nakamura
(20)
Pavlo Zhdanov "Java and Swift: How to Create Applications for Automotive Head...
Pavlo Zhdanov "Java and Swift: How to Create Applications for Automotive Head...
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
Job Managment Portlet
Job Managment Portlet
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)
Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi style
What's Coming in Spring 3.0
What's Coming in Spring 3.0
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
AngularJs-training
AngularJs-training
The Web on OSGi: Here's How
The Web on OSGi: Here's How
Bring the fun back to java
Bring the fun back to java
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
Struts 2 + Spring
Struts 2 + Spring
Introducing Struts 2
Introducing Struts 2
A gently introduction to AngularJS
A gently introduction to AngularJS
May 2010 - RestEasy
May 2010 - RestEasy
RESTEasy
RESTEasy
Amplify를 통해 클라우드 기반 모바일 앱 개발하기 - 박태성(IDEASAM) :: AWS Community Day 2020
Amplify를 통해 클라우드 기반 모바일 앱 개발하기 - 박태성(IDEASAM) :: AWS Community Day 2020
Kürzlich hochgeladen
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Boston Institute of Analytics
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Kürzlich hochgeladen
(20)
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Using OSGi in Nakamura
1.
Using OSGi in
Nakamura Carl Hall [email_address] Hallway Technologies 15 June 2010
2.
3.
4.
Bundles 11th
Sakai Conference - June 15-17, 2010
5.
6.
Bundle Activation import
org.osgi.framework.BundleActivator ; import org.osgi.framework.BundleContext ; public class Activator implements BundleActivator { public void start ( BundleContext context ) { System . out . println ( "Starting: Hello World" ) ; } public void stop ( BundleContext context ) { System . out . println ( "Stopping: Goodbye Cruel World" ) ; } } Source: Wikipedia 11th Sakai Conference - June 15-17, 2010
7.
Components 11th
Sakai Conference - June 15-17, 2010
8.
9.
Service Example @Component
@Service public class LdapAuthenticationPlugin implements AuthenticationPlugin { @Property(value = "o=sakai") static final String LDAP_BASE_DN = "sakai.auth.ldap.baseDn"; private String baseDn; @Reference private LdapConnectionManager connMgr; @Activate protected void activate(Map<?, ?> props) { baseDn = OsgiUtil.toString(props.get(LDAP_BASE_DN), "o=sakai"); } } 11th Sakai Conference - June 15-17, 2010
10.
Component Execution @Activate
protected void activate(ComponentContext ctx) {} protected void activate(BundleContext ctx) {} protected void activate(Map<?, ?> props) {} @Modified protected void modified(...) {} @Deactivate protected void deactivate(...) {} protected void deactivate(int reasonCode) {} 11th Sakai Conference - June 15-17, 2010
11.
12.
Dependency Injection
11th Sakai Conference - June 15-17, 2010
13.
14.
References public class
GetAReference { @Reference ConnectionManager connMgr; } ----------------------------------------------------------------- @Component @Service public class LdapConnectionManager implements ConnectionManager { } @Component @Service public class JdbcConnectionManager implements ConnectionManager { } 11th Sakai Conference - June 15-17, 2010
15.
Single Instance Reference
// OPTIONAL_UNARY == "0..1" // MANDATORY_UNARY == "1..1" @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY, policy = ReferencePolicy.STATIC) ConnectionManager connMgr; protected void bindConnMgr(ConnectionManager mgr) { this.connMgr = mgr; } protected void unbindConnMgr(ConnectionManager mgr) { this.connMgr = null; } 11th Sakai Conference - June 15-17, 2010
16.
Multiple Instance Reference
// OPTIONAL_MULTIPLE == "0..n" // MANDATORY_MULTIPLE == "1..n" @Reference(cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC, referenceInterface = ConnectionManager.class, bind = "bindManager", unbind = "unbindManager") List<ConnectionManager> managers; // be sure to instantiate this protected void bindManager(ConnectionManager mgr) { managers.add(mgr); } protected void unbindManager(ConnectionManager mgr) { managers.remove(mgr); } 11th Sakai Conference - June 15-17, 2010
17.
Reference Target @Reference
PooledConnectionManager connMgr; //boo! @Reference(target = "(type=pooled)") ConnectionManager connMgr; //yay! ----------------------------------------------------------------- @Component @Service @Property(name = "type", value = "simple") public class SimpleCM implements ConnectionManager {} @Component @Service @Property(name = "type", value = "pooled") public class PooledCM implements ConnectionManager {} 11th Sakai Conference - June 15-17, 2010
18.
Configuration 11th
Sakai Conference - June 15-17, 2010
19.
Felix Admin Console
11th Sakai Conference - June 15-17, 2010
20.
New Service Configuration
@Reference ConfigurationAdmin cfgAdmin; @Activate protected void activate() { Configuration cfg = cfgAdmin.createFactoryConfiguration("some.factory.pid"); Hashtable props = new Hashtable(); props.put("key1", "val1"); props.put("key2", "val2"); config.update(props); } 11th Sakai Conference - June 15-17, 2010
21.
Configure A Reference
@Reference ConnectionManager connMgr; ----------------------------------------------------------------- @Reference ConfigurationAdmin cfgAdmin; @Activate protected void activate() { Configuration cfg = cfgAdmin.createFactoryConfiguration("some.factory.pid"); Hashtable props = new Hashtable(); props.put("connMgr.target", "(type=pooled)"); config.update(props); } 11th Sakai Conference - June 15-17, 2010
Jetzt herunterladen