Download presentation
Presentation is loading. Please wait.
Published byTheodore Simpson Modified over 9 years ago
1
Upgrading to JBoss AS7 Amit Sharma AXS USA LLC amit@axsusa.com MCJUG on 20 th Feb 2013 http://www.slideshare.net/sharmami/jboss-as-upgrade
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 12 th July 2011 O 7.1.1.Final – released 9 th 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 Services start concurrently now. O Lightweight O Metadata indexing that keeps small footprints. O Modular core O Efficient class loading for your app. O Elegant administration O CLI as well as web console. O Domain management O Port offsets, network interface binding. 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
8
Folder Structure
9
Modules ASBootstrap libsServer libs 4.xJBOSS_HOME/serverJBOSS_HOME/server/ /lib 5.x – 6.x JBOSS_HOME/serverJBOSS_HOME/common/lib and JBOSS_HOME/server/ /lib 7.xJBOSS_HOME/jboss- modules.jar JBOSS_HOME/modules subfolders.
10
Standalone.xml O Variants of standalone.xml pre-exist. O - shared by all applications O These are stored in ‘modules’ O - collection of subsystems. O One for standalone, multiple for domain. O - bind addresses. O - define ports. O O Define in xml O standalone.bat -P=mypropertiesfile.properties
11
Standalone.xml (contd.) O Adding SMTP support O Bring the subsystem O Add the socket bindings
12
Standalone.xml (contd.) O Overiding default scanner path 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 jdbc:oracle:thin:@myserverip/myschema oracle amit sharma oracle.jdbc.OracleDriver JBOSS_HOME\modules\com\oracle\ojdbc6\main\module.xml and jar
14
JBoss CLI O Example: 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.Final\bin>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
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)
22
HornetQ (contd.) O Anti-Pattern
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":{"mb ean":"jboss.as:data- source=ExampleDS,subsystem=datasources","attribute" :"connectionUrl","type":"read"},"value":"jdbc:h2:mem: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"> target/jboss-as- 7.1.1.Final
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 O Enable AJP Connector binding O O HornetQ clustering (disabled by default) O true
30
Lessons Learned (contd.) O Declare dependencies META-INF/MANIFEST.MF Dependencies: org.apache.log4j OR WEB-INF/jboss-deployment-structure.xml
31
Lessons Learned (contd.) O Jboss-web.xml (still defines the context) myapp 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. org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadB alancingPolicy
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
34
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.