SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Java EE 6 &
GlassFish v3
Paving the path for future

Arun Gupta, GlassFish Guy
blogs.sun.com/arungupta, @arungupta
Are you tweeting ?



           #glassfish
           #vanjug
Java EE: Past & Present                                                           Flexible
                                                               Ease of
                                                             Development        Java EE 6
                                                                                Pruning
                                                              Java EE 5         Extensibility
                                               Web            Ease of           Profiles
                                              Services        Development       Ease-of-dev
                                                              Annotations
                                                                                EJB Lite
                                             J2EE 1.4         EJB 3.0
                                                                                RESTful WS
                                             Web Services,    Persistence API
                          Robustness         Management,      New and           CDI
          Enterprise                         Deployment,      Updated
             Java         J2EE 1.3           Async.           Web Services
           Platform          CMP,            Connector
                           Connector
                          Architecture   `                                      Java EE 6
          J2EE 1.2
          Servlet, JSP,                                                         Web Profile
           EJB, JMS
 JPE       RMI/IIOP
Project
Compatible Java EE 5 Implementations
Compatible Java EE 6 Implementations

 Today:




 Coming:
Goals for the Java EE 6 Platform

• Flexible & Light-weight
• Extensible
     – Embrace Open Source Frameworks
• Easier to use, develop on
     – Continue on path set by Java EE 5
Java EE 6 is Flexible
• Decouple specifications to allow more combinations
• Expands potential licensee ecosystem
• Profiles
  > Targeted bundle of technologies
  > Defined through the JCP
  > Web Profile Defined
     – Defined by the Java EE 6 Expert Group
Java EE 6 Web Profile 1.0
• Fully functional mid-sized profile
  > Actively discussed in the Java EE 6 Expert Group and
    outside it
  > Technologies
     – Servlets 3.0, JSP 2.2, EL 2.2, Debugging Support for Other Languages 1.0,
       JSTL 1.2, JSF 2.0, Common Annotations 1.1, EJB 3.1 Lite, JTA 1.1, JPA
       2.0, Bean Validation 1.0, Managed Beans 1.0, Interceptors 1.1, Context &
       Dependency Injection 1.0, Dependency Injection for Java 1.0
Java EE 6 is Lightweight
• Pruning
  > Make some technologies optional
• Pruned today, means
  > Optional in the next release
  > Deleted in the subsequent releases
• Pruned technologies will be marked in Javadocs
• Technologies
  > JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88
Java EE 6 is Extensible
• Embrace open source frameworks
  > Wicket, Lift, Spring, Struts, ...
• Zero-configuration, drag-and-drop for web
  frameworks
  > Servlets, servlet filters, context listeners for a framework
    get discovered and registered automatically
• Plugin libraries using web fragments
<web-fragment>
    <filter>
           <filter-name>wicket.helloworld</filter-name>
           <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
           <init-param>
                 <param-name>applicationClassName</param-name>
                 <param-value>...</param-value>
           </init-param>
    </filter>
    <filter-mapping>
           <filter-name>wicket.helloworld</filter-name>
           <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-fragment>


http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee
<web-fragment>
  <filter>
     <filter-name>LiftFilter</filter-name>
      <display-name>Lift Filter</display-name>
      <description>The Filter that intercepts lift calls</description>
      <filter-class>net.liftweb.http.LiftFilter</filter-class>
  </filter>
   <filter-mapping>
     <filter-name>LiftFilter</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-fragment>


 http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3
Java EE 6 - Done
• Specifications approved by the JCP
• Reference Implementation is GlassFish v3
• TCK
Java EE 6 Specifications
• The Platform
• Java EE 6 Web Profile 1.0
• Managed Beans 1.0
Java EE 6 Specifications
New
•   Context and Dependency Injection for Java EE (JSR 299)
•   Bean Validation 1.0 (JSR 303)
•   Java API for RESTful Web Services (JSR 311)
•   Dependency Injection for Java (JSR 330)
Java EE 6 Specifications
Extreme Makeover

•   Java Server Faces 2.0 (JSR 314)
•   Java Servlets 3.0 (JSR 315)
•   Java Persistence 2.0 (JSR 317)
•   Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318)
•   Java EE Connector Architecture 1.6 (JSR 322)
Java EE 6 Specifications
Updates

•   Java API for XML-based Web Services 2.2 (JSR 224)
•   Java API for XML Binding 2.2 (JSR 222)
•   Web Services Metadata MR3 (JSR 181)
•   JSP 2.2/EL 2.2 (JSR 245)
•   Web Services for Java EE 1.3 (JSR 109)
•   Common Annotations 1.1 (JSR 250)
•   Java Authorization Contract for Containers 1.3 (JSR 115)
•   Java Authentication Service Provider Interface for
    Containers 1.0 (JSR 196)
Java EE 6 Specifications
As is
    JDBC 3.0 API
•
    Java Naming and Directory Interface 1.2
•
    Java Message Service 1.1
•
    Java Transaction API 1.1
•
    Java Transaction Service 1.0
•
    JavaMail API Specification 1.4
•
    JavaBeans Activation Framework 1.1
•
    Java API for XML Processing 1.3
•
    Java API for XML-based RPC 1.1
•
    SOAP with Attachments API for Java 1.3
•
    Java API for XML Registries 1.0
•
    Java EE Management Specification 1.1 (JSR 77)
•
    Java EE Deployment Specification 1.2 (JSR 88)
•
    Java Management Extensions 1.2
•
    Java Authentication and Authorization Service 1.0
•
    Debugging Support for Other Languages (JSR 45)
•
    Standard Tag Library for JSP 1.2 (JSR 52)
•
    Streaming API for XML 1.0 (JSR 173)
•
Java EE 6 & Ease-of-development
• Continue advancements of Java EE 5
• Primary focus: Web Tier
• General principles
  > Annotation-based programming model
  > Reduce or eliminate need for DD
  > Traditional API for advanced users
EoD: Servlets
Servlet in Java EE 5: Two Files
<!--Deployment descriptor     /* Code in Java Class */
  web.xml -->
<web-app>                     package com.sun;
  <servlet>                   public class MyServlet extends
    <servlet-name>MyServlet   HttpServlet {
       </servlet-name>        public void
       <servlet-class>        doGet(HttpServletRequest
         com.sun.MyServlet    req,HttpServletResponse res)
       </servlet-class>
  </servlet>                  {
  <servlet-mapping>
    <servlet-name>MyServlet   ...
       </servlet-name>
    <url-pattern>/myApp/*     }
       </url-pattern>
  </servlet-mapping>          ...
   ...
</web-app>                    }
EoD: Servlets in Java EE 6

package com.sun;
@WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”)
public class MyServlet extends HttpServlet {
   public void doGet(HttpServletRequest req,
             HttpServletResponse res)
   {
      ...
   }




http://blogs.sun.com/arungupta/entry/totd_81_getting_started_with
Servlet 3.0
• Annotations to declare Servlets, Filters, Init param, ...
   > “web.xml” is optional in most of the cases
• Pluggable frameworks using web fragments
• Async support
• Programmatic authentication and logout
• Default error page, File upload support
• Using new language features – for example Generics
EJB 3.1
• @Singleton beans – shared state per server VM
• No interface view – one source file per bean
• Calendar timers – cron like semantics
  > @Schedule(dayOfWeek=”Mon,Wed”)
  > (hour=”14”, dayOfMonth=”Last Thu”, month=”Nov”)
  > (minute=”*/5”, hour=”*”)
• Application startup/shutdown callbacks
• EJB “Lite”
  > Small subset of EJB 3.1 for use in Web profile
EoD: EJB Simplified Packaging
           Java EE 5                                        Java EE 6
                                                       foo.war
    foo.ear
                                                       WEB-INF/classes
      foo_web.war                                       com.sun.FooServlet
                                                        com.sun.TickTock
       WEB-INF/web.xml                                  com.sun.FooBean
       WEB-INF/classes                                  com.sun.FooHelper
         com.sun.FooServlet
         com.sun.TickTock

       foo_ejb.jar
       com.sun.FooBean
       com.sun.FooHelper
                                                           web.xml ?
http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
Java Server Faces 2.0
• Facelets as “templating language” for the page
  > Custom components much easier to develop
• Ajax support integrated
• “faces-config.xml” not required in common cases
• Mojarra is the Reference Implementation of JSF 2
Java Persistence API 2.0
• Expanded object/relational mapping functionality
  > @ElementCollection, @OrderColumn, ...
• Additions to the Java Persistence query language
  > INDEX, CASE/WHEN/ELSE
• Metamodel API (javax.persistence.metamodel)
JPA 2.0
• Type-safe Criteria API
  > CriteriaQuery – select, where
  > QueryBuilder – expressions, predicates
• Standard caching configuration
  > 2nd level caching
  > @Cache on entities
Bean Validation (JSR 303)
• Tier-independent mechanism to define constraints
  for data validation
  > Represented by annotations
  > javax.validation
• Integrated with JSF and JPA
  > JSF: f:validateRequired, f:validateRegexp
  > JPA: pre-persist, pre-update, and pre-remove
• @NotNull(message=”...”), @Max, @Min, @Size
• Fully Extensible
  > @Email String recipient;
Contexts & Dependency Injection for
Java EE (JSR 299)
• Type-safe Dependency Injection
  > Builds on @Inject API
• Context/scope management
• Works with multiple bean types
• Includes ELResolver
CDI Clients
• Injection Points
  > Field, Method, Constructor
                                 Which one ?
  > 0 or more qualifiers          (Qualifier)
  > Type


              @Inject @LoggedIn User user

  Request                           What ?
  Injection                         (Type)
CDI Basics
• Separate from @Resource but can co-exist
  > @Resource for container managed DI
  > @Inject for application managed DI
• Strong typing, loose coupling
  > Clients only declare dependencies via injection
    points
  > Bean selection is done by CDI
CDI – Sample Client Code
Field and Method Injection


 public class CheckoutHandler {

     @Inject @LoggedIn User user;

     @Inject PaymentProcessor processor;

     @Inject void setShoppingCart(@Default Cart cart) {
        …
     }

 }
CDI – Sample Client Code
Constructor Injection


   public class CheckoutHandler {

       @Inject
       CheckoutHandler(@LoggedIn User user,
                       PaymentProcessor processor,
                       @Default Cart cart) {
         ...
       }

   }
CDI - Sample Client Code
Multiple Qualifiers and Qualifiers with Arguments

  public class CheckoutHandler {

      @Inject
      CheckoutHandler(@LoggedIn User user,
                      @Reliable
                      @PayBy(CREDIT_CARD)
                      PaymentProcessor processor,
                      @Default Cart cart) {
        ...
      }

  }
CDI - Declaring Qualifiers
With a meta-annotation

 • Write your own annotation types and annotate them with
   @Qualifier
 • For example:
   @Qualifier
   @Retention(RUNTIME)
   @Target({FIELD,TYPE})
   public @interface Red {}
CDI - How to configure ?
There is none!


• CDI discovers bean in all modules in which CDI is
  enabled
• Beans are automatically selected for injection
• Possible to enable groups of bean selectively via a
  descriptor
CDI - Scopes
• Beans can be declared in a scope
  >   Everywhere: @ApplicationScoped, @RequestScoped
  >   Web app: @SessionScoped
  >   JSF app: @ConversarionScoped
  >   Pseudo-scope (default): @Dependent
• The CDI runtime will make sure the right bean is
  created at the right time
• Client do NOT have to be scope-aware
CDI - Named Beans
Built-in support for the Unified EL

 • Beans give themselves a name with @Named(“cart”)
 • Then refer to it from a JSF or JSP page using the EL:
    <h:commandButton
        value=”Checkout”
        action=“#{cart.checkout}”/>
CDI - Events
Even more decoupling

• Annotation-based event model
• A bean @Observes an event
void onLogin(@Observes LoginEvent event) { … }
• Another bean fires an event using the Event.fire(T event)
  method
CDI - Much more ...
•   Producer methods and fields
•   Bridging Java EE resources
•   Alternatives
•   Interceptors
•   Decorators
•   Sterotypes
IDE Support
• NetBeans 6.8
• Eclipse 3.4+
• IntelliJ 9.0
Java EE 6 Training & Certification
• Java EE6 Training Curriculum - Feb 2010
• Java EE6 Certifications available - Mar 2010
• Register your interest in the courses and certifications
  and receive information about promotions
  > https://dct.sun.com/dct/forms/reg_us_1611_480_0.jsp
What is GlassFish ?
• A community
  > Users, Partners, Testers, Developers, ...
  > Started in 2005 on java.net
• Application Server
  > Enterprise Quality and Open Source (CDDL & GPL v2)
  > Java EE Reference Implementation
  > Full Commercial Support from Sun
Sun GlassFish Enterprise Server

                          Enterprise Manager



               Customer
               Advocate                         eLearning
                                                Credit



 Customer Focused                                     24x7 Support
 Support Team


                           GlassFish
    Sun VIP
                           Open Source
    Interoperability                                   Patches &
                           Application Server
    Support                                            Upgrades
GlassFish v3
• Modular:
  > Maven 2 – Build & Module description
  > Felix – OSGi runtime (216 bundles)
  > Allow any type of Container to be plugged
     – Start Container and Services on demand

• Embeddable: runs in-VM
• Extensible
  > Rails, Grails, Django, ...
Dynamic Languages & Frameworks




http://glassfish-scripting.dev.java.net
Rails Deployment Choices




                    Credits: http://birdwatchersdigest.com
Demo
NetBeans / Eclipse & Java EE 6


http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application
http://blogs.sun.com/arungupta/entry/screencast_28_simple_web_application
http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug/
http://blogs.sun.com/arungupta/entry/totd_93_getting_started_with/
http://blogs.sun.com/arungupta/entry/totd_94_a_simple_java
http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6
http://blogs.sun.com/arungupta/entry/totd_99_creating_a_java
http://blog.arungupta.me/2008/11/screencast-28-simple-web-application-using-eclipse-and-glassfish-v3-prelude/
Embeddable GlassFish
 Server.Builder builder = new Server.Builder("testBuilder");


 // Get the builder for EmbeddedFileSystem
 EmbeddedFileSystem.Builder efsb = new EmbeddedFileSystem.Builder();
 EmbeddedFileSystem efs = efsb.build();
 builder.embeddedFileSystem(efs);


 // Start the embedded server (should take no more than a few of seconds)
 server = builder.build();


 // Add a WEB container (other containers: ejb, jps, all, ...)
 ContainerBuilder containerBuilder = server.createConfig(ContainerBuilder.Type.web);
 server.addContainer(containerBuilder);
 containerBuilder.create(server);
 server.createPort(port);
Embeddable GlassFish
 // Setup machinery to deploy
 deployer = server.getDeployer(); // type is EmbeddedDeployer
 DeployCommandParameters deployParams = new DeployCommandParameters();
 deployParams.name = "myApplication"; // needed for undeploy
 deployParams.contextroot = context;      // overrides whatever the WAR contains


 // Creates default virtual server, web listener, does the deploy and
 // returns the applicationName as a String (null means something went wrong)
 // duration depends on application size and nature. Heavy lifting done here.
 File archive = new File(archiveName);
 applicationName = deployer.deploy(archive, deployParams);
 return (applicationName == null) ? false : true;
CLI-based Administration

●
  “asadmin” CLI utility
●
  Administrative commands can be added with each container :
        @Service(name=”myCommand”)
        public class ChangeRandomCtr implements AdminCommand {
             @Param
             String s1;
             @Param
             String s2;
        …}
    ●   Available as :
        asadmin myCommand –s1 foo –s2 bar
Demo
GlassFish v3 Administration
Light Weight & On-demand Monitoring
 • Event-driven light-weight and non-intrusive monitoring
 • Modules provide domain specific probes (monitoring
   events)
   > EJB, Web, Connector, JPA, Jersey, Orb, Ruby
 • End-to-end monitoring on Solaris using DTrace
 • 3rd party scripting clients
   > JavaScript to begin with
Demo
GlassFish v3 Monitoring




http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring
REST Interface

REST interface to management and monitoring data
●

    ●
        Configuration data, Commands invocation (start/stop instance, deploy,
        undeploy, ...), CRUD resources (JMS, JDBC, ...)
    ●
        localhost:4848/management/domain
    ●
        localhost:4848/monitoring/domain
●GET, POST, DELETE methods
●
 XML, JSON, HTML reps
Demo
GlassFish v3 REST Interface




http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end
http://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration
GlassFish Partners
References
•   glassfish.org
•   sun.com/glassfish
•   blogs.sun.com/theaquarium
•   twitter.com/glassfish
•   glassfish@sun.com
Java EE 6 &
GlassFish v3
Paving the path for future

Arun Gupta, GlassFish Guy
blogs.sun.com/arungupta, @arungupta
                                      60

Weitere ähnliche Inhalte

Was ist angesagt?

Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Arun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGMarakana Inc.
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0Arun Gupta
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationArun Gupta
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 
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
 
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.
 
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Arun Gupta
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
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
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Agora Group
 
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
 

Was ist angesagt? (19)

Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUG
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
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 EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
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 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
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
 
JBoss AS7 Reloaded
JBoss AS7 ReloadedJBoss AS7 Reloaded
JBoss AS7 Reloaded
 

Ähnlich wie Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010

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
 
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
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
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
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopArun Gupta
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Arun Gupta
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Kile Niklawski
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 DemystifiedAnkara JUG
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureArun Gupta
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web ProfileKenji HASUNUMA
 
Lecture 19 dynamic web - java - part 1
Lecture 19   dynamic web - java - part 1Lecture 19   dynamic web - java - part 1
Lecture 19 dynamic web - java - part 1Д. Ганаа
 

Ähnlich wie Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010 (18)

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
 
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
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
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 ...
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6
 
Java E
Java EJava E
Java E
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the future
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web Profile
 
Java EE6 Overview
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
 
Jboss
JbossJboss
Jboss
 
Lecture 19 dynamic web - java - part 1
Lecture 19   dynamic web - java - part 1Lecture 19   dynamic web - java - part 1
Lecture 19 dynamic web - java - part 1
 
Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 

Mehr von Arun Gupta

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdfArun Gupta
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Arun Gupta
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesArun Gupta
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerArun Gupta
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Arun Gupta
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open SourceArun Gupta
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using KubernetesArun Gupta
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native ApplicationsArun Gupta
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with KubernetesArun Gupta
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMArun Gupta
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteArun Gupta
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Arun Gupta
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitArun Gupta
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeArun Gupta
 
Container Landscape in 2017
Container Landscape in 2017Container Landscape in 2017
Container Landscape in 2017Arun Gupta
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftArun Gupta
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersArun Gupta
 
Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!Arun Gupta
 
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersArun Gupta
 

Mehr von Arun Gupta (20)

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open Source
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using Kubernetes
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native Applications
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
 
Container Landscape in 2017
Container Landscape in 2017Container Landscape in 2017
Container Landscape in 2017
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShiftJava EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
 
Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!
 
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
 

Kürzlich hochgeladen

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
🐬 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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010

  • 1. Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta, GlassFish Guy blogs.sun.com/arungupta, @arungupta
  • 2. Are you tweeting ? #glassfish #vanjug
  • 3. Java EE: Past & Present Flexible Ease of Development Java EE 6 Pruning Java EE 5 Extensibility Web Ease of Profiles Services Development Ease-of-dev Annotations EJB Lite J2EE 1.4 EJB 3.0 RESTful WS Web Services, Persistence API Robustness Management, New and CDI Enterprise Deployment, Updated Java J2EE 1.3 Async. Web Services Platform CMP, Connector Connector Architecture ` Java EE 6 J2EE 1.2 Servlet, JSP, Web Profile EJB, JMS JPE RMI/IIOP Project
  • 4. Compatible Java EE 5 Implementations
  • 5. Compatible Java EE 6 Implementations Today: Coming:
  • 6. Goals for the Java EE 6 Platform • Flexible & Light-weight • Extensible – Embrace Open Source Frameworks • Easier to use, develop on – Continue on path set by Java EE 5
  • 7. Java EE 6 is Flexible • Decouple specifications to allow more combinations • Expands potential licensee ecosystem • Profiles > Targeted bundle of technologies > Defined through the JCP > Web Profile Defined – Defined by the Java EE 6 Expert Group
  • 8. Java EE 6 Web Profile 1.0 • Fully functional mid-sized profile > Actively discussed in the Java EE 6 Expert Group and outside it > Technologies – Servlets 3.0, JSP 2.2, EL 2.2, Debugging Support for Other Languages 1.0, JSTL 1.2, JSF 2.0, Common Annotations 1.1, EJB 3.1 Lite, JTA 1.1, JPA 2.0, Bean Validation 1.0, Managed Beans 1.0, Interceptors 1.1, Context & Dependency Injection 1.0, Dependency Injection for Java 1.0
  • 9. Java EE 6 is Lightweight • Pruning > Make some technologies optional • Pruned today, means > Optional in the next release > Deleted in the subsequent releases • Pruned technologies will be marked in Javadocs • Technologies > JAX-RPC, EJB 2.x Entity Beans, JAXR, JSR 88
  • 10. Java EE 6 is Extensible • Embrace open source frameworks > Wicket, Lift, Spring, Struts, ... • Zero-configuration, drag-and-drop for web frameworks > Servlets, servlet filters, context listeners for a framework get discovered and registered automatically • Plugin libraries using web fragments
  • 11. <web-fragment> <filter> <filter-name>wicket.helloworld</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>...</param-value> </init-param> </filter> <filter-mapping> <filter-name>wicket.helloworld</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_91_applying_java_ee
  • 12. <web-fragment> <filter> <filter-name>LiftFilter</filter-name> <display-name>Lift Filter</display-name> <description>The Filter that intercepts lift calls</description> <filter-class>net.liftweb.http.LiftFilter</filter-class> </filter> <filter-mapping> <filter-name>LiftFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-fragment> http://blogs.sun.com/arungupta/entry/totd_101_applying_servlet_3
  • 13. Java EE 6 - Done • Specifications approved by the JCP • Reference Implementation is GlassFish v3 • TCK
  • 14. Java EE 6 Specifications • The Platform • Java EE 6 Web Profile 1.0 • Managed Beans 1.0
  • 15. Java EE 6 Specifications New • Context and Dependency Injection for Java EE (JSR 299) • Bean Validation 1.0 (JSR 303) • Java API for RESTful Web Services (JSR 311) • Dependency Injection for Java (JSR 330)
  • 16. Java EE 6 Specifications Extreme Makeover • Java Server Faces 2.0 (JSR 314) • Java Servlets 3.0 (JSR 315) • Java Persistence 2.0 (JSR 317) • Enterprise Java Beans 3.1 & Interceptors 1.1 (JSR 318) • Java EE Connector Architecture 1.6 (JSR 322)
  • 17. Java EE 6 Specifications Updates • Java API for XML-based Web Services 2.2 (JSR 224) • Java API for XML Binding 2.2 (JSR 222) • Web Services Metadata MR3 (JSR 181) • JSP 2.2/EL 2.2 (JSR 245) • Web Services for Java EE 1.3 (JSR 109) • Common Annotations 1.1 (JSR 250) • Java Authorization Contract for Containers 1.3 (JSR 115) • Java Authentication Service Provider Interface for Containers 1.0 (JSR 196)
  • 18. Java EE 6 Specifications As is JDBC 3.0 API • Java Naming and Directory Interface 1.2 • Java Message Service 1.1 • Java Transaction API 1.1 • Java Transaction Service 1.0 • JavaMail API Specification 1.4 • JavaBeans Activation Framework 1.1 • Java API for XML Processing 1.3 • Java API for XML-based RPC 1.1 • SOAP with Attachments API for Java 1.3 • Java API for XML Registries 1.0 • Java EE Management Specification 1.1 (JSR 77) • Java EE Deployment Specification 1.2 (JSR 88) • Java Management Extensions 1.2 • Java Authentication and Authorization Service 1.0 • Debugging Support for Other Languages (JSR 45) • Standard Tag Library for JSP 1.2 (JSR 52) • Streaming API for XML 1.0 (JSR 173) •
  • 19. Java EE 6 & Ease-of-development • Continue advancements of Java EE 5 • Primary focus: Web Tier • General principles > Annotation-based programming model > Reduce or eliminate need for DD > Traditional API for advanced users
  • 20. EoD: Servlets Servlet in Java EE 5: Two Files <!--Deployment descriptor /* Code in Java Class */ web.xml --> <web-app> package com.sun; <servlet> public class MyServlet extends <servlet-name>MyServlet HttpServlet { </servlet-name> public void <servlet-class> doGet(HttpServletRequest com.sun.MyServlet req,HttpServletResponse res) </servlet-class> </servlet> { <servlet-mapping> <servlet-name>MyServlet ... </servlet-name> <url-pattern>/myApp/* } </url-pattern> </servlet-mapping> ... ... </web-app> }
  • 21. EoD: Servlets in Java EE 6 package com.sun; @WebServlet(name=”MyServlet”, urlPattern=”/myApp/*”) public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { ... } http://blogs.sun.com/arungupta/entry/totd_81_getting_started_with
  • 22. Servlet 3.0 • Annotations to declare Servlets, Filters, Init param, ... > “web.xml” is optional in most of the cases • Pluggable frameworks using web fragments • Async support • Programmatic authentication and logout • Default error page, File upload support • Using new language features – for example Generics
  • 23. EJB 3.1 • @Singleton beans – shared state per server VM • No interface view – one source file per bean • Calendar timers – cron like semantics > @Schedule(dayOfWeek=”Mon,Wed”) > (hour=”14”, dayOfMonth=”Last Thu”, month=”Nov”) > (minute=”*/5”, hour=”*”) • Application startup/shutdown callbacks • EJB “Lite” > Small subset of EJB 3.1 for use in Web profile
  • 24. EoD: EJB Simplified Packaging Java EE 5 Java EE 6 foo.war foo.ear WEB-INF/classes foo_web.war com.sun.FooServlet com.sun.TickTock WEB-INF/web.xml com.sun.FooBean WEB-INF/classes com.sun.FooHelper com.sun.FooServlet com.sun.TickTock foo_ejb.jar com.sun.FooBean com.sun.FooHelper web.xml ? http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1
  • 25. Java Server Faces 2.0 • Facelets as “templating language” for the page > Custom components much easier to develop • Ajax support integrated • “faces-config.xml” not required in common cases • Mojarra is the Reference Implementation of JSF 2
  • 26. Java Persistence API 2.0 • Expanded object/relational mapping functionality > @ElementCollection, @OrderColumn, ... • Additions to the Java Persistence query language > INDEX, CASE/WHEN/ELSE • Metamodel API (javax.persistence.metamodel)
  • 27. JPA 2.0 • Type-safe Criteria API > CriteriaQuery – select, where > QueryBuilder – expressions, predicates • Standard caching configuration > 2nd level caching > @Cache on entities
  • 28. Bean Validation (JSR 303) • Tier-independent mechanism to define constraints for data validation > Represented by annotations > javax.validation • Integrated with JSF and JPA > JSF: f:validateRequired, f:validateRegexp > JPA: pre-persist, pre-update, and pre-remove • @NotNull(message=”...”), @Max, @Min, @Size • Fully Extensible > @Email String recipient;
  • 29. Contexts & Dependency Injection for Java EE (JSR 299) • Type-safe Dependency Injection > Builds on @Inject API • Context/scope management • Works with multiple bean types • Includes ELResolver
  • 30. CDI Clients • Injection Points > Field, Method, Constructor Which one ? > 0 or more qualifiers (Qualifier) > Type @Inject @LoggedIn User user Request What ? Injection (Type)
  • 31. CDI Basics • Separate from @Resource but can co-exist > @Resource for container managed DI > @Inject for application managed DI • Strong typing, loose coupling > Clients only declare dependencies via injection points > Bean selection is done by CDI
  • 32. CDI – Sample Client Code Field and Method Injection public class CheckoutHandler { @Inject @LoggedIn User user; @Inject PaymentProcessor processor; @Inject void setShoppingCart(@Default Cart cart) { … } }
  • 33. CDI – Sample Client Code Constructor Injection public class CheckoutHandler { @Inject CheckoutHandler(@LoggedIn User user, PaymentProcessor processor, @Default Cart cart) { ... } }
  • 34. CDI - Sample Client Code Multiple Qualifiers and Qualifiers with Arguments public class CheckoutHandler { @Inject CheckoutHandler(@LoggedIn User user, @Reliable @PayBy(CREDIT_CARD) PaymentProcessor processor, @Default Cart cart) { ... } }
  • 35. CDI - Declaring Qualifiers With a meta-annotation • Write your own annotation types and annotate them with @Qualifier • For example: @Qualifier @Retention(RUNTIME) @Target({FIELD,TYPE}) public @interface Red {}
  • 36. CDI - How to configure ? There is none! • CDI discovers bean in all modules in which CDI is enabled • Beans are automatically selected for injection • Possible to enable groups of bean selectively via a descriptor
  • 37. CDI - Scopes • Beans can be declared in a scope > Everywhere: @ApplicationScoped, @RequestScoped > Web app: @SessionScoped > JSF app: @ConversarionScoped > Pseudo-scope (default): @Dependent • The CDI runtime will make sure the right bean is created at the right time • Client do NOT have to be scope-aware
  • 38. CDI - Named Beans Built-in support for the Unified EL • Beans give themselves a name with @Named(“cart”) • Then refer to it from a JSF or JSP page using the EL: <h:commandButton value=”Checkout” action=“#{cart.checkout}”/>
  • 39. CDI - Events Even more decoupling • Annotation-based event model • A bean @Observes an event void onLogin(@Observes LoginEvent event) { … } • Another bean fires an event using the Event.fire(T event) method
  • 40. CDI - Much more ... • Producer methods and fields • Bridging Java EE resources • Alternatives • Interceptors • Decorators • Sterotypes
  • 41. IDE Support • NetBeans 6.8 • Eclipse 3.4+ • IntelliJ 9.0
  • 42. Java EE 6 Training & Certification • Java EE6 Training Curriculum - Feb 2010 • Java EE6 Certifications available - Mar 2010 • Register your interest in the courses and certifications and receive information about promotions > https://dct.sun.com/dct/forms/reg_us_1611_480_0.jsp
  • 43. What is GlassFish ? • A community > Users, Partners, Testers, Developers, ... > Started in 2005 on java.net • Application Server > Enterprise Quality and Open Source (CDDL & GPL v2) > Java EE Reference Implementation > Full Commercial Support from Sun
  • 44. Sun GlassFish Enterprise Server Enterprise Manager Customer Advocate eLearning Credit Customer Focused 24x7 Support Support Team GlassFish Sun VIP Open Source Interoperability Patches & Application Server Support Upgrades
  • 45. GlassFish v3 • Modular: > Maven 2 – Build & Module description > Felix – OSGi runtime (216 bundles) > Allow any type of Container to be plugged – Start Container and Services on demand • Embeddable: runs in-VM • Extensible > Rails, Grails, Django, ...
  • 46. Dynamic Languages & Frameworks http://glassfish-scripting.dev.java.net
  • 47. Rails Deployment Choices Credits: http://birdwatchersdigest.com
  • 48. Demo NetBeans / Eclipse & Java EE 6 http://blogs.sun.com/arungupta/entry/screencast_27_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_28_simple_web_application http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug/ http://blogs.sun.com/arungupta/entry/totd_93_getting_started_with/ http://blogs.sun.com/arungupta/entry/totd_94_a_simple_java http://blogs.sun.com/arungupta/entry/totd_95_ejb_3_1 http://blogs.sun.com/arungupta/entry/totd_102_java_ee_6 http://blogs.sun.com/arungupta/entry/totd_99_creating_a_java http://blog.arungupta.me/2008/11/screencast-28-simple-web-application-using-eclipse-and-glassfish-v3-prelude/
  • 49. Embeddable GlassFish Server.Builder builder = new Server.Builder("testBuilder"); // Get the builder for EmbeddedFileSystem EmbeddedFileSystem.Builder efsb = new EmbeddedFileSystem.Builder(); EmbeddedFileSystem efs = efsb.build(); builder.embeddedFileSystem(efs); // Start the embedded server (should take no more than a few of seconds) server = builder.build(); // Add a WEB container (other containers: ejb, jps, all, ...) ContainerBuilder containerBuilder = server.createConfig(ContainerBuilder.Type.web); server.addContainer(containerBuilder); containerBuilder.create(server); server.createPort(port);
  • 50. Embeddable GlassFish // Setup machinery to deploy deployer = server.getDeployer(); // type is EmbeddedDeployer DeployCommandParameters deployParams = new DeployCommandParameters(); deployParams.name = "myApplication"; // needed for undeploy deployParams.contextroot = context; // overrides whatever the WAR contains // Creates default virtual server, web listener, does the deploy and // returns the applicationName as a String (null means something went wrong) // duration depends on application size and nature. Heavy lifting done here. File archive = new File(archiveName); applicationName = deployer.deploy(archive, deployParams); return (applicationName == null) ? false : true;
  • 51. CLI-based Administration ● “asadmin” CLI utility ● Administrative commands can be added with each container : @Service(name=”myCommand”) public class ChangeRandomCtr implements AdminCommand { @Param String s1; @Param String s2; …} ● Available as : asadmin myCommand –s1 foo –s2 bar
  • 52.
  • 54. Light Weight & On-demand Monitoring • Event-driven light-weight and non-intrusive monitoring • Modules provide domain specific probes (monitoring events) > EJB, Web, Connector, JPA, Jersey, Orb, Ruby • End-to-end monitoring on Solaris using DTrace • 3rd party scripting clients > JavaScript to begin with
  • 56. REST Interface REST interface to management and monitoring data ● ● Configuration data, Commands invocation (start/stop instance, deploy, undeploy, ...), CRUD resources (JMS, JDBC, ...) ● localhost:4848/management/domain ● localhost:4848/monitoring/domain ●GET, POST, DELETE methods ● XML, JSON, HTML reps
  • 57. Demo GlassFish v3 REST Interface http://blogs.sun.com/arungupta/entry/totd_113_javafx_front_end http://blogs.sun.com/arungupta/entry/totd_116_glassfish_v3_administration
  • 59. References • glassfish.org • sun.com/glassfish • blogs.sun.com/theaquarium • twitter.com/glassfish • glassfish@sun.com
  • 60. Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta, GlassFish Guy blogs.sun.com/arungupta, @arungupta 60