Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
This presentation on Git will help you understand version control system, distributed version control system, what is Git, Git vs GitHub, Git architecture, fork & clone, collaborators, branch, merge & rebase, various Git commands and at the end you will also see a demo on Git. Git is a version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for software development, but it can be used to keep track of changes in any files. This course enables you to learn and solve versioning problems with your files and codes. Now let us get started and understand what is Git along with a demo.
Below topics are explained in this Git presentation:
1. Version control system
2. Distributed version control system
3. What is Git?
4. Git vs GitHub
5. Git architecture
6. Fork and clone
7. Collaborators
8. Branch, merge and rebase
9. Commands in Git
10. Git demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at: https://www.simplilearn.com/
[Agenda]
*토크쇼 주제: Cloud Native를 위한 컨테이너 플랫폼 구현과 활용 이야기
1. 시장 및 기술동향 소개 & Container & Kubernetes 소개
2. Red Hat OpenShift를 왜 써야 할까요?
3. OpenShift Infra 구성 방안은 어떻게 되나요?
4. OpenShift와 Kubernetes의 주요 차이점은 무엇일까요?
5. 완전한 오픈소스 기반 OpenShift로 PaaS를 빠르게 구축이 가능 하나요?
6.컨테이너플랫폼의 운영을 효율적으로 하기위한 표준화에는 어떤 것이 필요할까요?
7. Red Hat OpenShift를 이용하여 기존의 시스템을 마이그레이션 하는 방법은 무엇인가요?
8. 개발자와 운영자가 일을 수월하게 할 수 있도록 도움을 준다고 하는데 어떠한 부분인가요?
9. Red Hat OpenShift 구축 성공 사례가 있나요?
Business Process Execution Language (ou BPEL, prononcé « bipeul », ou « bipèl »), est un langage de programmation destiné à l'exécution des procédures d'entreprise. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
This presentation on Git will help you understand version control system, distributed version control system, what is Git, Git vs GitHub, Git architecture, fork & clone, collaborators, branch, merge & rebase, various Git commands and at the end you will also see a demo on Git. Git is a version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for software development, but it can be used to keep track of changes in any files. This course enables you to learn and solve versioning problems with your files and codes. Now let us get started and understand what is Git along with a demo.
Below topics are explained in this Git presentation:
1. Version control system
2. Distributed version control system
3. What is Git?
4. Git vs GitHub
5. Git architecture
6. Fork and clone
7. Collaborators
8. Branch, merge and rebase
9. Commands in Git
10. Git demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at: https://www.simplilearn.com/
[Agenda]
*토크쇼 주제: Cloud Native를 위한 컨테이너 플랫폼 구현과 활용 이야기
1. 시장 및 기술동향 소개 & Container & Kubernetes 소개
2. Red Hat OpenShift를 왜 써야 할까요?
3. OpenShift Infra 구성 방안은 어떻게 되나요?
4. OpenShift와 Kubernetes의 주요 차이점은 무엇일까요?
5. 완전한 오픈소스 기반 OpenShift로 PaaS를 빠르게 구축이 가능 하나요?
6.컨테이너플랫폼의 운영을 효율적으로 하기위한 표준화에는 어떤 것이 필요할까요?
7. Red Hat OpenShift를 이용하여 기존의 시스템을 마이그레이션 하는 방법은 무엇인가요?
8. 개발자와 운영자가 일을 수월하게 할 수 있도록 도움을 준다고 하는데 어떠한 부분인가요?
9. Red Hat OpenShift 구축 성공 사례가 있나요?
Business Process Execution Language (ou BPEL, prononcé « bipeul », ou « bipèl »), est un langage de programmation destiné à l'exécution des procédures d'entreprise. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...DoKC
Link: https://youtu.be/cegd3Exg05w
https://go.dok.community/slack
https://dok.community/
Gabriele Bartolini - Vice President/CTO of Cloud Native and Kubernetes, EDB
ABSTRACT OF THE TALK
Imagine this: you have a virtual infrastructure based on Kubernetes, made up of virtual data centers, possibly spread across multiple Kubernetes clusters and regions. Your infrastructure could even be hosted on premises or on different cloud service providers. Infrastructure as Code is a requirement. You’ve been tasked to run Postgres databases, alongside your applications.
The good news is that you can leverage a fully open source stack with Kubernetes, PostgreSQL and the CloudNativePG operator, and deploy your Postgres database in the same way you deploy applications.
Join me in this webinar to discover the key role that you have to make this succeed, starting from day 0 through day 2 operations.
I’ll share some examples and best practices for running Postgres databases in Kubernetes, before peeking at the new features we are developing for the months to come.
The talk is introduction to OSGi specification and its implementations. It summarizes corner stones of OSGi (bundles, services, components) and describes a technical background of OSGi implementations on a simple example.
Red Hat multi-cluster management & what's new in OpenShiftKangaroot
More and more organisations are not only using container platforms but starting to run multiple clusters of containers. And with that comes new headaches of maintaining, securing, and updating those multiple clusters. In this session we'll look into how Red Hat has solved multi-cluster management, covering cluster lifecycle, app lifecycle, and governance/risk/compliance.
Slide deck of the presentation done at the Hactoberfest 2020 Singapore event. The talk and demo showed GitHub Actions in practice with examples of Github Superlinter, SonarCloud integration and CI CD to Azure Kubernetes service.
The recording of the session is available on YouTube
https://youtu.be/sFvCj62wmWU?t=6732&WT.mc_id=AZ-MVP-5003170
A Comprehensive Introduction to Kubernetes. This slide deck serves as the lecture portion of a full-day Workshop covering the architecture, concepts and components of Kubernetes. For the interactive portion, please see the tutorials here:
https://github.com/mrbobbytables/k8s-intro-tutorials
This presentation is an introduction to Ansible, an IT automation tool which can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates.
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQAware GmbH
Jfokus 2023, Februar 2023, Stockholm, Schweden, Mario-Leander Reimer (@LeanderReimer, CTO @QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Continuous delivery is everywhere. Really?! Many teams still struggle to deliver well-tested product increments on a regular basis. Usually with the same old excuse: the (non)-functional tests are too complex and too expensive to implement thoroughly. But exactly the opposite is the case! In this talk, we briefly review the importance of early and regular testing of cloud-native applications and explain why monolithic CI pipelines are a dead end. We then show how easy it is to run integration, performance, security and acceptance tests continuously using Testkube directly on your Kubernetes cluster, fully integrated with a GitOps approach.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Presentation on the utility of git/GitHub for making scientific research findable, accessible, interoperable, and reusable.
Also includes a tutorial to the most essential features of git/GitHub.
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesikmfrancis
OSGi Community Event 2014
Abstract:
Experience level: Beginner
Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed.
This session gives an overview over Apache Karaf, how to manage and configure Apache Karaf and how to use the comprehensive command shell that Karaf provides. By the example of a simple pet clinic application we will demonstrate how to build and deploy a web application on Apache Karaf. This talk will introduce the different deployment mechanisms available in Karaf and how to deploy bundles from the file system, command shell or via a maven repository. You will learn how to manage external dependencies via features, use the Karaf maven plugin to create features and build and configure persistence bundles for Apache Karaf. We will further give an overview, how to use Karaf in a cloud environment and how to use the Apache Cellar project to build up an Apache Karaf cluster.
Speaker Bios:
Torsten Frank
Torsten Frank is an entrepreneur and healthcare IT expert with international experience and a strong background in product and business development. He is CEO and founder of medisite, a company that delivers highly specialized healthcare IT solutions to their customers for more than 10 years. medisite is a winner of the Federal Ministry for Economic Affairs and Energy (BMWi) “Trusted Cloud” technology competition, geared toward secure cloud computing for SMEs and the public sector. Torsten Frank holds a medical degree from the Hannover Medical School, where he also has worked for several years as a physician at the Department of Cardiothoracic Surgery after completing his medical studies in Hannover, Germany and Chicago, USA.
Alexander Grzesik
Alexander is the head of development of medisite Systemhaus GmbH and responsible for the development of the the PaaS+ cloud platform the clinical information system m.life and software architect for the TRESOR Project.
He has 15 years of work experience in medical Software development as team leader and software architect.
Expert for Software Architecture, OSGi, Java and Java EE.
Alexander has been a speaker at several conferences including EclipseCon Europe and the OpenShift Community Day.
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...DoKC
Link: https://youtu.be/cegd3Exg05w
https://go.dok.community/slack
https://dok.community/
Gabriele Bartolini - Vice President/CTO of Cloud Native and Kubernetes, EDB
ABSTRACT OF THE TALK
Imagine this: you have a virtual infrastructure based on Kubernetes, made up of virtual data centers, possibly spread across multiple Kubernetes clusters and regions. Your infrastructure could even be hosted on premises or on different cloud service providers. Infrastructure as Code is a requirement. You’ve been tasked to run Postgres databases, alongside your applications.
The good news is that you can leverage a fully open source stack with Kubernetes, PostgreSQL and the CloudNativePG operator, and deploy your Postgres database in the same way you deploy applications.
Join me in this webinar to discover the key role that you have to make this succeed, starting from day 0 through day 2 operations.
I’ll share some examples and best practices for running Postgres databases in Kubernetes, before peeking at the new features we are developing for the months to come.
The talk is introduction to OSGi specification and its implementations. It summarizes corner stones of OSGi (bundles, services, components) and describes a technical background of OSGi implementations on a simple example.
Red Hat multi-cluster management & what's new in OpenShiftKangaroot
More and more organisations are not only using container platforms but starting to run multiple clusters of containers. And with that comes new headaches of maintaining, securing, and updating those multiple clusters. In this session we'll look into how Red Hat has solved multi-cluster management, covering cluster lifecycle, app lifecycle, and governance/risk/compliance.
Slide deck of the presentation done at the Hactoberfest 2020 Singapore event. The talk and demo showed GitHub Actions in practice with examples of Github Superlinter, SonarCloud integration and CI CD to Azure Kubernetes service.
The recording of the session is available on YouTube
https://youtu.be/sFvCj62wmWU?t=6732&WT.mc_id=AZ-MVP-5003170
A Comprehensive Introduction to Kubernetes. This slide deck serves as the lecture portion of a full-day Workshop covering the architecture, concepts and components of Kubernetes. For the interactive portion, please see the tutorials here:
https://github.com/mrbobbytables/k8s-intro-tutorials
This presentation is an introduction to Ansible, an IT automation tool which can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates.
Quality in a Square. K8s-native Quality Assurance of Microservices with TestkubeQAware GmbH
Jfokus 2023, Februar 2023, Stockholm, Schweden, Mario-Leander Reimer (@LeanderReimer, CTO @QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Continuous delivery is everywhere. Really?! Many teams still struggle to deliver well-tested product increments on a regular basis. Usually with the same old excuse: the (non)-functional tests are too complex and too expensive to implement thoroughly. But exactly the opposite is the case! In this talk, we briefly review the importance of early and regular testing of cloud-native applications and explain why monolithic CI pipelines are a dead end. We then show how easy it is to run integration, performance, security and acceptance tests continuously using Testkube directly on your Kubernetes cluster, fully integrated with a GitOps approach.
Github - Git Training Slides: FoundationsLee Hanxue
Slide deck with detailed step breakdown that explains how git works, together with simple examples that you can try out yourself. Slides originated from http://teach.github.com/articles/course-slides/
Author: https://twitter.com/matthewmccull
Presentation on the utility of git/GitHub for making scientific research findable, accessible, interoperable, and reusable.
Also includes a tutorial to the most essential features of git/GitHub.
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesikmfrancis
OSGi Community Event 2014
Abstract:
Experience level: Beginner
Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed.
This session gives an overview over Apache Karaf, how to manage and configure Apache Karaf and how to use the comprehensive command shell that Karaf provides. By the example of a simple pet clinic application we will demonstrate how to build and deploy a web application on Apache Karaf. This talk will introduce the different deployment mechanisms available in Karaf and how to deploy bundles from the file system, command shell or via a maven repository. You will learn how to manage external dependencies via features, use the Karaf maven plugin to create features and build and configure persistence bundles for Apache Karaf. We will further give an overview, how to use Karaf in a cloud environment and how to use the Apache Cellar project to build up an Apache Karaf cluster.
Speaker Bios:
Torsten Frank
Torsten Frank is an entrepreneur and healthcare IT expert with international experience and a strong background in product and business development. He is CEO and founder of medisite, a company that delivers highly specialized healthcare IT solutions to their customers for more than 10 years. medisite is a winner of the Federal Ministry for Economic Affairs and Energy (BMWi) “Trusted Cloud” technology competition, geared toward secure cloud computing for SMEs and the public sector. Torsten Frank holds a medical degree from the Hannover Medical School, where he also has worked for several years as a physician at the Department of Cardiothoracic Surgery after completing his medical studies in Hannover, Germany and Chicago, USA.
Alexander Grzesik
Alexander is the head of development of medisite Systemhaus GmbH and responsible for the development of the the PaaS+ cloud platform the clinical information system m.life and software architect for the TRESOR Project.
He has 15 years of work experience in medical Software development as team leader and software architect.
Expert for Software Architecture, OSGi, Java and Java EE.
Alexander has been a speaker at several conferences including EclipseCon Europe and the OpenShift Community Day.
The ultimate dependency manager shoot out - X Uiterlinden & S Makmfrancis
Working with micro-services is arguably the best part of OSGi development. However, everyone agrees that tracking service dependencies with the bare-bones OSGi API is not ideal. So, you pick one of the available dependency managers: either Declarative Services, Felix Dependency manager, Blueprint or iPojo. But how do you pick the right one?
Easy! After this shoot-out you’ll know all about the performance, usability and other aspects of the existing dependency managers. We show the strengths and weaknesses of the implementations side-by-side. How usable is the API? What about performance, does it scale beyond trivial amounts of services? Does it matter which OSGi framework you run the dependency manager in? Make up your mind with the facts presented in this session.
Bio:
Xander Uiterlinden
Xander Uiterlinden is a software developer working at Luminis Technologies. He has a broad experience in architecture, design and engineering of modular applications. Over the past years he as been working as a lead software architect on an enterprise grade business process application leveraging OSGi and several open source software components. He is a committer at the Apache Felix project contributing to the Apache Felix Dependency manager component and is also involved in several other smaller open source projects.
Sander Mak
After getting his master's degree in Software Technology, Sander became a software developer/architect. Currently he works as Senior Software Engineer for Luminis Technologies, specializing in modular Java and JavaScript development. Additionally, data analysis and machine learning are part of his ever growing list of interests. Sander loves sharing knowledge, for example through his blog (at http://branchandbound.net) and by writing for the Dutch Java Magazine. He speaks regularly at various international developer conferences (including JavaOne, J-Fall, JEEConf), sharing his passion for Java, alternative JVM languages and related technologies.
a system called natural language interface which transforms user's natural language question into SPARQL query
find related papers here https://sites.google.com/site/fadhlinams81/publication
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
OSGi Community Event 2016 Presentation by David Bosschaert (Adobe) & Carsten Ziegeler (Adobe)
The OSGi expert groups are working on the next big release. Learn in this session about the various new specification efforts going on and how they will make your developer life easier. The new specifications range from configuration handling, object conversion, JAX-RS, distributed eventing, to cloud and IoT.
Prezentace z přednášky na 6. ročníku setkání Mezi Světy 2012. Nejznámější z fiktivních Necronomiconů je Simonův Necronomicon. Ačkoliv se nejedná o ryzí Necronomiconskou praxi, ale jde spíše o praxi pohansko-magickou, považuji ho jako znalec Necronomiconu a magik za esenciální.
Krystalická hrůza H. P. Lovecrafta ve filmuBloxxterMagick
H. P. Lovecraft nebyl nikdy příliš dobrý spisovatel. Ale pokud byl v něčem excelentní, tak to bylo navození atmosféry kosmické hrůzy a děsu. Přednáška o něm samotném, mýtu Cthulhu i o jeho zfilmovaných dílech (včetně ukázek) a projekce fenomenálního celovečerního filmu, který vás uvede do světa Azthotha, Yog-Sothotha nebo Nyrlathotepa.
Since the 1960s the industry has been rediscovering the benefits of modularity. Modularity comes in many different guises, from small software objects to deployed systems. Although many approaches to modularity exhibit common characteristics, a number also have unique benefits. This talk will introduce the concepts of modularity, Microservices and OSGi, and compare Microservices and OSGi against a Modularity Maturity Model (a measure of modularity capability and completeness). It will describe how the similarity in characteristics between Microservices and OSGi make these technologies an ideal pairing. Finally, it will cover some of the standard technologies to choose for OSGi technology-based Microservices and new technologies on the horizon.
The semantic technology enhances big data advancements by allowing sophisticated analysis of texts. Through the Linked Data technology, tremendous amount of information can be connected. However, this inherits ambiguity when it needs to be manipulated for certain purpose like natural language interface, semantic search and question answering. There are limited works which address ambiguity in semantic search. This paper introduces a technique based on self-adaptive disambiguation which utilizes the possible concept annotations of terms in the natural language queries. This will allow users to compose query in natural language and receive accurate answers without having to master the formal syntax of the semantic query language.
Magické myšlení aneb jak magie ovlivňuje náš životBloxxterMagick
Celý náš život je prodchnut rituály, tradicemi našich prabáb a pradědů nás ovlivňují více než si myslíme. Bojíme se poznání za závojem a schováme se za vědu. Přitom právě ta nám dodává potvrzení magického pohledu na svět a jeho fungování.
Filosofie, matka všech věd je odsouzena do knihoven a myslí profesorů. Přitom je tou nejcennější pomocnicí v našem praktickém životě. Pojďte se podívat spolu se mnou, že magické myšlení není vzdálené od našeho běžného života, přijďte poznat, že iracionálno není děsivé a magie není jen ve filmech a knihách.
Pojďte se seznámit s čarodějnictvím a pohanstvím současnosti.
Lektor: Pavel Ungr (Cody), známý jako popularizátor magie a pohanství, více než 2 roky vedl PFI a je zakladatelem magické skupiny Blasphemion, autor množství textů o magii a pohanství, majitel blogu o pohanství a magii Bloxxter (http://bloxxter.info/), spoluzakladatel projektu Divinorum a jeden z pořadatelů komunitního setkání magiků, pohanů a mystiků Mezi Světy (http://mezisvety.divinorum.cz/).
Building production-quality apps with Node.jsmattpardee
First presented at DevConf.ru, this presentation makes the case for Node.js as the best platform for user engagement, and discusses Cloud9 IDE's open-source platform for Node apps, Architect.
OSGi Community Event 2015
OSGi is a widely used modularity framework for Java, with rapid growth in the enterprise space. Since Java EE6, Contexts and Dependency Injection (CDI) also becomes very popular. One of the significant changes in Java EE7 is that CDI is now enabled by default. Uniting two powerful programming modes, CDI and dynamic services in OSGi, will make OSGi technology even more powerful. OSGi Alliance is working towards standardizing the specification of CDI Integration into OSGi. This session will explain how CDI Integration in OSGi works.
OSGi for IoT: the good, the bad and the ugly - Tim Verbelenmfrancis
OSGi Community Event 2015
In the iMinds IoT strategic research program we do long-term research centered around the Internet of Things ranging from cognitive radio, wireless connectivity, security and distributed intelligence. Within our research, we heavily use and benefit from OSGi. In this talk, we will present and demo our work on smart things, illustrating how we adopt OSGi and the various specifications. We will highlight the latest and greatest OSGi features (i.e. from OSGi enRoute), and point out some new challenges to be tackled in the upcoming IoT expert group.
By Eduardo Lima.
GNOME, the free desktop environment, has embraced Javascript. Starting from version 3.0, Javascript is at the core of the user experience delivered to tens of thousands of GNOME users out there. We call it the gnome-shell, but the real beauty lies within.
This presentation will give you a brief tour around the great technology behind the shell, a technology that GNOME hackers use to have automatic reflection of their core libraries into Javascript. Yes, you read well, automatic! It is called gobject-introspection and gives you the super-powers of Javascript-ing most of the hardcore C libraries that powers GNOME, from multimedia, web browsing, accelerated 2D and 3D graphics, communications, UX, hardware interaction, and many more.
During the talk, a couple of examples will be discussed, some demos dropped, and we might hack the shell on-the-fly as well!
Presentation was created after OSGi conference in Ludwigsburg : http://www.osgi.org/CommunityEvent2012/HomePage
Source code is available : https://stash-test.hybris.com/projects/PLAY/repos/osgi-presentation/browse
OSGi is on the core+ roadmap. This presentation introduces architecture, tools and design patterns used by OSGi.
It also shows the way how to refactor application to be really modular. Region cache will be example.
In Web hosting services, hosting systems use access controls like suEXEC on apache Web servers to separate privilege by each virtual host. However, existing access control architectures on Web servers have a problem in their low performance and are not appropriate for dynamic contents like Web API since these architectures require termination of the process after each HTTP session. The system developers are not easy to install existing access controls since these are provided by each interpreter and program execution methods conventionally. In this paper, we propose the access control architecture “mod_process_security”. In this architecture a server process creates a new thread on the server process when accepting a request. Then, the web server separates privilege by the thread and processes the contents on the thread. The server process installed “mod_process_security” executes programs faster. System developers can easily install it on web servers since we replace it with the complicated existing access controls. “mod_process_security” can be installed for Apache HTTP Server on Linux as Apache Module which is widely used.
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
OSGi Community Event 2018 Presentation by Bruce Jackson (Myriad)
Abstract: Node-RED is often used as a protyping tool for IoT systems. However, there are also a large number of OSGi components that have already been built to interface to devices, sensors and systems. In this talk I will show how two completely different runtime environments (OSGi and Node-RED) can be combined into a single platform for prototyping (and more) combining the strengths of both languages and systems.
Being able to quickly and simply prototype IoT application is extremely useful, and to this end many people have adopted Node-Red, a Node.js based runtime with extensive support for plugins to interface to various IoT hardware and protocols. However, this requires these services/protocols to be developed in Javascript, and there is already a significant body of code developed in Java/OSGi that it would be desirable to re-use.
The talk will explain how it is possible to:
Create and manage a Node-Red runtime from within an OSGi bundle
Share OSGi components and object into the Node-Red runtime
Interact and build Node-Red flows that exchange data and call methods between Node.js and OSGi
This is obviously useful for the original purpose: prototyping IoT systems, but also demonstrates some interesting techniques for bridging between different languages and runtimes.
Amazon Web Services The Hague Meetup group, "Aws Deployment Tools - Overview, Details, Implementation" presentation. We've talked about AWS CodePipeline, CodeCommit, CodeBuilt and CodeDeploy.
#olindata #sentia
Blog post for detailed explanation and codes.
http://www.sentialabs.io/2018/08/20/AWS-Deployment-Tools.html
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
These slides were used during our presentation at JavaONE 2010 [1]. They talk about use of OSGi in Java EE applications.
[1] http://www.eventreg.com/cc250/sessionDetail.jsp?SID=313521
Although Web and mobile apps are getting more capable every day, often your application makes the most sense on the desktop. In this talk, we’ll look at some recent technologies that have allowed significant desktop apps — like Barnes & Noble’s NOOK Study e-textbook reader, or Adobe’s Brackets IDE — to be written in HTML5 and JavaScript. Projects like the Chromium Embedded Framework, node-webkit, and AppJS provide an excellent native-to-JS bridge. With them in hand, you can bring the full power of the Node.js and front-end ecosystems to bear, while still gaining the advantages of running as a native app.
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OpenBlend society
There's a considerable activity in the enterprise Java community about the use of OSGi in Java EE applications. We call such applications "hybrid applications." With hybrid applications, developers can continue to build standard and familiar enterprise application components, such as Java Servlets and EJBs, and take full advantage of:
* Features such as modularity/dependency management, service dynamism, and more provided by OSGi
* Infrastructure services such as transaction management, security, persistence, and more offered by Java EE
This session will present the current state of affairs, discuss the benefits of hybrid applications, and demonstrate development and deployment of such applications.
GlassFish will be used for demonstration.
Micro Services in JavaScript - Simon Kaegimfrancis
OSGi DevCon 2012
Although modularity concepts from OSGi might not map cleanly to programming languages other than Java, the ideas around OSGi Micro Services might be universally applicable. In this talk we will examine the JavaScript-based Micro Service implementation used at the core of the Eclipse Orion project. After several iterations and more than a couple of failed attempts to improve on OSGi, our implementation is now essentially aligned with OSGi Micro Services. We will discuss lessons learned and show how our implementation can be used stand-alone in arbitrary web pages as well as in Node.js
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
7. OSGi Blueprint Services
Simple example
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0”>
<service interface=“osgi.devcon.User”>
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=“gnodet” />
</bean>
</service>
</blueprint>
bundleContext.registerService(
osgi.devcon.User.class.getName(),
new osgi.devcon.impl.UserImpl(“gnodet”),
new Hashtable());
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 6
8. OSGi Blueprint Services
Simple example
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0”>
<service interface=“osgi.devcon.User”>
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=“gnodet” />
</bean>
</service>
</blueprint> Top level element
bundleContext.registerService(
osgi.devcon.User.class.getName(),
new osgi.devcon.impl.UserImpl(“gnodet”),
new Hashtable());
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 7
9. OSGi Blueprint Services
Simple example
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0”>
<service interface=“osgi.devcon.User”>
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=“gnodet” />
</bean>
</service>
</blueprint> Blueprint namespace
bundleContext.registerService(
osgi.devcon.User.class.getName(),
new osgi.devcon.impl.UserImpl(“gnodet”),
new Hashtable());
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 8
10. OSGi Blueprint Services
Simple example
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0”>
<service interface=“osgi.devcon.User”>
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=“gnodet” />
</bean>
</service>
</blueprint> Manager definition
bundleContext.registerService(
osgi.devcon.User.class.getName(),
new osgi.devcon.impl.UserImpl(“gnodet”),
new Hashtable());
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 9
11. OSGi Blueprint Services
Manager types
• Bean
• Single Service
Reference
• Multiple Service
References
• Service
Registration
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 10
12. OSGi Blueprint Services
Managers
• Described by some metadata
• Provide objects
• Activation / deactivation
• Dependencies (implicit or explicit)
• Initialization
– Eager
– Lazy
• Id
• Inlined managers
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 11
13. OSGi Blueprint Services
Bean manager
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=”gnodet” />
<property name=“arrival” value=“22/06/09” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 12
14. OSGi Blueprint Services
Bean creation
• Constructor creation
<bean class=“osgi.devcon.impl.UserImpl” />
new osgi.devcon.impl.UserImpl()
• Constructor creation with arguments
<bean class=“osgi.devcon.impl.UserImpl”>
<argument value=“gnodet” />
</bean>
new osgi.devcon.impl.UserImpl(“gnodet”)
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 13
17. OSGi Blueprint Services
Bean arguments
<argument value=“gnodet”/>
<argument ref=“[refid]”/>
<argument>
[any value]
</argument>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 16
18. OSGi Blueprint Services
Bean arguments
<argument value=“gnodet”/>
<argument ref=“[refid]”/>
<argument>
[any value]
</argument> Plain value
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 17
19. OSGi Blueprint Services
Bean arguments
<argument value=“gnodet”/>
<argument ref=“[refid]”/>
<argument>
[any value]
</argument>
Reference to a top
level manager
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 18
20. OSGi Blueprint Services
Bean arguments
<argument value=“gnodet”/>
<argument ref=“[refid]”/>
<argument>
[any value]
</argument>
Complex value
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 19
21. OSGi Blueprint Services
Bean properties
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“userId” value=“gnodet” />
</bean>
UserImpl user = new osgi.devcon.impl.UserImpl();
user.setUserId(“gnodet”);
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 20
22. OSGi Blueprint Services
Bean properties
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“userId” value=“gnodet” />
</bean>
UserImpl user = new osgi.devcon.impl.UserImpl();
user.setUserId(“gnodet”);
Property name
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 21
23. OSGi Blueprint Services
Bean properties
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“userId” value=“gnodet” />
</bean>
UserImpl user = new osgi.devcon.impl.UserImpl();
user.setUserId(“gnodet”);
Property value
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 22
24. OSGi Blueprint Services
Bean properties
<property name=“userId” value=“gnodet”/>
<property name=“userId” ref=“[refid]”/>
<property name=“userId”>
[any value]
</property>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 23
25. OSGi Blueprint Services
Bean scope
• Singleton
– a single instance will be reused
• Prototype
– a new instance will be created each time it
is injected
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 24
27. OSGi Blueprint Services
<ref />
• Injects an object provided by the
manager with the given id
<bean id=“regId” … />
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“registration”>
<ref component-id=“regId” />
</property>
</bean>
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“registration” ref=“regId” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 26
28. OSGi Blueprint Services
<ref />
• Injects an object provided by the
manager with the given id
Property value
<bean id=“regId” … />
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“registration”>
<ref component-id=“regId” />
</property>
</bean>
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“registration” ref=“regId” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 27
29. OSGi Blueprint Services
<idref />
• Injects the id of an existing object
<bean id=“regId” … />
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“registrationId”>
<idref component-id=“regId” />
</property>
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 28
30. OSGi Blueprint Services
<value>
• Insert the content of the element text
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“userId”>
<value>gnodet</value>
</property>
</bean>
<bean class=“osgi.devcon.impl.UserImpl”>
<property name=“userId” value=“gnodet” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 29
31. OSGi Blueprint Services
<list>, <set> and <array>
• Inserts a collection of objects
<list>
<list>
<value>2</value>
<value>7</value> Arrays.asList(
</list> Arrays.asList(“2”,”7”),
<list value-type=“int”> Arrays.asList(9,5)
<value>9</value> )
<value>5</value>
</list>
</list>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 30
32. OSGi Blueprint Services
<list>, <set> and <array>
• Inserts a collection of objects
<list>
<list>
<value>2</value>
<value>7</value> Arrays.asList(
</list> Arrays.asList(“2”,”7”),
<list value-type=“int”> Arrays.asList(9,5)
<value>9</value> )
<value>5</value>
</list>
</list>
Type of the values
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 31
33. OSGi Blueprint Services
<map>
• Inserts a map of objects
<map>
<entry key="cheese" value="cheddar"/>
<entry key="fruit" value="orange"/>
</map>
<map>
<entry key-ref="keyId" value="cheddar"/>
<entry key="fruit" value-ref="valueId"/>
</map>
<map key-type=”...” value-type="... ">
<entry ...>
</map>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 32
34. OSGi Blueprint Services
<map>
• Inserts a map of objects
<map>
<entry>
<key>
<value type="org.osgi.framework.Version">
3.2.1
</value>
</key>
<bean ... />
</entry>
</map>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 33
35. OSGi Blueprint Services
<props>
• Inserts a java.util.Properties object
<props>
<prop key="1">one</prop>
<prop key="2" value="two" />
</props>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 34
36. OSGi Blueprint Services
Components as values
• Instances provided by managers can be
injected
<list>
<bean class="com.acme.FooImpl"/>
</list>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 35
37. OSGi Blueprint Services
Service References
• Single service: <reference>
• Multiple services: <ref-list>
<reference id="user1"
interface="osgi.devcon.User"
filter="(name=gnodet)" />
<ref-list id=”all-users"
interface="osgi.devcon.User” />
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 36
38. OSGi Blueprint Services
<reference>
• Provides a proxy to an OSGi service
• Availability: mandatory or optional
• Timeout
• Damping
proxy
backing
service
injected beans services service providers
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 37
39. OSGi Blueprint Services
<ref-list>
• Provides a read-only and dynamic list of
OSGi service
• Availability: mandatory or optional
backing
service
list
injected beans proxies services service providers
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 38
40. OSGi Blueprint Services
Service References Listeners
<bean id="listener" ... />
<ref-list interface="osgi.devcon.User">
<reference-listener ref="listener"
bind-method="bind"
unbind-method="unbind" />
</ref-list>
public class Listener {
public void bind(User user) { }
public void unbind(User user) { }
}
public void (T)
public void (T, Map)
public void (ServiceReference)
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 39
41. OSGi Blueprint Services
Service References Listeners
<bean id="listener" ... />
<ref-list interface="osgi.devcon.User">
<reference-listener ref="listener"
bind-method="bind"
unbind-method="unbind" />
</ref-list>
Bind method
public class Listener {
public void bind(User user) { }
public void unbind(User user) { }
}
public void (T)
public void (T, Map)
public void (ServiceReference)
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 40
42. OSGi Blueprint Services
Service registrations
• Expose an object as an OSGi service
• Register a ServiceFactory
• Dependencies on service references
<service ref="user"
interface="osgi.devcon.User" />
<service auto-export="interfaces">
<bean class="osgi.devcon.impl.UserImpl” />
</service>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 41
43. OSGi Blueprint Services
Service properties
• Expose an object as an OSGi service
<service ref="fooImpl" interface="osgi.devcon.User">
<service-properties>
<entry key="name" value="gnodet"/>
</service-properties>
</service>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 42
44. OSGi Blueprint Services
Service Registration Listeners
<bean id="listener" ... />
<service ref="..." interface="osgi.devcon.User">
<registration-listener
ref="listener"
registration-method="register"
unregistration-method="unregister" />
</ref-list>
public class Listener {
public void register(User user, Map props) { }
public void unregister(User user, Map props) { }
}
public void (T, Map)
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 43
45. OSGi Blueprint Services
Lifecycle
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 44
46. OSGi Blueprint Services
Lifecycle
Support for lazy
activattion
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 45
47. OSGi Blueprint Services
Lifecycle
Track mandatory
references
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 46
48. OSGi Blueprint Services
Lifecycle
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 47
49. OSGi Blueprint Services
Advanced use
• Conversions
• Disambiguation
• Creating custom converters
• Use of <idref>
• <ref-list> can be injected as
List<ServiceReference>
• Use of the ranking attribute on
<service>
• Blueprint Events
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 48
50. OSGi Blueprint Services
Conversions
• Arrays, collections, maps
• Primitives / wrapped primitives
• Simple types with a String constructor
• Locale, Pattern, Properties, Class
• JDK 5 Generics
• Custom converters
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 49
51. OSGi Blueprint Services
Disambiguation
• Constructors / factory methods can
have multiple overloads
public class Bar {
public Bar(File file) { ... }
public Bar(URI uri) { ... }
}
<bean class="foo.Bar">
<argument type="java.net.URI"
value="file://hello.txt"/>
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 50
52. OSGi Blueprint Services
Custom converters
<type-converters>
<bean id="converter1" class=”foo.DateTypeConverter">
<property name="format" value="yyyy.MM.dd"/>
</bean>
</type-converters>
<bean class=“...”>
<property name=“date” value=“2009.06.22” />
</bean>
public class DateTypeConverter {
public boolean canConvert(Object fromValue,
CollapsedType toType) {
...
}
public Object convert(Object fromValue,
CollapsedType toType) throws Exception {
...
}
}
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 51
53. OSGi Blueprint Services
<ref-list> as
List<ServiceReference>
<ref-list interface=“osgi.devcon.User”
member-type=“service-reference” />
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 52
54. OSGi Blueprint Services
Other advanced uses
• <ref-list> as
List<ServiceReference>
<ref-list interface=“osgi.devcon.User”
member-type=“service-reference” />
• Use of ranking attribute on
<service>
<service ref=“foo”
interface=“osgi.devcon.User”
ranking=“5” />
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 53
55. OSGi Blueprint Services
Use of <idref>
• Prototypes
• Use of the Blueprint API
<bean id=“bar” class=“foo.Bar” scope=“prototype”>
<property name=“prop” value=“val” />
</bean>
<bean class=“foo.BarCreator”>
<property name=“blueprintContainer” ref=“blueprintContainer” />
<property name=“id”>
<idref component-id=“bar” />
</property>
</bean>
Bar bar = (Bar) blueprintContainer.getComponent(id)
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 54
56. OSGi Blueprint Services
Blueprint events
• Register listeners
• Blueprint events
– CREATING
– CREATED
– DESTROYING
– DESTROYED
– FAILURE
– GRACE_PERIOD
– WAITING
public interface BlueprintListener {
void blueprintEvent(BlueprintEvent event);
}
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 55
57. OSGi Blueprint Services
Next steps
• Custom namespace handlers
• Config Admin support
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 56
59. OSGi Blueprint Services
Config Admin
• Injection of values from a Configuration
<cm:property-placeholder persistent-id=“foo.bar” />
<cm:default-properties>
<cm:property name=“name” value=“value” />
</cm:default-properties>
</cm:property>
<bean ...>
<property name=“prop” value=“${name}” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 58
60. OSGi Blueprint Services
Config Admin
• Support for managed properties
<bean class=“foo.Bar”>
<cm:managed-properties
persistent-id=“foo.bar”
updated-strategy=“component-managed”
update-method=“update” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 59
61. OSGi Blueprint Services
Config Admin
• Support for managed service factories
<cm:managed-service-factory
factory-pid=“foo.bar”
interface=“foo.Bar”>
<service-properties>
<entry key=“key1” value=“value1” />
</service-properties>
<cm:managed-component class=“foo.BarImpl” />
</bean>
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 60
62. OSGi Blueprint Services
Implementations
• Spring-DM (RI)
– Based on the Spring Framework
– > 2 Mo but provide more features
• Geronimo blueprint
– Clean implementation of Blueprint
– Size < 300 Ko
– Integrated in Apache Felix Karaf
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 61
63. OSGi Blueprint Services
Conclusion
• Existing alternatives
– DS, iPojo, Peaberry
• Strengths of blueprint
– Familiarity with Spring
– More powerful Dependency Injection
– Easily extensible through namespaces
gnodet@gmail.com
http://svn.apache.org/repos/asf/geronimo/sandbox/blueprint
OSGi DevCon, June 22, 2009 Copyright Guillaume Nodet, Licensed under ASL 2.0 62