Sun Java System Application Server
Platform Edition 8
Compatibility Guide


Contents

This document contains information on the following topics:

This document is intended to track incompatibility between adjacent product releases and configuration options that may result in incompatibility with the product specifications. For example, this compatibility page details Sun Java System Application Server Platform Edition 8 incompatibility with Sun Java System Application Server Platform Edition 7, J2EE 1.4 incompatibility with the J2EE 1.3 release, and Sun Java System Application Server Platform Edition 8 compatibility with the J2EE 1.4 specification. Our intention is to update this document as information becomes available. Check back frequently for updates or changes to this document.

For abbreviation of text in this document, the Sun Java System Application Server Platform Edition 8 will occasionally be referred to as Application Server PE 8, and the Sun Java System Application Server Platform Edition 7 will occasionally be referred to as Application Server PE 7.

See also: Java 2 Platform, Standard Edition, Version 1.4.2: Compatibility with Previous Releases

Application Server-related Compatibility Issues

Compatibility with Application Server PE 7

The Sun Java System Application Server Platform Edition 8 is upward binary-compatible with Sun Java System Application Server Platform Edition 7 except for the incompatibilities noted below. J2EE applications that run on version 7 will continue to work on version 8 except for the incompatibilities noted below.

The topics discussed in this section include incompatibilities in the following areas:

Web Server Features

The Sun Java System Application Server Platform Edition 8 replaces the Web server shipped with Sun Java System Application Server Platform Edition 7 with a Java-based Web container. As a result, the following Web server-specific features are no longer supported in version 8:

Security Realms

The package names of the security realm implementations have been renamed from com.iplanet.ias.security.auth.realm to com.sun.enterprise.security.auth.realm. Custom realms written using the com.iplanet.* classes must be modified.

Sun Deployment Descriptor: sun-web.xml

In Application Server PE 7, the default value for the optional attribute delegate was false. In this release, this attribute defaults to true. This change means that by default the Web application classloader will first delegate to the parent classloader before attempting to load a class by itself.

CORBA Performance Option

In Application Server PE 7, users were able to specify the following system property to optionally turn on some ORB performance optimization:

 -Djavax.rmi.CORBA.UtilClass=com.iplanet.ias.util.orbutil.IasUtilDelegate

The ORB performance optimization is turned on by default in Application Server PE 8. If you are using the system property reference above, you must remove it to avoid interfering with the default optimization.

Command Line Interface: asadmin

Commands for the command line interface, asadmin, are backward compatible except as noted below:

Sub-commands not supported in Application Server PE 8 (may be supported in Sun Java System Application Server Standard Edition 8 and/or Enterprise Edition 8):

Sub-commands that are no longer supported in Application Server PE 8:

Some dotted names used in get/set subcommands are not compatible. See Mapping of Incompatible Dotted Names for more details on this topic.

File Formats

In Application Server PE 8, domain.xml is the main server configuration file. In Application Server PE 7, the main server configuration file was server.xml. The DTD of domain.xml is found in lib/dtds/sun-domain_1_0.dtd. The upgrade tool included in Application Server PE 8 can be used to migrate the server.xml from Application Server 7 to domain.xml for Application Server PE 8.

In general, the configuration file formats are NOT backward-compatible. The following configuration files are NOT supported:

  • *.conf
  • *.acl
  • mime.types
  • server.xml (replaced with domain.xml)

    Certificate Database

    Application Server PE 8 uses Java Keystore (jks) as the keystore format. The NSS format used in Application Server PE 7 is not supported. The upgrade tool included in the product can be used to migrate existing NSS keystores to jks keystores.

    Tools Interoperability

    As a general rule, tools are not interoperable between Application Server PE 7 and 8. Users must upgrade their Application Server PE 7 tools to work with Application Server PE 8.

    Mapping of Incompatible Dotted Names

    The following use of dotted names in asadmin get and set subcommands are NOT backward compatible:

    The table below displays a one-to-one mapping of the incompatibilities in dotted names between Application Server PE 7 and 8. The compatible dotted names are not listed in this table. The text inside of <...> should be replaced by the actual name of the object. For example <server instance> should be replaced with the actual name of the server instance. Likewise <listener id> should be replaced with the actual listener id.


    Application Server PE 7 dotted names
    Application Server PE 8 dotted names
    1.
    <server instance>.http-listener.<listener id>
    <server instance>.http-service.http-listener.<listener id>
    server.http-service.http-listener.<listener id>
    server-config.http-service.http-listener.<listener id>
    2.
    <server instance>.orb
    <server instance>.iiop-service
    server.iiop-service
    server-config.iiop-service
    3.
    <server instance>.orblistener
    <server-instance>.iiop-listener
    server.iiop-service.iiop-listener.<listener id>
    server-config.iiop-service.iiop-listener.<listener id>
    4.
    <server instance>.jdbc-resource.<jndi name>
    server.resources.jdbc-resource.<jndi name>
    domain.resources.jdbc-resource.<jndi name>
    5.
    <server instance>.jdbc-connection-pool.<pool id>
    server.resources.jdbc-connection-pool.<pool id>
    domain.resources.jdbc-connection-pool.<pool id>
    6.
    <server instance>.external-jndi-resource.<jndi name>
    <server instance>.jndi-resource.<jndi name>
    server.resources.external-jndi-resource.<jndi name>
    domain.resources.external.jndi-resource.<jndi name>
    7.
    <server instance>.custom-resource.<jndi name>
    server.resources.cutsom-resource.<jndi name>
    domain.resources.custom-resource.<jndi name>
    8
    *.
    <server instance>.web-container.logLevel
    server.log-service.module-log-levels.web-container
    server-config.log-service.module-log-levels.web-container
    9.
    *
    <server instance>.web-container.monitoringEnabled
    server.monitoring-service.module-monitoring-levels.web-container
    server-config.monitoring-service.module-monitoring-levels.web-container
    10.
    <server instance>.j2ee-application.<application name>
    <server instance>.application.<application name>
    server.applications.j2ee-application.<application name>
    domain.applications.j2ee-application.<application name>
    11.
    <server instance>.ejb-module.<ejb-module name>
    server.applications.ejb-module.<ejb-module name>
    domain.applications.ejb-module.<ejb-module name>
    12.
    <server instance>.web-module.<web-module name>
    server.applications.web-module.<web-module name>
    domain.applications.web-module.<web-module name>
    13.
    <server instance>.connector-module.<connector module name>
    server.applications.connector-module.<connector module name>
    domain.applications.connector-module.<connector module name>
    14.
    <server instance>.lifecycle-module.<lifecycle module name>
    server.applications.lifecycle-module.<lifecycle module name>
    domain.application.lifecycle-module.<lifecycle module name>
    15.
    <server instance>.virtual-server-class
    N/A
    16.
    <server insatnce>.virtual-server.<virtual-server id>
    server.http-service.virtual-server.<virtual server id>
    server-config.http-service.virtual-server.<virtual server id>
    17.
    <server instance>.mime.<mime id>
    N/A
    18.
    <server instance>.acl.<acl id>
    N/A
    19.
    <server instance>.virtual-server.<virtual server id>.auth-db.<auth-db id>
    N/A
    20.
    <server instance>.authrealm.<realm id>
    <server instance>.security-service.authrealm.<realm id>
    server.security-service.auth-realm.<realm id>
    server-config.security-service-auth-realm.<realm id>
    21.
    <server instance>.persistence-manager-factory-resource.<jndi name>
    <server instance>.resources.persistence-manager-factory-resource.<jndi name>
    server.resources.persistence-manager-factory-resource.<jndi name>
    domain.resources.persistence-manager-factory-resource.<jndi name>
    22.
    <server instance>.http-service.acl.<acl id>
    N/A
    23.
    <server instance>.mail-resource.<jndi name>
    server.resources.mail-resource.<jndi name>
    domain.resources.mail-resource.<jndi name>
    24.
    <server instance>.profiler
    server.java-config.profiler
    server-config.java-config.profiler

    * - Rows #8 and #9 are the attribute names. In these instances, there is not a one-to-one relationship with the dotted names between Application Server PE 7 and 8.


    J2EE 1.4-related Compatibility Issues

    Binary Compatibility

    The J2EE 1.4 Application Server release is upwards binary-compatible with J2EE SDK, v1.3 except for the incompatibilities listed below. This means that, except for the noted incompatibilities, applications built for version 1.3 will run correctly in the Sun Java System Application Server Platform Edition 8 release.

    Source Compatibility

    Downward source compatibility is not supported. If source files use new J2EE APIs, they will not be usable with an earlier version of the J2EE platform.

    In general, the policy is that:

    Deprecated APIs are methods and classes that are supported only for backwards compatibility, and the compiler will generate a warning message whenever one of these is used, unless the -nowarn command-line option is used. It is recommended that programs be modified to eliminate the use of deprecated methods and classes, though there are no current plans to remove such methods and classes entirely from the system.

    Incompatibilities in the Java 2 Platform, Enterprise Edition 1.4 Application Server (since the J2EE 1.3 release)

    The JSun Java System Application Server Platform Edition 8 release is strongly compatible with previous versions of the J2EE platform. Almost all existing programs should run on the Sun Java System Application Server Platform Edition 8 release without modification. However, there are some minor potential incompatibilities that involve rare circumstances and "corner cases" that we are documenting here for completeness.

    1. Java Servlet Specification Version 2.4 (http://java.sun.com/products/servlet/) ships with the Sun Java System Application Server Platform Edition 8 release. Version 2.3 of the specification shipped with the J2EE 1.3 SDK. The following items discuss compatibility issues between these releases.

    2. Java Server Pages Specification 2.0 (http://java.sun.com/products/jsp/) ships with the Sun Java System Application Server Platform Edition 8 release. JSP Specification 1.2 shipped with the J2EE 1.3 SDK. Where possible, the JSP 2.0 Specification attempts to be fully backwards compatible with the JSP 1.2 Specification. In some cases, there are ambiguities in the JSP 1.2 specification that have been clarified in the JSP 2.0 Specification. Because some JSP 1.2 containers behave differently, some applications that rely on container-specific behavior may need to be adjusted to work correctly in a JSP 2.0 environment.

    3. The following is a list of known backwards compatibility issues of which developers who use JSP technology should be aware:

    Sun Java System Application Server Platform Edition 8 Incompatibilities with the J2EE 1.4 Specification

    The Sun Java System Application Server Platform Edition 8 is completely compatible with the Java 2 Platform, Enterprise Edition specification by default. All portable J2EE programs will run on the Application Server without modification. However, as allowed by the J2EE compatibility requirements, it is possible to configure applications to use features of the Sun Java System Application Server Platform Edition 8 that are not compatible with the J2EE specification. The following list documents these configuration options and the compatibility issues caused by using them.

    1. When enterprise beans are assembled and deployed, the pass-by-reference element in the sun-ejb-jar.xml file only applies to remote calls. As defined in the EJB 2.0 specification, section 5.4, calls to local interfaces use pass-by-reference semantics.

    2. If the pass-by-reference flag is set to its default value of false, the passing semantics for calls to remote interfaces comply with the EJB 2.0 specification, section 5.4. If set to true, remote calls involve pass-by-reference semantics instead of pass-by-value semantics, contrary to this specification.

      Portable programs should not assume that a copy of the object is made during such a call, and thus that it�s safe to modify the original. Nor should they assume that a copy is not made, and thus that changes to the object are visible to both caller and callee. When this flag is set to true, parameters and return values should be considered read-only. The behavior of a program that modifies such parameters or return values is undefined.

      More information on this item may be found at http://docs.sun.com/source/816-7151-10/deassemb.html#73093.

    3. If the delegate attribute in the class-loader element of the sun-web.xml file is set to its default value of false, the classloader delegation behavior complies with the Servlet 2.3 specification, section 9.7.2. If set to true, classes and resources residing in container-wide library JAR files are loaded in preference to classes and resources packaged within the WAR file, contrary to what this specification recommends.

      Portable programs that use this flag should not be packaged with any classes or interfaces that are a part of the J2EE specification. The behavior of a program that includes such classes or interfaces in its WAR file is undefined.

      More information on this item may be found at http://docs.sun.com/source/816-7150-10/dwdeploy.html#48102.