SlideShare uma empresa Scribd logo
1 de 33
Upgrading to JBoss
      AS7
      Amit Sharma
     AXS USA LLC
    amit@axsusa.com
      9th Jan 2013
Index
O Cover Jboss AS7
  O Jboss AS 6.x/5.x comparison
O Features
O The Architecture
O New Components
O Lessons learned
O References
JBoss AS7
O 7.0.0.Final – First stable release 12th July
    2011
O   7.1.1.Final – released 9th March 2012
O   First major shift – common codebase
O   Major re-write of the underlying
    architecture
O   Extensible framework – Immutant
    (clojure), torquebox (Jruby)
Client History
O A complete JBoss Shop
  O JBoss EAP 6.x
  O Hibernate 3.3
  O Seam 2.x
  O JBoss Messaging
  O JMX Console
  O RestEasy
  O Jdk 1.6.0_31
Features
JBoss AS7 Website:
O Blazingly fast (<3s startup)
O Lightweight
O Modular core
O Elegant administration
O Domain management
O First class components
AS7 Architecture
O Core:
  O Jboss Modules (class loading of resources)
  O Module Service Container (install/uninstall
    or manage services)
O Standalone.xml at the heart of Jboss
  O Snapshot folder strategy
O JSR-299 compliant server (Java EE6)
  O CDI / Weld supported fully.
O Modules are open source projects
AS7 Architecture (standard)
 O Hibernate Core (4.0.1.Final) – Default JPA
     Provider.
 O   RestEasy (2.3.1.GA)
 O   Apache CXF (4.0.1.GA)
 O   Mojarra (JSF 2.0)
 O   JBoss Logging (Java Util Logging)
 * Jboss/docs/licenses/licenses.xml
Folder Structure
Modules
AS    Bootstrap libs      Server libs
4.x   JBOSS_HOME/server   JBOSS_HOME/server/<server>/lib

5.x – JBOSS_HOME/server   JBOSS_HOME/common/lib and
6.x                       JBOSS_HOME/server/<server>/lib

7.x   JBOSS_HOME/jboss-   JBOSS_HOME/modules subfolders.
      modules.jar
Standalone.xml
O Variants of standalone.xml pre-exist.
O <extensions> - shared by all applications
  O These are stored in ‘modules’
O <profile> - collection of subsystems.
  O One for standalone, multiple for domain.
O <interfaces> - bind addresses.
O <socket-binding-group> - define ports.
O <system-properties>
  O Define in xml
  O standalone.bat -P=mypropertiesfile.properties
Standalone.xml (contd.)
O Adding SMTP support
  O Bring the subsystem
  <subsystem xmlns="urn:jboss:domain:mail:1.0">
   <mail-session jndi-name="java:/Mail" debug="true">
      <smtp-server outbound-socket-binding-ref="mail-smtp"/>
   </mail-session>
  </subsystem>
  O Add the socket bindings
  <outbound-socket-binding name="mail-smtp">
   <remote-destination host=“mail.google.com" port="25"/>
  </outbound-socket-binding>
Standalone.xml (contd.)
O Overiding default scanner path
<subsystem xmlns="urn:jboss:domain:deployment-
scanner:1.1">
   <deployment-scanner path="C:/myapp/deployments"
scan-interval="5000" auto-deploy-zipped="true" auto-
deploy-exploded="true" deployment-timeout="180"/>
 </subsystem>
O Port Offset
standalone.bat -Djboss.socket.binding.port-
offset=10 [All ports are offset by 10]
http://localhost:8090
Standalone.xml (contd.)
O Registering a database driver (another subsystem)
  O No common/lib or *ds.xml files
<datasources>
            <datasource jndi-name="java:jboss/datasources/testDS" pool-
name="testDS" use-java-context="false">
           <connection-url>jdbc:oracle:thin:@myserverip/myschema</connection-url>
           <driver>oracle</driver>
           <security>
              <user-name>amit</user-name>
              <password>sharma</password>
           </security>
        </datasource>
        <drivers>
           <driver name="oracle" module="com.oracle.ojdbc6">
              <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
           </driver>
        </drivers>
      </datasources>

JBOSS_HOMEmodulescomoracleojdbc6mainmodule.xml and jar
JBoss CLI
O Example:
<system-properties>
<property name="hibernate.default_schema“ value="AMIT"/>
</system-properties>
O Read System properties
[standalone@localhost:9999 /] /system-
property=hibernate.default_schema:read-resource
{
   "outcome" => "success",
   "result" => {"value" => "AMIT"}
}
JBoss CLI (contd.)
O Command Line Interface. GUI available as well.
   O /subsystem=datasources/data-source=ExampleDS/
      c:jboss-as-7.1.1.Finalbin>jboss-cli.bat –gui
O Command line
[standalone@localhost:9999 /]
/subsystem=datasources/data-source=ExampleDS:read-
attribute(name=connection-url)
{
   "outcome" => "success",
   "result" => "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"
}
Deployment
O Mechanisms:
  O Deployments Directory
    (/standalone/deployments)
  O CLI (undeploy and then .dodeploy)
  O Marker files
    O   .deployed or .undeployed markers
    O   .failed
    O    .isdeploying
    O    .isundeploying
  O Management Console
  O Eclipse Plugin
What’s new
O HornetQ – default JMS Provider (2.2.11)
O Jgroups API Implementation for communication
  between nodes - UDP and multicast. (3.1.0.GA)
O IronJacamar - Java Connector Architecture 1.6
  Implementation. (1.0.7.Final)
O Infinispan – JSR-107 compatible cache
   O Handles cluster consistency
O Jolokia - JMX-HTTP bridge (JMX with JSON over
  http)
O Arquillian support.
O Mod_cluster support. (mod_jk and mod_proxy still
  works)
HornetQ
O HornetQ is an open source project to build a
  multi-protocol, embeddable, very high
  performance, clustered, asynchronous
  messaging system.
O High performance journal mechanism for
  message persistence (No database
  persistence)
O Provides fully functional JMS capabilities.
   O Supports JMS 1.1 API. (No code changes)
   O Provides its own Messaging API.
   O STOMP and REST support
HornetQ (contd.)
O MDB example
  O No Java Impact to MDBs
    @MessageDriven(name = "MDBExample",
              activationConfig =
                  {
                     @ActivationConfigProperty(propertyName =
    "destinationType", propertyValue = "javax.jms.Queue"),
                     @ActivationConfigProperty(propertyName =
    "destination", propertyValue = "queue/testQueue")
                  })
    public class MDBExample implements MessageListener
    {
      public void onMessage(Message message)...
    }
HornetQ (contd.)
O Wildcards on Addresses rather than specific queue.
   O   filter for the destination - jms.queue.#
O Standalone-full-ha.xml
      <jms-destinations>
          <jms-queue name="testQueue">
             <entry name="queue/test"/>
           <entry name="java:jboss/exported/jms/queue/test"/>
          </jms-queue>
          <jms-topic name="testTopic">
             <entry name="topic/test"/>
             <entry name="java:jboss/exported/jms/topic/test"/>
          </jms-topic>
       </jms-destinations>
HornetQ (contd.)
O Integration with any JEE App Server must
 happen via JCA (Java Connector
 Architecture) Adaptor
  O A JCA Adapter basically controls the inflow
    of messages to Message-Driven Beans
    (MDBs) and the outflow of messages sent
    from other JEE components, e.g. EJBs and
    Servlets.
  O Anti-pattern defined. (See Image)
HornetQ (contd.)
O Anti-Pattern
JBoss CLI - HornetQ
O See a Queue
   O /subsystem=messaging/hornetq-
     server=default/:read-children-
     resources(child-type=jms-queue)
O Read a broadcast-group
   O /subsystem=messaging/hornetq-
     server=default/:read-children-names(child-
     type=broadcast-group)
O Test a connection
data-source test-connection-in-pool --name=testDS
Jolokia
O WAR-Agent (access to your JMX beans)
O Query:
http://localhost:8080/jolokia-war-
1.0.6/read/jboss.as:subsystem=datasources,data-
source=ExampleDS/connectionUrl?ignoreErrors=true
O Result:
{"timestamp":1357502024,"status":200,"request":{"m
bean":"jboss.as:data-
source=ExampleDS,subsystem=datasources","attrib
ute":"connectionUrl","type":"read"},"value":"jdbc:h2:m
em:test;DB_CLOSE_DELAY=-1"}
Arquillian
O No more mocks and No more container lifecycle
   and deployment
@RunWith(Arquillian.class)
public class GreeterTest {
  @Deployment
  public static JavaArchive createDeployment() {
     return ShrinkWrap.create(JavaArchive.class)
        .addClass(Greeter.class)
        .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
  }
@Inject
Greeter greeter;
@Test
public void should_create_greeting() {
     assertEquals("Hello, Earthling!", greeter.greet("Earthling"));
  }
}
Arquillian (contd.)
O src/test/resources/arquillian.xml
<arquillian xmlns="http://jboss.org/schema/arquillian"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
     http://jboss.org/schema/arquillian
     http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
  <container qualifier="jbossas-managed" default="true">
     <configuration>
        <property name="jbossHome">target/jboss-as-
7.1.1.Final</property>
     </configuration>
  </container>
</arquillian>
What’s missing?
O JMX Console
O JBoss Messaging 1.0
O JBoss Logging (old implementation)
O VFS – Virtual File System
O Farm deployment (vs Domain settings)
O Same folder structure
O Extensive configuration 
O Clear Documentation 
Lessons Learned
O Seam 2.x (hibernate dependency)
O Hibernate Validators (JPA-2 compliance)
O Apache CXF collision
O Seam Tests failure (Arquillian upgrade)
O JMX console obsolete (jolokia war)
O JSF 1.2 support
O HornetQ learning curve and dns issues.
O MDB and Seam race condition issues.
  [@DependsOn does not work]
O Jboss Logging
Lessons Learned (contd.)
O Hibernate 3.x (JPA 2) support
    O META-INF/persistence.xml
         <property name="jboss.as.jpa.providerModule"
value="hibernate3-bundled" />
O Enable AJP Connector binding
   O <connector name="AJP"
     protocol="AJP/1.3" socket-binding="ajp" />
   O <socket-binding name="ajp" port="8009"/>
O HornetQ clustering (disabled by default)
   O <clustered>true</clustered>
Lessons Learned (contd.)
O    Declare dependencies
META-INF/MANIFEST.MF
           Dependencies: org.apache.log4j
OR

WEB-INF/jboss-deployment-structure.xml
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
   <deployment>
     <exclusions>
       <module name="javax.faces.api" slot="main"/>
       <module name="com.sun.jsf-impl" slot="main"/>
     </exclusions>
     <dependencies>
       <module name="javax.faces.api" slot="1.2" export="true"/>
       <module name="com.sun.jsf-impl" slot="1.2" export="true"/>
     </dependencies>
   </deployment>
</jboss-deployment-structure>
Lessons Learned (contd.)
O Jboss-web.xml (still defines the context)
   <jboss-web>
      <context-root>myapp</context-root>
   </jboss-web>
O HornetQ - DNS entries must exist for IP addresses
  defined for messaging (multicast or otherwise)
O HornetQ – multicast configuration is enabled by default.
O HornetQ - Round Robin Load Balancing configuration.
<connection-load-balancing-policy-class-name>
org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLo
adBalancingPolicy</connection-load-balancing-policy-class-name>
Lessons Learned (contd.)
O JBoss - You can load your own xml by :
  standalone.bat --server-config standalone-
  full-ha.xml
O JBOSS_HOME/docs/schema has
  dtds/xsds defined for validations
O Arquillian – TestSuite still in works.
References
O JBoss AS 7 Configuration, Deployment and Administration.
  Marchioni, Francesco
O Credits: Isaac Christoffersen (Vizuri), Aslak Knutsen (Red
  Hat) and Catherine Robson (Red Hat)
O Links:
   http://www.jboss.org/as7
   https://docs.jboss.org/author/display/AS71/Documentation
   http://Jolokia.org
   http://www.jboss.org/ironjacamar
   http://java.net/projects/mojarra/
   http://jboss.org/hornetq
   http://www.jgroups.org/
   http://arqullian.org
   http://www.jboss.org/resteasy
   http://www.jboss.org/infinispan

Mais conteúdo relacionado

Mais procurados

April 2010 - JBoss Web Services
April 2010 - JBoss Web ServicesApril 2010 - JBoss Web Services
April 2010 - JBoss Web Services
JBug Italy
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQL
Antony T Curtis
 

Mais procurados (18)

#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
Javatwo2012 java frameworkcomparison
Javatwo2012 java frameworkcomparisonJavatwo2012 java frameworkcomparison
Javatwo2012 java frameworkcomparison
 
Oracle Cloud As Services
Oracle Cloud As ServicesOracle Cloud As Services
Oracle Cloud As Services
 
Spring 4 - A&BP CC
Spring 4 - A&BP CCSpring 4 - A&BP CC
Spring 4 - A&BP CC
 
Building node.js applications with Database Jones
Building node.js applications with Database JonesBuilding node.js applications with Database Jones
Building node.js applications with Database Jones
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Using Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDBUsing Perl Stored Procedures for MariaDB
Using Perl Stored Procedures for MariaDB
 
Hibernate
HibernateHibernate
Hibernate
 
April 2010 - JBoss Web Services
April 2010 - JBoss Web ServicesApril 2010 - JBoss Web Services
April 2010 - JBoss Web Services
 
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
 
Teste de Integração com DbUnit e jIntegrity
Teste de Integração com DbUnit e jIntegrityTeste de Integração com DbUnit e jIntegrity
Teste de Integração com DbUnit e jIntegrity
 
Writing Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason LeeWriting Plugged-in Java EE Apps: Jason Lee
Writing Plugged-in Java EE Apps: Jason Lee
 
My sql tutorial-oscon-2012
My sql tutorial-oscon-2012My sql tutorial-oscon-2012
My sql tutorial-oscon-2012
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQL
 
Java Microservices with DropWizard
Java Microservices with DropWizardJava Microservices with DropWizard
Java Microservices with DropWizard
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
 
Top5 scalabilityissues
Top5 scalabilityissuesTop5 scalabilityissues
Top5 scalabilityissues
 

Destaque

Historia del comercio electrónico
Historia del comercio electrónicoHistoria del comercio electrónico
Historia del comercio electrónico
avigabaena
 
Microtarea naturales
Microtarea naturalesMicrotarea naturales
Microtarea naturales
anthoni_2001
 
Ordesa "dos de dos"
Ordesa "dos de dos"Ordesa "dos de dos"
Ordesa "dos de dos"
atxarte
 
Blyundersøkelse, Fossum skiskytterarena 2015 12 06
Blyundersøkelse, Fossum skiskytterarena 2015 12 06Blyundersøkelse, Fossum skiskytterarena 2015 12 06
Blyundersøkelse, Fossum skiskytterarena 2015 12 06
knut søraas
 

Destaque (20)

Historia del comercio electrónico
Historia del comercio electrónicoHistoria del comercio electrónico
Historia del comercio electrónico
 
Wbt Express
Wbt ExpressWbt Express
Wbt Express
 
CV Juan Carlos Castro
CV Juan Carlos CastroCV Juan Carlos Castro
CV Juan Carlos Castro
 
Attirer les clients wallons
Attirer les clients wallonsAttirer les clients wallons
Attirer les clients wallons
 
Book Review
Book ReviewBook Review
Book Review
 
Winterprospekt - Hotel Neuhaus
Winterprospekt - Hotel NeuhausWinterprospekt - Hotel Neuhaus
Winterprospekt - Hotel Neuhaus
 
Microtarea naturales
Microtarea naturalesMicrotarea naturales
Microtarea naturales
 
Ordesa "dos de dos"
Ordesa "dos de dos"Ordesa "dos de dos"
Ordesa "dos de dos"
 
Creating a Culture of Energy Efficiency
Creating a Culture of Energy EfficiencyCreating a Culture of Energy Efficiency
Creating a Culture of Energy Efficiency
 
Deutsche Bank Research on eInvoicing
Deutsche Bank Research on eInvoicingDeutsche Bank Research on eInvoicing
Deutsche Bank Research on eInvoicing
 
Memoria Asociación Home Family Power 2014
Memoria Asociación Home Family Power 2014Memoria Asociación Home Family Power 2014
Memoria Asociación Home Family Power 2014
 
EL CONSEJO INDEPENDIENTE DE PROTECCIÓN DE LA INFANCIA (CIPI) EXPRESA SU PREOC...
EL CONSEJO INDEPENDIENTE DE PROTECCIÓN DE LA INFANCIA (CIPI) EXPRESA SU PREOC...EL CONSEJO INDEPENDIENTE DE PROTECCIÓN DE LA INFANCIA (CIPI) EXPRESA SU PREOC...
EL CONSEJO INDEPENDIENTE DE PROTECCIÓN DE LA INFANCIA (CIPI) EXPRESA SU PREOC...
 
Special Bulletin
Special BulletinSpecial Bulletin
Special Bulletin
 
Informe monográfico "Experiencias de RSC" - La experiencia de FASVOL. Lluis R...
Informe monográfico "Experiencias de RSC" - La experiencia de FASVOL. Lluis R...Informe monográfico "Experiencias de RSC" - La experiencia de FASVOL. Lluis R...
Informe monográfico "Experiencias de RSC" - La experiencia de FASVOL. Lluis R...
 
POI 2014 ANCASH
POI 2014 ANCASHPOI 2014 ANCASH
POI 2014 ANCASH
 
Blyundersøkelse, Fossum skiskytterarena 2015 12 06
Blyundersøkelse, Fossum skiskytterarena 2015 12 06Blyundersøkelse, Fossum skiskytterarena 2015 12 06
Blyundersøkelse, Fossum skiskytterarena 2015 12 06
 
Brik Col Pisos
Brik Col PisosBrik Col Pisos
Brik Col Pisos
 
Network Planning and Optimization
Network Planning and OptimizationNetwork Planning and Optimization
Network Planning and Optimization
 
Vidrio Eficiente Energetica
Vidrio Eficiente EnergeticaVidrio Eficiente Energetica
Vidrio Eficiente Energetica
 
Presentacion de orange institucional
Presentacion de orange institucionalPresentacion de orange institucional
Presentacion de orange institucional
 

Semelhante a JBoss AS Upgrade

Upgrade to JBoss AS7
Upgrade to JBoss AS7Upgrade to JBoss AS7
Upgrade to JBoss AS7
axsusa
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012
Alexis Hassler
 
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
alepalin
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Nick Sieger
 
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
Samuel Tauil
 

Semelhante a JBoss AS Upgrade (20)

Upgrade to JBoss AS7
Upgrade to JBoss AS7Upgrade to JBoss AS7
Upgrade to JBoss AS7
 
J boss
J bossJ boss
J boss
 
Dropwizard
DropwizardDropwizard
Dropwizard
 
JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 Webservices
 
JBoss AS7 web services
JBoss AS7 web servicesJBoss AS7 web services
JBoss AS7 web services
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop Labs
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012
 
JBossWS Project by Alessio Soldano
JBossWS Project by Alessio SoldanoJBossWS Project by Alessio Soldano
JBossWS Project by Alessio Soldano
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration Backend
 
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
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
 
Play framework
Play frameworkPlay framework
Play framework
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
 
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Introduction to Vert.x
Introduction to Vert.xIntroduction to Vert.x
Introduction to Vert.x
 
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 ...
 

Último

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 

JBoss AS Upgrade

  • 1. Upgrading to JBoss AS7 Amit Sharma AXS USA LLC amit@axsusa.com 9th Jan 2013
  • 2. Index O Cover Jboss AS7 O Jboss AS 6.x/5.x comparison O Features O The Architecture O New Components O Lessons learned O References
  • 3. JBoss AS7 O 7.0.0.Final – First stable release 12th July 2011 O 7.1.1.Final – released 9th March 2012 O First major shift – common codebase O Major re-write of the underlying architecture O Extensible framework – Immutant (clojure), torquebox (Jruby)
  • 4. Client History O A complete JBoss Shop O JBoss EAP 6.x O Hibernate 3.3 O Seam 2.x O JBoss Messaging O JMX Console O RestEasy O Jdk 1.6.0_31
  • 5. Features JBoss AS7 Website: O Blazingly fast (<3s startup) O Lightweight O Modular core O Elegant administration O Domain management O First class components
  • 6. AS7 Architecture O Core: O Jboss Modules (class loading of resources) O Module Service Container (install/uninstall or manage services) O Standalone.xml at the heart of Jboss O Snapshot folder strategy O JSR-299 compliant server (Java EE6) O CDI / Weld supported fully. O Modules are open source projects
  • 7. AS7 Architecture (standard) O Hibernate Core (4.0.1.Final) – Default JPA Provider. O RestEasy (2.3.1.GA) O Apache CXF (4.0.1.GA) O Mojarra (JSF 2.0) O JBoss Logging (Java Util Logging) * Jboss/docs/licenses/licenses.xml
  • 9. Modules AS Bootstrap libs Server libs 4.x JBOSS_HOME/server JBOSS_HOME/server/<server>/lib 5.x – JBOSS_HOME/server JBOSS_HOME/common/lib and 6.x JBOSS_HOME/server/<server>/lib 7.x JBOSS_HOME/jboss- JBOSS_HOME/modules subfolders. modules.jar
  • 10. Standalone.xml O Variants of standalone.xml pre-exist. O <extensions> - shared by all applications O These are stored in ‘modules’ O <profile> - collection of subsystems. O One for standalone, multiple for domain. O <interfaces> - bind addresses. O <socket-binding-group> - define ports. O <system-properties> O Define in xml O standalone.bat -P=mypropertiesfile.properties
  • 11. Standalone.xml (contd.) O Adding SMTP support O Bring the subsystem <subsystem xmlns="urn:jboss:domain:mail:1.0"> <mail-session jndi-name="java:/Mail" debug="true"> <smtp-server outbound-socket-binding-ref="mail-smtp"/> </mail-session> </subsystem> O Add the socket bindings <outbound-socket-binding name="mail-smtp"> <remote-destination host=“mail.google.com" port="25"/> </outbound-socket-binding>
  • 12. Standalone.xml (contd.) O Overiding default scanner path <subsystem xmlns="urn:jboss:domain:deployment- scanner:1.1"> <deployment-scanner path="C:/myapp/deployments" scan-interval="5000" auto-deploy-zipped="true" auto- deploy-exploded="true" deployment-timeout="180"/> </subsystem> O Port Offset standalone.bat -Djboss.socket.binding.port- offset=10 [All ports are offset by 10] http://localhost:8090
  • 13. Standalone.xml (contd.) O Registering a database driver (another subsystem) O No common/lib or *ds.xml files <datasources> <datasource jndi-name="java:jboss/datasources/testDS" pool- name="testDS" use-java-context="false"> <connection-url>jdbc:oracle:thin:@myserverip/myschema</connection-url> <driver>oracle</driver> <security> <user-name>amit</user-name> <password>sharma</password> </security> </datasource> <drivers> <driver name="oracle" module="com.oracle.ojdbc6"> <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class> </driver> </drivers> </datasources> JBOSS_HOMEmodulescomoracleojdbc6mainmodule.xml and jar
  • 14. JBoss CLI O Example: <system-properties> <property name="hibernate.default_schema“ value="AMIT"/> </system-properties> O Read System properties [standalone@localhost:9999 /] /system- property=hibernate.default_schema:read-resource { "outcome" => "success", "result" => {"value" => "AMIT"} }
  • 15. JBoss CLI (contd.) O Command Line Interface. GUI available as well. O /subsystem=datasources/data-source=ExampleDS/ c:jboss-as-7.1.1.Finalbin>jboss-cli.bat –gui O Command line [standalone@localhost:9999 /] /subsystem=datasources/data-source=ExampleDS:read- attribute(name=connection-url) { "outcome" => "success", "result" => "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" }
  • 16. Deployment O Mechanisms: O Deployments Directory (/standalone/deployments) O CLI (undeploy and then .dodeploy) O Marker files O .deployed or .undeployed markers O .failed O .isdeploying O .isundeploying O Management Console O Eclipse Plugin
  • 17. What’s new O HornetQ – default JMS Provider (2.2.11) O Jgroups API Implementation for communication between nodes - UDP and multicast. (3.1.0.GA) O IronJacamar - Java Connector Architecture 1.6 Implementation. (1.0.7.Final) O Infinispan – JSR-107 compatible cache O Handles cluster consistency O Jolokia - JMX-HTTP bridge (JMX with JSON over http) O Arquillian support. O Mod_cluster support. (mod_jk and mod_proxy still works)
  • 18. HornetQ O HornetQ is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system. O High performance journal mechanism for message persistence (No database persistence) O Provides fully functional JMS capabilities. O Supports JMS 1.1 API. (No code changes) O Provides its own Messaging API. O STOMP and REST support
  • 19. HornetQ (contd.) O MDB example O No Java Impact to MDBs @MessageDriven(name = "MDBExample", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/testQueue") }) public class MDBExample implements MessageListener { public void onMessage(Message message)... }
  • 20. HornetQ (contd.) O Wildcards on Addresses rather than specific queue. O filter for the destination - jms.queue.# O Standalone-full-ha.xml <jms-destinations> <jms-queue name="testQueue"> <entry name="queue/test"/> <entry name="java:jboss/exported/jms/queue/test"/> </jms-queue> <jms-topic name="testTopic"> <entry name="topic/test"/> <entry name="java:jboss/exported/jms/topic/test"/> </jms-topic> </jms-destinations>
  • 21. HornetQ (contd.) O Integration with any JEE App Server must happen via JCA (Java Connector Architecture) Adaptor O A JCA Adapter basically controls the inflow of messages to Message-Driven Beans (MDBs) and the outflow of messages sent from other JEE components, e.g. EJBs and Servlets. O Anti-pattern defined. (See Image)
  • 23. JBoss CLI - HornetQ O See a Queue O /subsystem=messaging/hornetq- server=default/:read-children- resources(child-type=jms-queue) O Read a broadcast-group O /subsystem=messaging/hornetq- server=default/:read-children-names(child- type=broadcast-group) O Test a connection data-source test-connection-in-pool --name=testDS
  • 24. Jolokia O WAR-Agent (access to your JMX beans) O Query: http://localhost:8080/jolokia-war- 1.0.6/read/jboss.as:subsystem=datasources,data- source=ExampleDS/connectionUrl?ignoreErrors=true O Result: {"timestamp":1357502024,"status":200,"request":{"m bean":"jboss.as:data- source=ExampleDS,subsystem=datasources","attrib ute":"connectionUrl","type":"read"},"value":"jdbc:h2:m em:test;DB_CLOSE_DELAY=-1"}
  • 25. Arquillian O No more mocks and No more container lifecycle and deployment @RunWith(Arquillian.class) public class GreeterTest { @Deployment public static JavaArchive createDeployment() { return ShrinkWrap.create(JavaArchive.class) .addClass(Greeter.class) .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"); } @Inject Greeter greeter; @Test public void should_create_greeting() { assertEquals("Hello, Earthling!", greeter.greet("Earthling")); } }
  • 26. Arquillian (contd.) O src/test/resources/arquillian.xml <arquillian xmlns="http://jboss.org/schema/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> <container qualifier="jbossas-managed" default="true"> <configuration> <property name="jbossHome">target/jboss-as- 7.1.1.Final</property> </configuration> </container> </arquillian>
  • 27. What’s missing? O JMX Console O JBoss Messaging 1.0 O JBoss Logging (old implementation) O VFS – Virtual File System O Farm deployment (vs Domain settings) O Same folder structure O Extensive configuration  O Clear Documentation 
  • 28. Lessons Learned O Seam 2.x (hibernate dependency) O Hibernate Validators (JPA-2 compliance) O Apache CXF collision O Seam Tests failure (Arquillian upgrade) O JMX console obsolete (jolokia war) O JSF 1.2 support O HornetQ learning curve and dns issues. O MDB and Seam race condition issues. [@DependsOn does not work] O Jboss Logging
  • 29. Lessons Learned (contd.) O Hibernate 3.x (JPA 2) support O META-INF/persistence.xml <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" /> O Enable AJP Connector binding O <connector name="AJP" protocol="AJP/1.3" socket-binding="ajp" /> O <socket-binding name="ajp" port="8009"/> O HornetQ clustering (disabled by default) O <clustered>true</clustered>
  • 30. Lessons Learned (contd.) O Declare dependencies META-INF/MANIFEST.MF Dependencies: org.apache.log4j OR WEB-INF/jboss-deployment-structure.xml <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> <deployment> <exclusions> <module name="javax.faces.api" slot="main"/> <module name="com.sun.jsf-impl" slot="main"/> </exclusions> <dependencies> <module name="javax.faces.api" slot="1.2" export="true"/> <module name="com.sun.jsf-impl" slot="1.2" export="true"/> </dependencies> </deployment> </jboss-deployment-structure>
  • 31. Lessons Learned (contd.) O Jboss-web.xml (still defines the context) <jboss-web> <context-root>myapp</context-root> </jboss-web> O HornetQ - DNS entries must exist for IP addresses defined for messaging (multicast or otherwise) O HornetQ – multicast configuration is enabled by default. O HornetQ - Round Robin Load Balancing configuration. <connection-load-balancing-policy-class-name> org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLo adBalancingPolicy</connection-load-balancing-policy-class-name>
  • 32. Lessons Learned (contd.) O JBoss - You can load your own xml by : standalone.bat --server-config standalone- full-ha.xml O JBOSS_HOME/docs/schema has dtds/xsds defined for validations O Arquillian – TestSuite still in works.
  • 33. References O JBoss AS 7 Configuration, Deployment and Administration. Marchioni, Francesco O Credits: Isaac Christoffersen (Vizuri), Aslak Knutsen (Red Hat) and Catherine Robson (Red Hat) O Links: http://www.jboss.org/as7 https://docs.jboss.org/author/display/AS71/Documentation http://Jolokia.org http://www.jboss.org/ironjacamar http://java.net/projects/mojarra/ http://jboss.org/hornetq http://www.jgroups.org/ http://arqullian.org http://www.jboss.org/resteasy http://www.jboss.org/infinispan