3 Replies Latest reply on Jul 23, 2010 11:10 AM by Peter Johnson

    JBoss Supported Java Standards

    Richard Lok Newbie

      Hi guys,

       

      Quick clarification - I am researching what Java standards JBoss supports. I am confused by the following statements on JBoss and Sun's sites that I found, as an example:

       

      "JNDI is a standard Java API that is bundled with JDK1.3 and higher"

      "RMI over IIOP is available with the download of the Java 2 platform, Standard Edition, version 1.3 and 1.4."

      "JAXP Standard - Now implemented via Java SE"

       

      Does this mean if I use any JVM to run JBoss, and if I use a Java EE 5 certified version of JBoss Application Server, that JBoss is guaranteed to support those standards? I know JBoss provides functionality for JNDI, RMI, JAXP, etc but I don't see any clear documentation that says JBoss definitely support those standards in their entirety.

       

      Thanks.

        • 1. Re: JBoss Supported Java Standards
          Peter Johnson Master

          Each release of Java SE includes additional funcitonality that was either part of Java EE or separate functionlaity. For example, web services support was added to Java SE in version 6 (which, if you peruse the forums, you will see caused issues). So those statements indciate when certain functionlaity was provided within Java SE.

           

          JBoss AS, on he other hand, track Java EE (previously J2EE) specifications. JBoss AS 4.0.x follows J2EE 1.5, AS 5.x follows Java EE 5 and AS 6 will follow Java EE 6. Sun's (or actually, Oracle's) web page on Java EE describes the individual features/functions/JSRs that are part of any given Java EE release. You will find that some of the functionality overlaps functionality provided in Java SE.

          1 of 1 people found this helpful
          • 2. Re: JBoss Supported Java Standards
            Richard Lok Newbie

            Thanks Peter, that is helpful information.

             

            I found the page with the list of functionalities that you were referring to: http://java.sun.com/javaee/technologies/javaee5.jsp

             

            Two follow up questions (sorry if they sound stupid):

             

            1) If a certain functionality is listed in Java EE 5, does this mean the functionality must be implemented in the Application Server (and not the JVM)?

             

            2) Taking an example of a specification that exists in Java SE but not in Java EE - let's use JNDI as an example. JNDI has a API for client side and the service layer (SPI) for a provider. Since EE is a superset of SE, does that mean ALL certified EE Application Servers must meet the JNDI SPI provider specifications? Is it safe to assume that since Sun's EE functionality from the above webpage doesn't list anything about JNDI specifications but is it listed in SE? I hope my logic is not wrong, I am still somewhat new to the server side implementations of Java EE.

             

            Thanks very much!

            • 3. Re: JBoss Supported Java Standards
              Peter Johnson Master

              1) Yes, and no. It means that the App Server must provide that functionality, whther it does so as part of the JVM or not is up to the App Server vendor. Example: Java EE 5 requires Java Util Logging; this logging is part of the JVM, whether the App Server provides funcionality around this or not is up to the vendor; JBoss AS 5.x recognizes Java Util Logging and redirects it to Log4J which performs the actual logging.

               

              2) Yes the App Server must obey the JNDI SPI specifications. Typically, for this type of functionality, the JVM provides a rudimentary implementation that works just fine for a stand-alone app. The App Server will implement more robust funtionlaity to support multiple deployed apps and remote apps. So JBoss AS does not reply just on the JVM's JNDI implementation but rather provides its own (at least, that is my understanding- I haven't researched the JNDI code specifically, but I know, for instance, that my statements apply to RMI).