SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
JBOSS SNOWDROP
    TITLE SLIDE: HEADLINE
    Presenter
    Lukáš Vlček
    name
    Senior QAHat
    Title, Red Engineer, JBoss
    January 25th, 2010
    Date




1              CZJUG JAN-2010 | LUKAS VLCEK
What is JBoss Snowdrop?
    ●   Informal:
        “... you can easily develop, deploy and run Spring
        based applications on JBoss AS utilizing its JEE
        services”
    ●   More formal:
        Snowdrop is a utility package that contains JBoss
        specific extensions to the Spring Framework.
    ●   License: LGPL v2.1
    ●   Hosted: http://jboss.org/snowdrop




2                       CZJUG JAN-2010 | LUKAS VLCEK
Why Using Spring on JBoss AS?

    ●   Spring provides popular development model
    ●   JBoss AS provides runtime services

    ●   More details: Spring on JBoss, JBoss World 2009
        by Marius Bogoevici (Snowdrop lead developer)

        “JBoss is a great place for
        running Spring applications!”



    ●   http://www.redhat.com/f/pdf/jbw/mbogoevici_1050_spring_on_jboss.pdf

3                           CZJUG JAN-2010 | LUKAS VLCEK
Spring Deployer

    ●   Recognizes and deploy Spring applications
    ●   /META-INF/*-spring.xml (archives: JAR, WAR, EAR...)



    How it works:
    Spring deployer parses the
    deployment descriptor to create a
    Spring bean factory, and registers
    that Spring bean factory under some
    JNDI name so that it can be looked
    up and used by other applications.
    And if deployed archive is removed,
    JBoss destroy the bean factory and
    unregister it from JNDI.




4                                CZJUG JAN-2010 | LUKAS VLCEK
Example of /META-INF/jboss-spring.xml

    ●   Spring BeanFactory is registered in JNDI with name
        SpringDao.

    <?xml version="1.0" encoding="UTF­8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema­instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring­beans.xsd">

        <description>BeanFactory=(SpringDao)</description>

        <import resource="classpath*:dao­context.xml"/>
        <import resource="classpath*:infrastructure.xml"/>

    </beans>




5                         CZJUG JAN-2010 | LUKAS VLCEK
JBoss Virtual File System

    ●   JDK URL resource handling is not easy
         ●   Windows file locking, code duplicity
    ●   Virtual File System was created to solve these issues
        but resource and classpath scanning in Spring's 2.5.x
        did not work properly:
         ●   if resource path has [*] after [:]
                <import resource=”classpath*:META­INF/*.xml”/>

         ●   if classes need to be scanned for annotations
                <context:component­scan
                   base­package="org.jboss.snowdrop.sample.springmvc"/>



6                           CZJUG JAN-2010 | LUKAS VLCEK
JBoss VFS Support Solution

    ●   JBoss added two implementations of
        ApplicationContext
        Spring class                            JBoss class
        ClassPathXmlApplicationContext          VFSClassPathXmlApplicationContext
        XmlWebApplicationContext                VFSXmlWebApplicationContext

<servlet>
   <servlet­name>spring­mvc­servlet</servlet­name>
   <servlet­class>org.springframework.web.servlet.DispatcherServlet</servlet­class>
   <init­param>
      <param­name>contextClass</param­name>
      <param­value>
         org.jboss.spring.vfs.context.VFSXmlWebApplicationContext
      </param­value>
   </init­param>
   <init­param>
      <param­name>contextConfigLocation</param­name>
      <param­value>/WEB­INF/spring­servlet­context.xml</param­value>
  </init­param>
</servlet>
7                            CZJUG JAN-2010 | LUKAS VLCEK
Injecting Spring Beans in EJB3

    ●   Spring deployer introduced new annotation: @Spring
    ●   Using Spring @Autowired annotation

@Stateless
@Interceptors(SpringLifecycleInterceptor.class)
@LocalBinding(jndiBinding = "sportsclub/SubscriptionService")
public class SubscriptionServiceImpl implements SubscriptionService
{

   @Spring(bean = "accountRepository", jndiName = "SpringDao")
   private AccountRepository accountRepository;

   @Spring(bean = "personRepository", jndiName = "SpringDao")
   private PersonRepository personRepository;
 ...
}


8                      CZJUG JAN-2010 | LUKAS VLCEK
JSF and Spring

    ●    Spring provides implementation of ELResolver
        faces­config.xml
        <application>
            <view­handler>com.sun.facelets.FaceletViewHandler</view­handler>
            <el­resolver>
                org.springframework.web.jsf.el.SpringBeanFacesELResolver
            </el­resolver>
        </application>


        web.xml
        <context­param>
            <param­name>contextConfigLocation</param­name>
            <param­value>/WEB­INF/spring­beans.xml</param­value>
        </context­param>
        <listener>
            <listener­class>
                org.springframework.web.context.ContextLoaderListener
            </listener­class>
        </listener>


9                            CZJUG JAN-2010 | LUKAS VLCEK
Not Covered in this Lightning Talk

     ●   JTA
     ●   JAX-WS
     ●   JPA
     ●   JMX
     ●   Tooling (JBoss Eclipse extensions)


         ... see Snowdrop examples and Marius' presentation




10                      CZJUG JAN-2010 | LUKAS VLCEK
Snowdrop Status

     ●   1.0.0GA released in October 2009
          ●   Supports
               ●   JBoss AS 5.x (preferably 5.1.0 GA)
               ●   Spring 2.5.x (preferably 2.5.6 SEC01)

     ●   1.1.0GA to be released soon




11                             CZJUG JAN-2010 | LUKAS VLCEK
Snowdrop Roadmap

     ●   Spring AOP integration with JBoss AOP
     ●   Spring integration with JBoss MC
     ●   Clustering support for Spring through Infinispan
     ●   Spring 3
     ●   JBoss AS 6




12                       CZJUG JAN-2010 | LUKAS VLCEK
Related Articles

     ●   Spring and EJB 3.0 in Harmony, Aleš Justin (2006 ~ little dated)
         http://java.sys-con.com/node/180386
         Spring deployer, Injecting Spring into EJB
     ●   DZone JBoss Microcontainer Series, Aleš Justin (2008-2009)
         Component Model, Advanced Dependency Injection and IoC,
         Virtual File System, ClassLoading Layer




13                         CZJUG JAN-2010 | LUKAS VLCEK
Questions?



14   CZJUG JAN-2010 | LUKAS VLCEK

Más contenido relacionado

La actualidad más candente

Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012alepalin
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기jbugkorea
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Codecamp Romania
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Shreedhar Ganapathy
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clusteringgouthamrv
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikEdgar Espina
 
GlassFish can support multiple Ruby frameworks ... really ?
GlassFish can support multiple Ruby frameworks ... really ?GlassFish can support multiple Ruby frameworks ... really ?
GlassFish can support multiple Ruby frameworks ... really ?Arun Gupta
 
Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Andries Inzé
 
JBUG.be EJB3 Why use Spring?
JBUG.be EJB3 Why use Spring?JBUG.be EJB3 Why use Spring?
JBUG.be EJB3 Why use Spring?Andries Inzé
 

La actualidad más candente (19)

Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
 
Tomcat tutorail
Tomcat tutorailTomcat tutorail
Tomcat tutorail
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Java 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clustering
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip Hanik
 
GlassFish can support multiple Ruby frameworks ... really ?
GlassFish can support multiple Ruby frameworks ... really ?GlassFish can support multiple Ruby frameworks ... really ?
GlassFish can support multiple Ruby frameworks ... really ?
 
Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be Kabir Khan on AS6 at JBUG.be
Kabir Khan on AS6 at JBUG.be
 
JBUG.be EJB3 Why use Spring?
JBUG.be EJB3 Why use Spring?JBUG.be EJB3 Why use Spring?
JBUG.be EJB3 Why use Spring?
 

Destacado (14)

Snowdrop
SnowdropSnowdrop
Snowdrop
 
Tulips
TulipsTulips
Tulips
 
Florida Sheriffs Association Announces 2016 Legislator of the Year and Legisl...
Florida Sheriffs Association Announces 2016 Legislator of the Year and Legisl...Florida Sheriffs Association Announces 2016 Legislator of the Year and Legisl...
Florida Sheriffs Association Announces 2016 Legislator of the Year and Legisl...
 
Flori la ferestre
Flori la ferestreFlori la ferestre
Flori la ferestre
 
Snowdrop
SnowdropSnowdrop
Snowdrop
 
Floarea De Colt (Edelweiss)
Floarea De Colt (Edelweiss)Floarea De Colt (Edelweiss)
Floarea De Colt (Edelweiss)
 
Floarea ppt
Floarea pptFloarea ppt
Floarea ppt
 
Football
FootballFootball
Football
 
Tulip
TulipTulip
Tulip
 
Dumitrite- Mums
Dumitrite- MumsDumitrite- Mums
Dumitrite- Mums
 
Clasa 7
Clasa 7Clasa 7
Clasa 7
 
1 sugestii pentru amenajarea gradinii
1 sugestii pentru amenajarea gradinii1 sugestii pentru amenajarea gradinii
1 sugestii pentru amenajarea gradinii
 
Football(Soccer)
Football(Soccer)Football(Soccer)
Football(Soccer)
 
Japan Power Point
Japan Power PointJapan Power Point
Japan Power Point
 

Similar a JBoss Snowdrop

JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 WebservicesJBug Italy
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionDimitris Andreadis
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Abhishek Gupta
 
How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17Johan Janssen
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
Java EE 02-First Servlet
Java EE 02-First ServletJava EE 02-First Servlet
Java EE 02-First ServletFernando Gil
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionArun Gupta
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012Alexis Hassler
 
Introduction to jsf2
Introduction to jsf2Introduction to jsf2
Introduction to jsf2Rajiv Gupta
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Arun Gupta
 

Similar a JBoss Snowdrop (20)

JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 Webservices
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2Glass Fish Slides Fy2009 2
Glass Fish Slides Fy2009 2
 
GlassFish Embedded API
GlassFish Embedded APIGlassFish Embedded API
GlassFish Embedded API
 
How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17How and why to upgrade to java 16 or 17
How and why to upgrade to java 16 or 17
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Java EE 02-First Servlet
Java EE 02-First ServletJava EE 02-First Servlet
Java EE 02-First Servlet
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Introduction to jsf2
Introduction to jsf2Introduction to jsf2
Introduction to jsf2
 
jsf2 Notes
jsf2 Notesjsf2 Notes
jsf2 Notes
 
Jbosstraining
JbosstrainingJbosstraining
Jbosstraining
 
Jboss Tutorial Basics
Jboss Tutorial BasicsJboss Tutorial Basics
Jboss Tutorial Basics
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
 
DavidWible_res
DavidWible_resDavidWible_res
DavidWible_res
 

Más de Lukas Vlcek

Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftLukas Vlcek
 
JBug_React_and_Flux_2015
JBug_React_and_Flux_2015JBug_React_and_Flux_2015
JBug_React_and_Flux_2015Lukas Vlcek
 
Elasticsearch @JBoss.org, 2014
Elasticsearch @JBoss.org, 2014Elasticsearch @JBoss.org, 2014
Elasticsearch @JBoss.org, 2014Lukas Vlcek
 
An Introduction to Apache Hadoop, Mahout and HBase
An Introduction to Apache Hadoop, Mahout and HBaseAn Introduction to Apache Hadoop, Mahout and HBase
An Introduction to Apache Hadoop, Mahout and HBaseLukas Vlcek
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearchLukas Vlcek
 
Compass Framework
Compass FrameworkCompass Framework
Compass FrameworkLukas Vlcek
 

Más de Lukas Vlcek (7)

Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
 
JBug_React_and_Flux_2015
JBug_React_and_Flux_2015JBug_React_and_Flux_2015
JBug_React_and_Flux_2015
 
Elasticsearch @JBoss.org, 2014
Elasticsearch @JBoss.org, 2014Elasticsearch @JBoss.org, 2014
Elasticsearch @JBoss.org, 2014
 
An Introduction to Apache Hadoop, Mahout and HBase
An Introduction to Apache Hadoop, Mahout and HBaseAn Introduction to Apache Hadoop, Mahout and HBase
An Introduction to Apache Hadoop, Mahout and HBase
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearch
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

JBoss Snowdrop

  • 1. JBOSS SNOWDROP TITLE SLIDE: HEADLINE Presenter Lukáš Vlček name Senior QAHat Title, Red Engineer, JBoss January 25th, 2010 Date 1 CZJUG JAN-2010 | LUKAS VLCEK
  • 2. What is JBoss Snowdrop? ● Informal: “... you can easily develop, deploy and run Spring based applications on JBoss AS utilizing its JEE services” ● More formal: Snowdrop is a utility package that contains JBoss specific extensions to the Spring Framework. ● License: LGPL v2.1 ● Hosted: http://jboss.org/snowdrop 2 CZJUG JAN-2010 | LUKAS VLCEK
  • 3. Why Using Spring on JBoss AS? ● Spring provides popular development model ● JBoss AS provides runtime services ● More details: Spring on JBoss, JBoss World 2009 by Marius Bogoevici (Snowdrop lead developer) “JBoss is a great place for running Spring applications!” ● http://www.redhat.com/f/pdf/jbw/mbogoevici_1050_spring_on_jboss.pdf 3 CZJUG JAN-2010 | LUKAS VLCEK
  • 4. Spring Deployer ● Recognizes and deploy Spring applications ● /META-INF/*-spring.xml (archives: JAR, WAR, EAR...) How it works: Spring deployer parses the deployment descriptor to create a Spring bean factory, and registers that Spring bean factory under some JNDI name so that it can be looked up and used by other applications. And if deployed archive is removed, JBoss destroy the bean factory and unregister it from JNDI. 4 CZJUG JAN-2010 | LUKAS VLCEK
  • 5. Example of /META-INF/jboss-spring.xml ● Spring BeanFactory is registered in JNDI with name SpringDao. <?xml version="1.0" encoding="UTF­8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema­instance"        xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring­beans.xsd">     <description>BeanFactory=(SpringDao)</description>     <import resource="classpath*:dao­context.xml"/>     <import resource="classpath*:infrastructure.xml"/> </beans> 5 CZJUG JAN-2010 | LUKAS VLCEK
  • 6. JBoss Virtual File System ● JDK URL resource handling is not easy ● Windows file locking, code duplicity ● Virtual File System was created to solve these issues but resource and classpath scanning in Spring's 2.5.x did not work properly: ● if resource path has [*] after [:] <import resource=”classpath*:META­INF/*.xml”/> ● if classes need to be scanned for annotations <context:component­scan base­package="org.jboss.snowdrop.sample.springmvc"/> 6 CZJUG JAN-2010 | LUKAS VLCEK
  • 7. JBoss VFS Support Solution ● JBoss added two implementations of ApplicationContext Spring class JBoss class ClassPathXmlApplicationContext VFSClassPathXmlApplicationContext XmlWebApplicationContext VFSXmlWebApplicationContext <servlet>    <servlet­name>spring­mvc­servlet</servlet­name>    <servlet­class>org.springframework.web.servlet.DispatcherServlet</servlet­class>    <init­param>       <param­name>contextClass</param­name>       <param­value>          org.jboss.spring.vfs.context.VFSXmlWebApplicationContext       </param­value>    </init­param>    <init­param>       <param­name>contextConfigLocation</param­name>       <param­value>/WEB­INF/spring­servlet­context.xml</param­value>   </init­param> </servlet> 7 CZJUG JAN-2010 | LUKAS VLCEK
  • 8. Injecting Spring Beans in EJB3 ● Spring deployer introduced new annotation: @Spring ● Using Spring @Autowired annotation @Stateless @Interceptors(SpringLifecycleInterceptor.class) @LocalBinding(jndiBinding = "sportsclub/SubscriptionService") public class SubscriptionServiceImpl implements SubscriptionService {    @Spring(bean = "accountRepository", jndiName = "SpringDao")    private AccountRepository accountRepository;    @Spring(bean = "personRepository", jndiName = "SpringDao")    private PersonRepository personRepository;  ... } 8 CZJUG JAN-2010 | LUKAS VLCEK
  • 9. JSF and Spring ● Spring provides implementation of ELResolver faces­config.xml <application>     <view­handler>com.sun.facelets.FaceletViewHandler</view­handler>     <el­resolver>         org.springframework.web.jsf.el.SpringBeanFacesELResolver     </el­resolver> </application> web.xml <context­param>     <param­name>contextConfigLocation</param­name>     <param­value>/WEB­INF/spring­beans.xml</param­value> </context­param> <listener>     <listener­class>         org.springframework.web.context.ContextLoaderListener     </listener­class> </listener> 9 CZJUG JAN-2010 | LUKAS VLCEK
  • 10. Not Covered in this Lightning Talk ● JTA ● JAX-WS ● JPA ● JMX ● Tooling (JBoss Eclipse extensions) ... see Snowdrop examples and Marius' presentation 10 CZJUG JAN-2010 | LUKAS VLCEK
  • 11. Snowdrop Status ● 1.0.0GA released in October 2009 ● Supports ● JBoss AS 5.x (preferably 5.1.0 GA) ● Spring 2.5.x (preferably 2.5.6 SEC01) ● 1.1.0GA to be released soon 11 CZJUG JAN-2010 | LUKAS VLCEK
  • 12. Snowdrop Roadmap ● Spring AOP integration with JBoss AOP ● Spring integration with JBoss MC ● Clustering support for Spring through Infinispan ● Spring 3 ● JBoss AS 6 12 CZJUG JAN-2010 | LUKAS VLCEK
  • 13. Related Articles ● Spring and EJB 3.0 in Harmony, Aleš Justin (2006 ~ little dated) http://java.sys-con.com/node/180386 Spring deployer, Injecting Spring into EJB ● DZone JBoss Microcontainer Series, Aleš Justin (2008-2009) Component Model, Advanced Dependency Injection and IoC, Virtual File System, ClassLoading Layer 13 CZJUG JAN-2010 | LUKAS VLCEK
  • 14. Questions? 14 CZJUG JAN-2010 | LUKAS VLCEK