- Weld-OSGi allows using CDI/Weld programming model inside an OSGi environment by extending it.
- It provides features like declarative and dynamic services publication and injection using CDI annotations. Filters can be used to target specific service implementations.
- Services injection works dynamically, failing if no matching services are available. Programmatic access to services is also provided like with the Instance utility.
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.
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaertmfrancis
OSGi Community Event 2015
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.</p>
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed is available as open source.
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
In this presentation, we will discuss the benefits of hybrid applications and demonstrate how such applications can be built and deployed. A hybrid application is both an OSGi bundle as well as a Java EE application. GlassFish is a natural container of choice for such applications.
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.
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaertmfrancis
OSGi Community Event 2015
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.</p>
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed is available as open source.
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
In this presentation, we will discuss the benefits of hybrid applications and demonstrate how such applications can be built and deployed. A hybrid application is both an OSGi bundle as well as a Java EE application. GlassFish is a natural container of choice for such applications.
Talk given at JavaOne 2009 discussing how to build web applications using OSGi. The source for the demo found at http://github.com/mrdon/jforum-plugins/tree/master
Session Abstract: Enterprise Web applications tend to grow like weeds in monolithic complexity. OSGi, although more often associated with Java™ technology-based clients and application servers, can bring a new level of modularity, uptime, and stability that is needed with today's always-on hosted Web applications. OSGi gets really interesting when the pretty architecture diagrams meet the real world, because it consists of various deployment platforms, development environments, and application architectures. This presentation, for Java 2 Platform, Enterprise Edition (J2EE™ platform)-savvy architects and senior developers, provides a practical guide to the Web on OSGi, from integration approach to bundle development, to real-world code you can use today.
The session discusses
• What benefits OSGi brings to the J2EE platform
• Three integration strategies
• How to use Spring DM and Maven to ease development
• Lessons learned from Atlassian's recent OSGi deployment
• A production-ready example to use immediately
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.
Open Services Gateway Initiative (OSGI)Peter R. Egli
OSGi is a component-based technology and was developed to provide a software platform that allows modularization and dynamic linking of application components.
OSGi components are called bundles and can be exported and imported by application bundles.
OSGi implementations like Apache Felix or Eclipse Equinox provide a runtime container which controls the lifecycle of bundles.
Even though OSGi is hardware independent, it is based on the Java Virtual Machine and as such extends the concepts of the underlying Java language.
An OSGi bundle's capabilities and properties are defined in a manifest file that is packed together with the bundle's Java class files. The manifest file allows compatibility checks by the OSGi runtime between the exporting bundle and the importing bundle.
This export and import mechanism allows highly flexible and dynamic application environments where applications and components are installed, linked and started at runtime without the need to restart the entire system.
OSGi has gained popularity over the last two years. The platform has some very interesting features like versioning, dynamic updates and it's service oriented nature. These characteristics however come with a price. A firm understanding of how and why OSGi works how it works, is a necessity if you plan on getting into OSGi.
This talk will start with some basic principals on the java platform and will gradually move towards the OSGi infrastructure explaining the OSGi fundamentals. The following topics will be covered:
* Classloading in OSGi
* Lifecycle management of OSGi bundles
* OSGi Service, the service registry and service composition models
Afterwards, we will explain the generally accepted best practices and OSGi design patterns.
This is an overview how to build an OSGI EJB3 Server I gave at OSGIExpertsDay at JAX09.
The Server is build using:
Eclipse Equinox as OSGI Framework
Eclipse Riena for Remote OSGI Services
EasyBeans as OSGI EJB3 Container
Hibernate as JPA Provider
Clients are Rich Clients (Eclipse RCP)
The project is model-driven using UML (MagicDraw), EMF (Eclipse Modeling) and oAW (openArchitectureWare).
more info:
http://ekkes-corner.org (blog english)
http://ekkes-ecke.org (blog german)
http://ekkes-corner-tv.org (Video PodCasts)
You want to watch the slides with included screencasts ? here's the movie:
http://www.vimeo.com/ekkescorner/videos
For a long time bytecode weaving in OSGi has been a cumbersome process. Using it's internal hooks Equinox has supported basic transformation since version 3.2, but there has still been no simple, standard way to enhance classes and add new dependencies to the bundle that contains them. The new OSGi WeavingHook whiteboard pattern, which allows any OSGi bundle, not just an Equinox framework extension, to weave classes from, and add dependencies to, other OSGi bundles. Also new in OSGi is the opportunity to scan the classpath of an OSGi bundle. Whilst the isolated, modular classpath of an OSGi bundle provides an excellent system for building Java applications, many extenders and libraries need to be able to search for classes or resources within the bundle. This function further aids weaving implementations by allowing them to search for resources, class and package name patterns, and other configuration without requiring specific metadata to be present. As the lead author for the Bytecode weaving design within the OSGi Alliance, and a committer in the Apache Aries project, Tim will use his expertise to demonstrate the power and flexibility of WeavingHooks, particularly in conjunction with the latest OSGi updates for classpath scanning. Drawing on real-world examples from the Apache Aries project Tim will use real-world examples to prove that first-class weaving .support is now available in OSGi
A (very) quick introduction to OSGi for Java developers. These slides are meant to be a quick overview of the technology and make you understand how useful it can be.
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIMario-Leander Reimer
This talk is a detailed case study about the migration of a JSF-based web application from Spring 3 to Java EE 7 and CDI. It is presented at the JavaOne 2014 conference.
At first sight this didn’t seem to be too difficult. Both technologies are based on similar concepts and provide similar mechanisms for dependency injection (DI). So migrating pure annotation based bean wiring from Spring to CDI was obvious and straight forward.
But the deeper we looked into the source code the more Spring specific code we found with no direct and easy mapping in neither of JEE7, EJB3 or CDI available. Some of the problems and challenges we were confronted with were:
- How to migrate XML based bean wirings?
- How to migrate FactoryBeans?
- How to migrate AspectJ based AOP proxies?
- How to implement Spring profiles for environment based wiring?
- How to implement custom bean scopes?
- How to implement custom Spring XML schema notations and wiring?
- How to migrate code that is built against Spring APIs?
- How to migrate unit test based on Spring Test?
To answer these questions the talk will present the patterns and strategies used to map, transform and migrate the different concepts from Spring 3 to JEE7with CDI. The talk will discuss the changes and implications of the migration on the system’s architecture.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Devoxx UK 2013 Test-Driven Development with JavaEE 7, Arquillian and Embedded...Peter Pilgrim
In this session, we introduce the Java developer to the Arquillian framework, Gradle and the Enterprise container technologies in Java EE 7. As a lucrative bonus we will cover building EJB and Java EE 7 tests applications with Gradle, the latest and greatest build framework for the Java platform, which improves on Apache Maven. The Java EE specification full contains three different containers, namely the Web, the EJB and the CDI containers. All of them can be reached using the Arquillian Framework, and this means there is now one general testing framework, which developers should learn as part of their professional duties. The session will cover writing meaningful tests for CDI, EJB and JAX-RS. Along the way, we will introduce new features of EJB 3.2, CDI 1.1 and RESTful Services. GlassFish Embedded Container 4.0 will be demonstrated.
Travelling Light for the Long Haul - Ian Robinsonmfrancis
OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)
ABSTRACT
One of the attractive qualities of OSGi is its role in enabling technologies that adopt it to manage the cost of their own success. Anything that gains adoption - in technology or elsewhere - picks up baggage as a result and needs to figure out how to deal with current installations while expanding in new directions. The WebSphere platform has been around for almost as long as Java and knows a thing or two about baggage but still manages to travel to many places with just a carry-on allowance. We adopted OSGi internally 8 years ago and have gradually increased our exploitation with each passing release, most recently and deeply with the lightweight WAS Liberty Profile. It hasn't all been plain sailing and we learned from a number of mistakes made along the way. When WebSphere Application Server first adopted OSGi it had over 10 million lines of code in a modest number of huge JARs. The engineering effort to modularize that into a “sensible” number of OSGi bundles was fairly significant. We had a global development team spread across a dozen labs and nearly as many timezones, all learning OSGi principles at the same time. What could possibly go wrong? I’ll spend a little time reviewing the consequences of our bundles-first-services-later approach but our success was initially limited to having the equivalent of a well-organized and large container ship which could travel at speed but needed a pretty wide berth. Our initial investment in OSGi delivered on most of the internal benefits we wanted but failed on some of the external ones that matter to our customers.
Application Servers are used in different ways by Developers and IT Operations. Ops teams care about the overall cost, including performance and availability, of the platform and the applications it supports; Dev teams care about how quickly and easily they can create and deliver their applications and treat the server as a tool. Only some of them know or care about OSGi; multi-channel enablement and cloud deployment are the current pressures they are under. Today, WebSphere is a consumer of OSGi in two distinct fashions. Internally we learned from our earlier experiences and embraced an OSGi services model to enable us to run the same runtime just as fast but in a far more dynamic fashion: it’s how we can start/stop individual technologies of the Java EE Web Profile independently on the WAS Liberty profile, in a 50MB install with a 2-second startup while still support all our customers’ existing deployments. Externally we support both Enterprise OSGi and traditional Java EE as application programming models, on the same runtime and using the same Eclipse-based tools. Our customers who understand and care about OSGi can develop and deploy web application bundles and multi-bundle enterprise applications. Those who don’t care about OSGi benefit from it ind
Talk given at JavaOne 2009 discussing how to build web applications using OSGi. The source for the demo found at http://github.com/mrdon/jforum-plugins/tree/master
Session Abstract: Enterprise Web applications tend to grow like weeds in monolithic complexity. OSGi, although more often associated with Java™ technology-based clients and application servers, can bring a new level of modularity, uptime, and stability that is needed with today's always-on hosted Web applications. OSGi gets really interesting when the pretty architecture diagrams meet the real world, because it consists of various deployment platforms, development environments, and application architectures. This presentation, for Java 2 Platform, Enterprise Edition (J2EE™ platform)-savvy architects and senior developers, provides a practical guide to the Web on OSGi, from integration approach to bundle development, to real-world code you can use today.
The session discusses
• What benefits OSGi brings to the J2EE platform
• Three integration strategies
• How to use Spring DM and Maven to ease development
• Lessons learned from Atlassian's recent OSGi deployment
• A production-ready example to use immediately
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.
Open Services Gateway Initiative (OSGI)Peter R. Egli
OSGi is a component-based technology and was developed to provide a software platform that allows modularization and dynamic linking of application components.
OSGi components are called bundles and can be exported and imported by application bundles.
OSGi implementations like Apache Felix or Eclipse Equinox provide a runtime container which controls the lifecycle of bundles.
Even though OSGi is hardware independent, it is based on the Java Virtual Machine and as such extends the concepts of the underlying Java language.
An OSGi bundle's capabilities and properties are defined in a manifest file that is packed together with the bundle's Java class files. The manifest file allows compatibility checks by the OSGi runtime between the exporting bundle and the importing bundle.
This export and import mechanism allows highly flexible and dynamic application environments where applications and components are installed, linked and started at runtime without the need to restart the entire system.
OSGi has gained popularity over the last two years. The platform has some very interesting features like versioning, dynamic updates and it's service oriented nature. These characteristics however come with a price. A firm understanding of how and why OSGi works how it works, is a necessity if you plan on getting into OSGi.
This talk will start with some basic principals on the java platform and will gradually move towards the OSGi infrastructure explaining the OSGi fundamentals. The following topics will be covered:
* Classloading in OSGi
* Lifecycle management of OSGi bundles
* OSGi Service, the service registry and service composition models
Afterwards, we will explain the generally accepted best practices and OSGi design patterns.
This is an overview how to build an OSGI EJB3 Server I gave at OSGIExpertsDay at JAX09.
The Server is build using:
Eclipse Equinox as OSGI Framework
Eclipse Riena for Remote OSGI Services
EasyBeans as OSGI EJB3 Container
Hibernate as JPA Provider
Clients are Rich Clients (Eclipse RCP)
The project is model-driven using UML (MagicDraw), EMF (Eclipse Modeling) and oAW (openArchitectureWare).
more info:
http://ekkes-corner.org (blog english)
http://ekkes-ecke.org (blog german)
http://ekkes-corner-tv.org (Video PodCasts)
You want to watch the slides with included screencasts ? here's the movie:
http://www.vimeo.com/ekkescorner/videos
For a long time bytecode weaving in OSGi has been a cumbersome process. Using it's internal hooks Equinox has supported basic transformation since version 3.2, but there has still been no simple, standard way to enhance classes and add new dependencies to the bundle that contains them. The new OSGi WeavingHook whiteboard pattern, which allows any OSGi bundle, not just an Equinox framework extension, to weave classes from, and add dependencies to, other OSGi bundles. Also new in OSGi is the opportunity to scan the classpath of an OSGi bundle. Whilst the isolated, modular classpath of an OSGi bundle provides an excellent system for building Java applications, many extenders and libraries need to be able to search for classes or resources within the bundle. This function further aids weaving implementations by allowing them to search for resources, class and package name patterns, and other configuration without requiring specific metadata to be present. As the lead author for the Bytecode weaving design within the OSGi Alliance, and a committer in the Apache Aries project, Tim will use his expertise to demonstrate the power and flexibility of WeavingHooks, particularly in conjunction with the latest OSGi updates for classpath scanning. Drawing on real-world examples from the Apache Aries project Tim will use real-world examples to prove that first-class weaving .support is now available in OSGi
A (very) quick introduction to OSGi for Java developers. These slides are meant to be a quick overview of the technology and make you understand how useful it can be.
Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIMario-Leander Reimer
This talk is a detailed case study about the migration of a JSF-based web application from Spring 3 to Java EE 7 and CDI. It is presented at the JavaOne 2014 conference.
At first sight this didn’t seem to be too difficult. Both technologies are based on similar concepts and provide similar mechanisms for dependency injection (DI). So migrating pure annotation based bean wiring from Spring to CDI was obvious and straight forward.
But the deeper we looked into the source code the more Spring specific code we found with no direct and easy mapping in neither of JEE7, EJB3 or CDI available. Some of the problems and challenges we were confronted with were:
- How to migrate XML based bean wirings?
- How to migrate FactoryBeans?
- How to migrate AspectJ based AOP proxies?
- How to implement Spring profiles for environment based wiring?
- How to implement custom bean scopes?
- How to implement custom Spring XML schema notations and wiring?
- How to migrate code that is built against Spring APIs?
- How to migrate unit test based on Spring Test?
To answer these questions the talk will present the patterns and strategies used to map, transform and migrate the different concepts from Spring 3 to JEE7with CDI. The talk will discuss the changes and implications of the migration on the system’s architecture.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Devoxx UK 2013 Test-Driven Development with JavaEE 7, Arquillian and Embedded...Peter Pilgrim
In this session, we introduce the Java developer to the Arquillian framework, Gradle and the Enterprise container technologies in Java EE 7. As a lucrative bonus we will cover building EJB and Java EE 7 tests applications with Gradle, the latest and greatest build framework for the Java platform, which improves on Apache Maven. The Java EE specification full contains three different containers, namely the Web, the EJB and the CDI containers. All of them can be reached using the Arquillian Framework, and this means there is now one general testing framework, which developers should learn as part of their professional duties. The session will cover writing meaningful tests for CDI, EJB and JAX-RS. Along the way, we will introduce new features of EJB 3.2, CDI 1.1 and RESTful Services. GlassFish Embedded Container 4.0 will be demonstrated.
Travelling Light for the Long Haul - Ian Robinsonmfrancis
OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)
ABSTRACT
One of the attractive qualities of OSGi is its role in enabling technologies that adopt it to manage the cost of their own success. Anything that gains adoption - in technology or elsewhere - picks up baggage as a result and needs to figure out how to deal with current installations while expanding in new directions. The WebSphere platform has been around for almost as long as Java and knows a thing or two about baggage but still manages to travel to many places with just a carry-on allowance. We adopted OSGi internally 8 years ago and have gradually increased our exploitation with each passing release, most recently and deeply with the lightweight WAS Liberty Profile. It hasn't all been plain sailing and we learned from a number of mistakes made along the way. When WebSphere Application Server first adopted OSGi it had over 10 million lines of code in a modest number of huge JARs. The engineering effort to modularize that into a “sensible” number of OSGi bundles was fairly significant. We had a global development team spread across a dozen labs and nearly as many timezones, all learning OSGi principles at the same time. What could possibly go wrong? I’ll spend a little time reviewing the consequences of our bundles-first-services-later approach but our success was initially limited to having the equivalent of a well-organized and large container ship which could travel at speed but needed a pretty wide berth. Our initial investment in OSGi delivered on most of the internal benefits we wanted but failed on some of the external ones that matter to our customers.
Application Servers are used in different ways by Developers and IT Operations. Ops teams care about the overall cost, including performance and availability, of the platform and the applications it supports; Dev teams care about how quickly and easily they can create and deliver their applications and treat the server as a tool. Only some of them know or care about OSGi; multi-channel enablement and cloud deployment are the current pressures they are under. Today, WebSphere is a consumer of OSGi in two distinct fashions. Internally we learned from our earlier experiences and embraced an OSGi services model to enable us to run the same runtime just as fast but in a far more dynamic fashion: it’s how we can start/stop individual technologies of the Java EE Web Profile independently on the WAS Liberty profile, in a 50MB install with a 2-second startup while still support all our customers’ existing deployments. Externally we support both Enterprise OSGi and traditional Java EE as application programming models, on the same runtime and using the same Eclipse-based tools. Our customers who understand and care about OSGi can develop and deploy web application bundles and multi-bundle enterprise applications. Those who don’t care about OSGi benefit from it ind
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.
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
AWS CodeDeploy is the new service announced at AWS re:Invent in Las Vegas!!!
AWS CodeDeploy is a fully managed, scalable deployment service that lets AWS certified developers and engineers quickly and simply automate the process of deploying and updating applications on Amazon EC2.
The presentation includes an introduction to Code Deploy, benefits of using Code Deploy, understanding various components and workflows of Code Deploy, ways to deploy an application, commands to create and push application using Code Deploy, steps to deploying code on instances, troubleshooting and limitations of Code Deploy. It begins with a section which gives a brief introduction to Code Deploy. The next section is about the benefits of using Code Deploy. It explains the benefits of using Code Deploy like automated deployments, centralized control etc. Specific to the benefits section comes components and workflows of Code Deploy. It briefly describes the components of Code Deploy like content, appsec file and also includes the steps to the workflow of Code Deploying. Then deploying an application which explains not just the steps to deploy an application but also answers what to deploy, how to deploy and where to deploy at the same time.
Then, comes a section about commands used to create and push application. It tells about the commands which are not just used to create an application to s3 but also push applications to s3. Then it covers the steps for deploying code on instances. It becomes really interesting as it explains the steps a user can use to deploy codes on instances by just creating an application and following the other steps.
The last section of this presentation is about the limitations and troubleshooting of Code Deploy. It tells about the troubleshooting which occurs while using Code Deploy and the troubleshooting which appears but also mentions the regions where Code Deploy is currently supported too.
OSGi enRoute is an OSGi project to make OSGi as easy to use as some of non-java dynamic web development environments but still provide the benefits of OSGi's strong modularity. OSGi makes it easy to get started with OSGi by providing an integrated tool chain with several runtime environments, that uses OSGi as it always was intended to be used. By leveraging OSGi's powerful features like services and the powerful requirement/capability model, development of applications can be significantly simplified.
This presentation will provide an introduction to OSGi, the way it is used in enRoute, and then a demo of how to build an application with enRoute.
Bio:
Peter Kriens is an independent consultant since 1990.He currently works for the OSGi Alliance and Paremus. During the eighties he developed advanced distributed systems for newspapers based on microcomputers based on, at the time very novel, object oriented technologies. For this experience in Objects he was hired by a number of international companies, including Adobe, Intel, Ericsson, IBM, and many others. During his work at Ericsson Research in 1998 he got involved with the OSGi specification; Later he became the primary editor for these specifications. In 2005 he was awarded the OSGi Fellows title. After taking a sabbatical in 2012 to develop jpm4j he returned to the OSGi Alliance to help increasing adoption. He is Dutch but decided to live in France.
Developing Azure Functions for Flow and Nintex SPS SD 2018DocFluix, LLC
Demonstration of creating custom REST APIs using Azure Functions that may be consumed by workflow applications such as Nintex Workflow Cloud and Microsoft Flow. Shows how to create a custom, but reusable workflow action (Connector) that workflow designers can embed in their workflows.
Developing Azure Functions as custom connectors for Flow and NintexDocFluix, LLC
Although Microsoft Flow and Nintex include many pre-built connectors for hundreds of cloud based services and apps,what if you need to integrate with a service that doesn't have a connector? This session will show how to develop custom actions using Azure Functions that can be used in MS Flow,PowerApps and Nintex Workflow Cloud.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
3. Mathieu ANCELIN
•Software engineer @SERLI
•Java & OSS guy
•JOnAS, GlassFish, Weld, etc ...
•Poitou-Charentes JUG crew member
•CDI 1.1 (JSR-346) expert group member
•What else?
•@TrevorReznik
4. A few words about SERLI
•Software engineering company based in France
•65 people
•80% of the business is Java-related
•Small company working for big ones
•OSS contribution : 10% of workforce
•www.serli.com @SerliFr
6. Agenda
•CDI, the best part of Java EE 6
•OSGi, deep dive into modularity and dynamism
•Meet Weld-OSGi
•How does it work?
•Features and programming model
•Pros and cons
•Back to the future
•Demo
•Conclusion
10. CDI
•The best part of Java EE 6 (coolest)
•#annotationsEverywhere
•Basically there is no limite of what you can do
•if you can think about it, you can do it
•standard extensions :-)
•JBoss Weld is the reference implementation
•pretty mature, good community
•Limited to Java EE 6?
•well, not necessarily ...
11. Environnements for CDI/Weld
•You can boostrap Weld very easily outside Java EE
environment
•You can bootstrap it anywhere :-)
•For instance
•Weld-Servlet
•Jetty
•Tomcat 6/7
•Weld-SE
•Good old Desktop Java apps.
•You name it ?
12. OSGi
•An amazing modular and dynamic platform for Java
•Very stable and powerful but old APIs
Bundles
Service
Lifecycle
Module
Java environment
15. Services
notify
listener
register OSGI lookup
Bundle A service Bundle B
registry
16. Weld-OSGi
•(try to be) the best of both worlds
•dynamic, typesafe, annotations, etc ...
•CDI extension to use CDI programming model inside OSGi
•A JBoss Weld project
•need to bootstrap Weld in an OSGi environment
•Developed by SERLI R&D team
•Mathieu & Matthieu
•You don’t need to know OSGi
•make the OSGi programming model disappear in favor
of standard CDI
•but still compatible
18. Features
•Use Weld/CDI inside OSGi environment
•OSGi injection utilities
•Dynamic services publication
•Dynamic services injection
•Integration with OSGi events API
•Inter-bundles events
19. Using Weld / CDI in OSGi
•Install a bundle with META-INF/beans.xml file
•If you don’t need automatic startup
•Specify that Weld-OSGi must not handle the bundle
•entry in the bundle manifest : Embedded-
CDIContainer: true
•Specification of an embedded mode in CDI 1.1
•Special Weld-OSGi events
public void start(@Observes BundleContainerInitialized event) {}
public void stop(@Observes BundleContainerShutdown event) {}
20. Embedding CDI
EmbeddedCDIContainer cdi =
new EmbeddedContainer(bundleContext).initialize();
MyService service =
cdi.instance().select(MyService.class).get();
service.doSomething();
cdi.stop();
or
WeldContainer weld =
new WeldContainer(bundleContext).initialize();
MyService service =
weld.instance().select(MyService.class).get();
service.doSomething();
weld.stop();
21. OSGi injection utilities
•Easier access to OSGi APIs (if needed)
•Injection of the current bundle
•Injection of the current bundleContext
•Injection of the current metadata
•Injection bundle files (inside OSGi container)
•Other utilities are added while moving forward
22. OSGi injection utilities
•Easier access to OSGi APIs (if needed)
•Injection of the current bundle
•Injection of the current bundleContext
•Injection of the current metadata
•Injection bundle files (inside OSGi container)
•Other utilities are added while moving forward
@Inject Bundle bundle;
@Inject BundleContext context;
@Inject @BundleHeaders Map<String, String> headers;
@Inject @BundleHeader("Bundle-SymbolicName") String symbolicName;
@Inject @BundleDataFile("text.txt") File text;
28. Services injection
•Dynamic injection
@Inject @OSGiService MyService service;
service.doSomething(); // fail if no services available
P get() create()
R
@Inject @OSGiService
MyService service; O Provider InjectionPoint
X
Y
36. Required services
•When you absolutely need specific service(s) at runtime
•Weld-OSGi tell you when required services are
available
•can work in an atomic fashion for the whole bundle
•can target specific types of services
37. Required services
@Inject @OSGiService
Bean A
@Required
MyService service;
public void start(
@Observes Valid
required service evt) {} Bean B
registration public void stop(
dependencies validation events
Weld-OSGi service
registry
listener
OSGi service services
registry registrations/unregistrations
38. Required services
@Inject @OSGiService @Required MyService service;
@Inject @OSGiService @Required MyBean bean;
public void start(@Observes Valid evt) {
System.out.println("services are available");
service.doSomething();
}
public void stop(@Observes Invalid evt) {
System.out.println("services are unavailable");
}
39. Required services
@Inject @Required Service<MyService> service;
@Inject @Required Service<MyBean> bean;
public void start(@Observes Valid evt) {
System.out.println("services are available");
service.get().doSomething();
}
public void stop(@Observes Invalid evt) {
System.out.println("services are unavailable");
}
40. Required services
le
d
@Inject @Required Service<MyService> service;
n
@Inject @Required Service<MyBean> bean;
b u
public void start(@Observes Valid evt) {
System.out.println("services are available");
le
service.get().doSomething();
}
ho
public void stop(@Observes Invalid evt) {
w
System.out.println("services are unavailable");
}
41. Required services
@Inject @OSGiService @Required MyService service;
public void start(@Observes @Specification(MyService.class)
ServiceAvailable evt) {
System.out.println("service is available");
service.doSomething();
}
public void stop(@Observes @Specification(MyService.class)
ServiceUnavailable evt) {
System.out.println("service is unavailable");
}
42. Required services
@Inject @Required Service<MyService> service;
public void start(@Observes @Specification(MyService.class)
ServiceAvailable evt) {
System.out.println("service is available");
service.get().doSomething();
}
public void stop(@Observes @Specification(MyService.class)
ServiceUnavailable evt) {
System.out.println("service is unavailable");
}
43. OSGi events API
•OSGi generates a lot of events to let you interact with
bundle and service layers
•Easier to handle dynamism with
•bundle events
•service events
61. Getting started !
•Get Weld-OSGi =>
•Write an OSGi bundle
•Maven module + maven-bundle-plugin
•bnd file for manifest customization
•Empty beans.xml file in META-INF
<dependency>
<groupId>org.jboss.weld.osgi</groupId>
<artifactId>weld-osgi-core-api</artifactId>
<version>1.1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>1.0-SP4</version>
</dependency>
62. Pros and cons
•Pros
•CDI programming model
•really simplify OSGi (service layer)
•don’t hide it though
•fully compatible with existing OSGi bundles
•mixed app (legacy, weld-osgi)
•one Weld container per bundle
•Cons
•one Weld container per bundle
•new API to learn
63. Back to the future !
•Integration in Weld core (in progress)
•Forge plugin
•integration with Weld-OSGi features
•simplifying OSGi tests (arquillian OSGi)
•generation of sample OSGi containers
•CDI Extension for hybrid Java EE app servers
•using Weld-OSGi in Java EE apps
•work in progress ;-)
•Integration with OSGi enterprise specs
65. Demo : the story
•Hotel booking webapp
•business partners with hotels
•Avoid redeploying the app
•when new partner is added
•using OSGi dynamism
•Provide an API to partners
•Hotel POJO
•HotelProvider service contract
•partners will provide an OSGi bundle to deal with
their booking system
66. Conclusion
•Weld-OSGi is cool
•let’s try it :-)
•Can help to change OSGi in people minds
•Enlarge CDI action scope
•it’s not only about Java EE
•Don’t hesitate to give us feedback and fill issues