Suche senden
Hochladen
Using OSGi in Nakamura
•
Als PPT, PDF herunterladen
•
0 gefällt mir
•
1,470 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
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
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
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
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
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Kürzlich hochgeladen
(20)
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
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...
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
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