SlideShare a Scribd company logo
1 of 46
Introduction to Everit Component 
Registry 
Model 
Balázs Zsoldos
Blueprint 
+ 
JPA 
+ 
JSF 
Declarative 
Services 
+ 
Modularized 
Persistence 
+ 
JSF 
ECM 
+ 
Modularized 
Persistence 
+ 
JSF 
ECM 
+ 
Modularized 
Persistence 
+ 
Modularized 
Web 
Declarative 
Services 
+ 
JPA 
+ 
JSF
Blueprint 
iPojo 
Declarative Services 
Everit Component Model
Blueprint 
iPojo 
DS 
ECM 
Monoholitic + Magic 
Christmas tree + Magic 
KISS 
KISS
Blueprint 
iPojo 
DS 
ECM 
~ 630Kb 
~ 800 Kb 
~ 260 Kb 
< 200 Kb 
Core with dependencies + Proxy impl, 
without annotations, without ASM 
With dependencies 
including ASM
Declarative 
Services 
Everit 
Component 
Model
Felix SCR 
Capability Collector 
ECM Metadata 
ECM Component 
Annotation Set 
Annotation Processor 
Annotation Set 
Annotation → Metadata 
Extender
Annotation 
XML 
Annotation 
processor 
Development time 
Annotation 
XML 
Declarative Services 
Runtime
Annotation 
Metadata 
ECM 
Component 
container 
Annotation 
Metadata 
ECM 
Component 
container 
Runtime
public class TestActivator implements BundleActivator { 
private ComponentContainerInstance<MyComponent> componentContainer; 
public TestActivator() { 
// Initialize component container 
} 
public void start(BundleContext bundleContext) throws Exception { 
componentContainer.open(); 
} 
public void stop(BundleContext context) throws Exception { 
componentContainer.close(); 
} 
}
Component 
container 
ComponentContainer 
Registers OSGi service 
OR 
ComponentContainer + [MetatypeProvider] + ManagedService 
OR 
ComponentContainer + [MetatypeProvider] + ManagedServiceFactory
public interface ComponentContainer<C> { 
ComponentRevision[] getComponentRevisions(); 
ComponentMetadata getComponentMetadata(); 
BundleContext getBundleContext(); 
}
Resource Wiring Wire Capability 
ComponentRevision 
ComponentWiring 
ComponentWire 
BundleCapability 
ServiceCapability 
OSGi R5 
ECM
ConfigAdmin Component 
container 
Configuration 
Configuration 
Configuration 
Component 
Component 
Component
ManagedService 
ManagedServiceFactory
Configuration References 
Component 
Service Service
@StringAttribute 
private String stringAttribute; 
public void setStringAttribute(String stringAttribute) { 
this.stringAttribute = stringAttribute; 
} 
private String stringAttribute; 
@StringAttribute 
public void setStringAttribute(String stringAttribute) { 
this.stringAttribute = stringAttribute; 
} 
@StringAttribute(dynamic = true) 
public void setStringAttribute(String[] stringAttribute) { 
// Do something with the information 
}
@Component(configurationPolicy = ConfigurationPolicy.FACTORY) 
@StringAttributes({ 
@StringAttribute(attributeId = "name"), 
@StringAttribute(attributeId = "motherName", 
setter = "setMotherName") }) 
@IntegerAttributes({ 
@IntegerAttribute(attributeId = "age", optional = true), 
@IntegerAttribute(attributeId = "dimensions", 
multiple = ThreeStateBoolean.TRUE, 
setter = "setDimensions(int[])") 
}) 
@AttributeOrder({ "name", "age", "dimensions", "motherName" }) 
@Service 
public class ServletContextComponent { 
... 
}
Configuration References 
Component 
Service Service
Reference types 
OSGi Service 
BundleCapability
Targeting references 
logService.target: (implementation=felix) 
servlet.clause: loginServlet;filter:=(service.pid=...) 
servlet.clause: ...;init_param1=value1;init_param2=value2
Multiplicity 
@ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) 
private Filter[] filters; 
@ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) 
public void setServlet(ServiceCapabilityHolder[] servletHolders) {} 
@ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) 
public void setListeners(EventListener[] listeners) {}
Mutiplicity
Delayed component 
Declarative Services Everit Component 
Model 
The activation of the component is 
delayed until the service is 
requested. 
No
Optionality 
Declarative Services Everit Component 
Model 
Component is satisfied even if there 
is no OSGi service available for the 
reference 
No configuration must be provided 
for the reference / attribute. 
If there is no configuration for a 
reference, no OSGi service is 
picked up.
Optionality
Whiteboard extender ServletContextComponent 
URL Redirect Filter 
Authentication Filter 
Login Servlet 
User Mgmt Servlet 
URL Redirect Filter 
Authentication Filter 
Login Servlet 
User Mgmt Servlet
Whiteboard ECM 
Configuration on Service side Configuration on Container 
and / or on Service side 
Services are extended as 
soon as they are available 
Services are extended as 
soon as all necessary services 
are available 
Ordering based on 
service.ranking 
Ordering based on the 
configuration of container
public enum ComponentState { 
STOPPED, 
UNSATISFIED, 
STARTING, 
ACTIVE, 
STOPPING, 
FAILED, 
FAILED_PERMANENT 
} 
// activate(), Thread 
// deactivate(), Thread 
// Throwable, restart on configuration change 
// Throwable, never restart
Dynamism 
Declarative Services Everit Component 
Model 
If the configuration is updated, the 
component is not restarted. 
If a reference is dynamic, the OSGi 
services can come and go based on 
the cardinality of the reference. 
If any of the dynamic attributes / 
references are updated, the 
component is not restarted 
automatically. 
If an OSGi service is that is wired to 
a reference is unregistered, but 
there is another one that can be 
wired, the component is not 
restarted.
Component failure and restart 
● Failure cause 
– Issue in the component definition (permanent) 
– Exception in activate method (temporary) 
– Fail called programmatically 
● Restart 
– A non-dynamic attribute or reference is changed 
– Restart called programmatically
public interface ComponentContext<C> { 
/** 
* Causes the component to step into the {@link ComponentState#FAILED} or 
* {@link ComponentState#FAILED_PERMANENT} state. 
* 
* @param e 
* The cause of the failure. 
* @param permanent 
* Whether the failure should be permanent or not. In case of 
* permanent failure, the component will not be restarted until 
* the bundle that registered the component is updated. 
*/ 
void fail(Throwable e, boolean permanent); 
/** 
* Causes the restarting of the component. The old instance will be dropped 
* and a new one will be instantiated. 
*/ 
void restart(); 
// Other methods 
}
@Activate 
public void activate(ComponentContext<Component> componentContext) { 
// A funny StackOverflowError 
componentContext.restart(); 
} 
@Activate 
public void activate(ComponentContext<Component> componentContext) { 
// Always failing component 
Exception e = new Exception("I am an evil failure"); 
componentContext.fail(e, true); 
}
Configuration References 
Component 
Service Service
@Component 
@Service 
public class TestComponent { 
private ServiceRegistration<String> serviceRegistration; 
@Activate 
public void activate(ComponentContext<TestComponent> context) { 
Hashtable<String, Object> properties = 
new Hashtable<String, Object>(); 
serviceRegistration = context.registerService( 
String.class, "Hello world", properties); 
} 
@Deactivate 
public void deactivate() { 
serviceRegistration.unregister(); 
} 
}
Metatype extensions 
AttributeDefinition 
AttributeMetadataHolder 
AttributeDefinitionImpl 
Metatype 
Spec. 
ECM
Metatype extensions 
● String attribute 
– multiLine (textArea) 
● Service Reference (String type) 
– service interface 
● BundleCapability reference (String type) 
– namespace
Webconsole plugins
ThreadViewer
Configuration
Components view 
● Shows the state of the components 
● Shows the wirings 
● Link to the configuration 
● Link to the ThreadViewer plugin if the component 
is in STARTING or STOPPING state 
● Link to the Component Graph plugin 
● No enable / disable, restart, etc.
Component Graph 
● Visual representation of OSGi services and 
Components 
● Only the selected component and its direct 
wirings are shown 
● Walking via the wirings
Jetty components 
● Server Component 
● ServletContext Component 
● Connector components (Http, SSL, ...)
No magic, no Christmas tree 
@Transactional 
public long saveUser(String firstName, String lastName) { 
public long saveUser(String firstName, String lastName) { 
Objects.requireNonNull(firstName); 
Objects.requireNonNull(lastName); 
return transactionHelper.required(() -> { 
// Logic that should be implemented 
return 0l; 
}); 
} 
Objects.requireNonNull(firstName); 
Objects.requireNonNull(lastName); 
// Logic that should be implemented 
return 0l; 
}
Capability-collector: https://github.com/everit-org/osgi-capability-collector 
ECM Annotation: https://github.com/everit-org/ecm-annotation 
ECM Method util: https://github.com/everit-org/ecm-util-method 
ECM Metadata: https://github.com/everit-org/ecm-util-method 
ECM Annotation → Metadata: https://github.com/everit-org/ecm-annotation-metadatabuilder 
ECM Component: https://github.com/everit-org/ecm-component 
Cookbook: http://cookbook.everit.org/ 
Everit Components: http://www.everit.org/components.html 
Twitter: @EveritOrg

More Related Content

What's hot

Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Arun Gupta
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS IntroductionWorkshop 19: ReactJS Introduction
Workshop 19: ReactJS IntroductionVisual Engineering
 
Web注入+http漏洞等描述
Web注入+http漏洞等描述Web注入+http漏洞等描述
Web注入+http漏洞等描述fangjiafu
 
Spring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationSpring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationsourabh aggarwal
 
Hibernate Developer Reference
Hibernate Developer ReferenceHibernate Developer Reference
Hibernate Developer ReferenceMuthuselvam RS
 
Spring 4 final xtr_presentation
Spring 4 final xtr_presentationSpring 4 final xtr_presentation
Spring 4 final xtr_presentationsourabh aggarwal
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5IndicThreads
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the TrenchesXavier Noria
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Michał Orman
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsCarol McDonald
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?gedoplan
 
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...Edureka!
 
Lecture 3: Servlets - Session Management
Lecture 3:  Servlets - Session ManagementLecture 3:  Servlets - Session Management
Lecture 3: Servlets - Session ManagementFahad Golra
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)ukdpe
 
Spray - Build RESTfull services in scala
Spray - Build RESTfull services in scalaSpray - Build RESTfull services in scala
Spray - Build RESTfull services in scalaSandeep Purohit
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 

What's hot (19)

Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS IntroductionWorkshop 19: ReactJS Introduction
Workshop 19: ReactJS Introduction
 
Web注入+http漏洞等描述
Web注入+http漏洞等描述Web注入+http漏洞等描述
Web注入+http漏洞等描述
 
Spring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentationSpring 4 advanced final_xtr_presentation
Spring 4 advanced final_xtr_presentation
 
Hibernate Developer Reference
Hibernate Developer ReferenceHibernate Developer Reference
Hibernate Developer Reference
 
Spring 4 final xtr_presentation
Spring 4 final xtr_presentationSpring 4 final xtr_presentation
Spring 4 final xtr_presentation
 
Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5Indic threads pune12-java ee 7 platformsimplification html5
Indic threads pune12-java ee 7 platformsimplification html5
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the Trenches
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1
 
Backbone js
Backbone jsBackbone js
Backbone js
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?
 
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...
React ES5 to ES6 | React ES5 vs ES6 | React Tutorial for Beginners | React on...
 
Lecture 3: Servlets - Session Management
Lecture 3:  Servlets - Session ManagementLecture 3:  Servlets - Session Management
Lecture 3: Servlets - Session Management
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)
 
Spray - Build RESTfull services in scala
Spray - Build RESTfull services in scalaSpray - Build RESTfull services in scala
Spray - Build RESTfull services in scala
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Angular2 + rxjs
Angular2 + rxjsAngular2 + rxjs
Angular2 + rxjs
 
Java EE and Glassfish
Java EE and GlassfishJava EE and Glassfish
Java EE and Glassfish
 

Viewers also liked

Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...mfrancis
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMmfrancis
 
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...mfrancis
 
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...mfrancis
 
OSGi - Four Years and Forward - J Barr
OSGi - Four Years and Forward - J BarrOSGi - Four Years and Forward - J Barr
OSGi - Four Years and Forward - J Barrmfrancis
 
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, CesarOSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, Cesarmfrancis
 
Opensugar - Enabling pervasive services - P Scokaert
Opensugar - Enabling pervasive services - P ScokaertOpensugar - Enabling pervasive services - P Scokaert
Opensugar - Enabling pervasive services - P Scokaertmfrancis
 
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...mfrancis
 
Delivering Services Using an OSGi Gateway - C Nycander
Delivering Services Using an OSGi Gateway - C NycanderDelivering Services Using an OSGi Gateway - C Nycander
Delivering Services Using an OSGi Gateway - C Nycandermfrancis
 
Using OSGi for the Realization of Complex Building Management Systems - Peter...
Using OSGi for the Realization of Complex Building Management Systems - Peter...Using OSGi for the Realization of Complex Building Management Systems - Peter...
Using OSGi for the Realization of Complex Building Management Systems - Peter...mfrancis
 
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.mfrancis
 
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigital
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigitalOSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigital
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigitalmfrancis
 
Why Have The Specifications Been Based On Java™ Technology? - P Kriens
Why Have The Specifications Been Based On Java™ Technology? - P KriensWhy Have The Specifications Been Based On Java™ Technology? - P Kriens
Why Have The Specifications Been Based On Java™ Technology? - P Kriensmfrancis
 
Massive Enterprise Product Migration to OSG - Raymond Auge
Massive Enterprise Product Migration to OSG - Raymond AugeMassive Enterprise Product Migration to OSG - Raymond Auge
Massive Enterprise Product Migration to OSG - Raymond Augemfrancis
 
E2 Home - P Ljunggren
E2 Home - P LjunggrenE2 Home - P Ljunggren
E2 Home - P Ljunggrenmfrancis
 
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...mfrancis
 
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...mfrancis
 
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...mfrancis
 
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...mfrancis
 
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...mfrancis
 

Viewers also liked (20)

Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
 
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
 
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...
Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav...
 
OSGi - Four Years and Forward - J Barr
OSGi - Four Years and Forward - J BarrOSGi - Four Years and Forward - J Barr
OSGi - Four Years and Forward - J Barr
 
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, CesarOSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
 
Opensugar - Enabling pervasive services - P Scokaert
Opensugar - Enabling pervasive services - P ScokaertOpensugar - Enabling pervasive services - P Scokaert
Opensugar - Enabling pervasive services - P Scokaert
 
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...
OSGi Technology Based In-vehicle Computing Platforms- The Embedded Systems Pe...
 
Delivering Services Using an OSGi Gateway - C Nycander
Delivering Services Using an OSGi Gateway - C NycanderDelivering Services Using an OSGi Gateway - C Nycander
Delivering Services Using an OSGi Gateway - C Nycander
 
Using OSGi for the Realization of Complex Building Management Systems - Peter...
Using OSGi for the Realization of Complex Building Management Systems - Peter...Using OSGi for the Realization of Complex Building Management Systems - Peter...
Using OSGi for the Realization of Complex Building Management Systems - Peter...
 
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.
OSGi Users’ Forum Korea - Haejun Yi, ProSyst Technology Korea, Inc.
 
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigital
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigitalOSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigital
OSGi Residential Gateways Experience in Spain - Andrés Manso, HogarDigital
 
Why Have The Specifications Been Based On Java™ Technology? - P Kriens
Why Have The Specifications Been Based On Java™ Technology? - P KriensWhy Have The Specifications Been Based On Java™ Technology? - P Kriens
Why Have The Specifications Been Based On Java™ Technology? - P Kriens
 
Massive Enterprise Product Migration to OSG - Raymond Auge
Massive Enterprise Product Migration to OSG - Raymond AugeMassive Enterprise Product Migration to OSG - Raymond Auge
Massive Enterprise Product Migration to OSG - Raymond Auge
 
E2 Home - P Ljunggren
E2 Home - P LjunggrenE2 Home - P Ljunggren
E2 Home - P Ljunggren
 
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...
OSGi Technology as it relates to Java, Smartcards, and the Automotive Industr...
 
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
 
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...
Making the Home Gateway an Operator Control Point - Andreas Sayegh, Deutsche ...
 
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...
Keynote - OSGi Service Enabler - Peter Möckel, Managing Director T-Labs, Deu...
 
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...
Available OSGi Service Platforms - What distinguishes ProSyst’s offering? - D...
 

Similar to Introduction to Everit Component Registry - B Zsoldos

Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleDeclarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleFelix Meschberger
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleFelix Meschberger
 
Wcf data services
Wcf data servicesWcf data services
Wcf data servicesEyal Vardi
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Michael Plöd
 
SCR Annotations for Fun and Profit
SCR Annotations for Fun and ProfitSCR Annotations for Fun and Profit
SCR Annotations for Fun and ProfitMike Pfaff
 
Spring 3: What's New
Spring 3: What's NewSpring 3: What's New
Spring 3: What's NewTed Pennings
 
Advance java session 5
Advance java session 5Advance java session 5
Advance java session 5Smita B Kumar
 
Configuration beyond Java EE 8
Configuration beyond Java EE 8Configuration beyond Java EE 8
Configuration beyond Java EE 8Anatole Tresch
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5Mahmoud Ouf
 
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...Amazon Web Services
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-finalRuslan Meshenberg
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Entity framework and how to use it
Entity framework and how to use itEntity framework and how to use it
Entity framework and how to use itnspyre_net
 
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdfdokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdfAppster1
 
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdfdokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdfAppster1
 
OpenDMS - the first 2 weeks
OpenDMS - the first 2 weeksOpenDMS - the first 2 weeks
OpenDMS - the first 2 weeksJPC Hanson
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Gunith Devasurendra
 

Similar to Introduction to Everit Component Registry - B Zsoldos (20)

Declarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi styleDeclarative Services Dependency Injection OSGi style
Declarative Services Dependency Injection OSGi style
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
 
SCR Annotations for Fun and Profit
SCR Annotations for Fun and ProfitSCR Annotations for Fun and Profit
SCR Annotations for Fun and Profit
 
Spring 3: What's New
Spring 3: What's NewSpring 3: What's New
Spring 3: What's New
 
Advance java session 5
Advance java session 5Advance java session 5
Advance java session 5
 
Intake 37 ef2
Intake 37 ef2Intake 37 ef2
Intake 37 ef2
 
JavaEE Spring Seam
JavaEE Spring SeamJavaEE Spring Seam
JavaEE Spring Seam
 
Asp.NET MVC
Asp.NET MVCAsp.NET MVC
Asp.NET MVC
 
Configuration beyond Java EE 8
Configuration beyond Java EE 8Configuration beyond Java EE 8
Configuration beyond Java EE 8
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5
 
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...
(DEV309) From Asgard to Zuul: How Netflix’s Proven Open Source Tools Can Help...
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-final
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Entity framework and how to use it
Entity framework and how to use itEntity framework and how to use it
Entity framework and how to use it
 
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdfdokumen.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.pdfdokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
 
OpenDMS - the first 2 weeks
OpenDMS - the first 2 weeksOpenDMS - the first 2 weeks
OpenDMS - the first 2 weeks
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Introduction to Everit Component Registry - B Zsoldos

  • 1. Introduction to Everit Component Registry Model Balázs Zsoldos
  • 2. Blueprint + JPA + JSF Declarative Services + Modularized Persistence + JSF ECM + Modularized Persistence + JSF ECM + Modularized Persistence + Modularized Web Declarative Services + JPA + JSF
  • 3. Blueprint iPojo Declarative Services Everit Component Model
  • 4. Blueprint iPojo DS ECM Monoholitic + Magic Christmas tree + Magic KISS KISS
  • 5. Blueprint iPojo DS ECM ~ 630Kb ~ 800 Kb ~ 260 Kb < 200 Kb Core with dependencies + Proxy impl, without annotations, without ASM With dependencies including ASM
  • 6. Declarative Services Everit Component Model
  • 7. Felix SCR Capability Collector ECM Metadata ECM Component Annotation Set Annotation Processor Annotation Set Annotation → Metadata Extender
  • 8. Annotation XML Annotation processor Development time Annotation XML Declarative Services Runtime
  • 9. Annotation Metadata ECM Component container Annotation Metadata ECM Component container Runtime
  • 10. public class TestActivator implements BundleActivator { private ComponentContainerInstance<MyComponent> componentContainer; public TestActivator() { // Initialize component container } public void start(BundleContext bundleContext) throws Exception { componentContainer.open(); } public void stop(BundleContext context) throws Exception { componentContainer.close(); } }
  • 11. Component container ComponentContainer Registers OSGi service OR ComponentContainer + [MetatypeProvider] + ManagedService OR ComponentContainer + [MetatypeProvider] + ManagedServiceFactory
  • 12. public interface ComponentContainer<C> { ComponentRevision[] getComponentRevisions(); ComponentMetadata getComponentMetadata(); BundleContext getBundleContext(); }
  • 13. Resource Wiring Wire Capability ComponentRevision ComponentWiring ComponentWire BundleCapability ServiceCapability OSGi R5 ECM
  • 14. ConfigAdmin Component container Configuration Configuration Configuration Component Component Component
  • 17. @StringAttribute private String stringAttribute; public void setStringAttribute(String stringAttribute) { this.stringAttribute = stringAttribute; } private String stringAttribute; @StringAttribute public void setStringAttribute(String stringAttribute) { this.stringAttribute = stringAttribute; } @StringAttribute(dynamic = true) public void setStringAttribute(String[] stringAttribute) { // Do something with the information }
  • 18. @Component(configurationPolicy = ConfigurationPolicy.FACTORY) @StringAttributes({ @StringAttribute(attributeId = "name"), @StringAttribute(attributeId = "motherName", setter = "setMotherName") }) @IntegerAttributes({ @IntegerAttribute(attributeId = "age", optional = true), @IntegerAttribute(attributeId = "dimensions", multiple = ThreeStateBoolean.TRUE, setter = "setDimensions(int[])") }) @AttributeOrder({ "name", "age", "dimensions", "motherName" }) @Service public class ServletContextComponent { ... }
  • 20. Reference types OSGi Service BundleCapability
  • 21. Targeting references logService.target: (implementation=felix) servlet.clause: loginServlet;filter:=(service.pid=...) servlet.clause: ...;init_param1=value1;init_param2=value2
  • 22. Multiplicity @ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) private Filter[] filters; @ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) public void setServlet(ServiceCapabilityHolder[] servletHolders) {} @ServiceRef(configurationType = ReferenceConfigurationType.CLAUSE) public void setListeners(EventListener[] listeners) {}
  • 24. Delayed component Declarative Services Everit Component Model The activation of the component is delayed until the service is requested. No
  • 25. Optionality Declarative Services Everit Component Model Component is satisfied even if there is no OSGi service available for the reference No configuration must be provided for the reference / attribute. If there is no configuration for a reference, no OSGi service is picked up.
  • 27. Whiteboard extender ServletContextComponent URL Redirect Filter Authentication Filter Login Servlet User Mgmt Servlet URL Redirect Filter Authentication Filter Login Servlet User Mgmt Servlet
  • 28. Whiteboard ECM Configuration on Service side Configuration on Container and / or on Service side Services are extended as soon as they are available Services are extended as soon as all necessary services are available Ordering based on service.ranking Ordering based on the configuration of container
  • 29. public enum ComponentState { STOPPED, UNSATISFIED, STARTING, ACTIVE, STOPPING, FAILED, FAILED_PERMANENT } // activate(), Thread // deactivate(), Thread // Throwable, restart on configuration change // Throwable, never restart
  • 30. Dynamism Declarative Services Everit Component Model If the configuration is updated, the component is not restarted. If a reference is dynamic, the OSGi services can come and go based on the cardinality of the reference. If any of the dynamic attributes / references are updated, the component is not restarted automatically. If an OSGi service is that is wired to a reference is unregistered, but there is another one that can be wired, the component is not restarted.
  • 31. Component failure and restart ● Failure cause – Issue in the component definition (permanent) – Exception in activate method (temporary) – Fail called programmatically ● Restart – A non-dynamic attribute or reference is changed – Restart called programmatically
  • 32. public interface ComponentContext<C> { /** * Causes the component to step into the {@link ComponentState#FAILED} or * {@link ComponentState#FAILED_PERMANENT} state. * * @param e * The cause of the failure. * @param permanent * Whether the failure should be permanent or not. In case of * permanent failure, the component will not be restarted until * the bundle that registered the component is updated. */ void fail(Throwable e, boolean permanent); /** * Causes the restarting of the component. The old instance will be dropped * and a new one will be instantiated. */ void restart(); // Other methods }
  • 33. @Activate public void activate(ComponentContext<Component> componentContext) { // A funny StackOverflowError componentContext.restart(); } @Activate public void activate(ComponentContext<Component> componentContext) { // Always failing component Exception e = new Exception("I am an evil failure"); componentContext.fail(e, true); }
  • 35. @Component @Service public class TestComponent { private ServiceRegistration<String> serviceRegistration; @Activate public void activate(ComponentContext<TestComponent> context) { Hashtable<String, Object> properties = new Hashtable<String, Object>(); serviceRegistration = context.registerService( String.class, "Hello world", properties); } @Deactivate public void deactivate() { serviceRegistration.unregister(); } }
  • 36. Metatype extensions AttributeDefinition AttributeMetadataHolder AttributeDefinitionImpl Metatype Spec. ECM
  • 37. Metatype extensions ● String attribute – multiLine (textArea) ● Service Reference (String type) – service interface ● BundleCapability reference (String type) – namespace
  • 38.
  • 42. Components view ● Shows the state of the components ● Shows the wirings ● Link to the configuration ● Link to the ThreadViewer plugin if the component is in STARTING or STOPPING state ● Link to the Component Graph plugin ● No enable / disable, restart, etc.
  • 43. Component Graph ● Visual representation of OSGi services and Components ● Only the selected component and its direct wirings are shown ● Walking via the wirings
  • 44. Jetty components ● Server Component ● ServletContext Component ● Connector components (Http, SSL, ...)
  • 45. No magic, no Christmas tree @Transactional public long saveUser(String firstName, String lastName) { public long saveUser(String firstName, String lastName) { Objects.requireNonNull(firstName); Objects.requireNonNull(lastName); return transactionHelper.required(() -> { // Logic that should be implemented return 0l; }); } Objects.requireNonNull(firstName); Objects.requireNonNull(lastName); // Logic that should be implemented return 0l; }
  • 46. Capability-collector: https://github.com/everit-org/osgi-capability-collector ECM Annotation: https://github.com/everit-org/ecm-annotation ECM Method util: https://github.com/everit-org/ecm-util-method ECM Metadata: https://github.com/everit-org/ecm-util-method ECM Annotation → Metadata: https://github.com/everit-org/ecm-annotation-metadatabuilder ECM Component: https://github.com/everit-org/ecm-component Cookbook: http://cookbook.everit.org/ Everit Components: http://www.everit.org/components.html Twitter: @EveritOrg

Editor's Notes

  1. Development time / running time
  2. Let&amp;apos;s see the lifecycle of the component - When a configuration and references are available, service(SS) are registered
  3. How to use annotations Note that for Strings the StringAttribute is used. Type safety.
  4. One annotation for each type Attribute Order
  5. BundleCapability: Namespace, stateMask
  6. Like buying a new car without starting the engine ever
  7. And the textarea
  8. Release will be tweeted out