com.ibm.as400.resource
Class RJavaProgram

java.lang.Object
  |
  +--com.ibm.as400.resource.Resource
        |
        +--com.ibm.as400.resource.ChangeableResource
              |
              +--com.ibm.as400.resource.RJavaProgram
All Implemented Interfaces:
java.io.Serializable

public class RJavaProgram
extends ChangeableResource

The RJavaProgram class represents an OS/400 Java program. This is supported only when connecting to servers running OS/400 V5R1 or later. In the context of this discussion, a "Java program" is the OS/400 executable object that is created when the CRTJVAPGM (Create Java Program) CL command is run against a class, JAR, or ZIP file.

The following attribute IDs are supported:

Use any of these attribute IDs with getAttributeValue() and setAttributeValue() to access the attribute values for an RJavaProgram.

// Create an RJavaProgram object to refer to a specific Java program.
AS400 system = new AS400("MYSYSTEM", "MYUSERID", "MYPASSWORD");
RJavaProgram javaProgram = new RJavaProgram(system, "/home/mydir/HelloWorld.class");

// Get the optimization. Integer optimization = (Integer)javaProgram.getAttributeValue(RJavaProgram.OPTIMIZATION);
// Set the enable peformance collection attribute value to full. javaProgram.setAttributeValue(RJavaProgram.ENABLE_PERFORMANCE_COLLECTION, RJavaProgram.ENABLE_PERFORMANCE_COLLECTION_FULL);
// Commit the attribute change. javaProgram.commitAttributeChanges();

See Also:
Serialized Form

Field Summary
static java.lang.String CLASSES_WITH_CURRENT_JAVA_PROGRAMS
          Attribute ID for classes with current Java programs.
static java.lang.String CLASSES_WITH_ERRORS
          Attribute ID for classes with errors.
static java.lang.String CLASSES_WITHOUT_CURRENT_JAVA_PROGRAMS
          Attribute ID for classes without current Java programs.
static java.lang.String ENABLE_PERFORMANCE_COLLECTION
          Attribute ID for enable performance collection.
static java.lang.String ENABLE_PERFORMANCE_COLLECTION_ENTRY_EXIT
          Attribute value indicating that the entry/exit information on all the procedures of the Java program (including those that are leaf procedures) is given.
static java.lang.String ENABLE_PERFORMANCE_COLLECTION_FULL
          Attribute value indicating that the entry/exit information on all procedures of the Java program (including those that are leaf procedures) and precall and postcall hooks around calls to other procedures is given.
static java.lang.String ENABLE_PERFORMANCE_COLLECTION_NONE
          Attribute value indicating that no performance collection is enabled for this Java program.
static java.lang.String FILE_CHANGE
          Attribute ID for file change.
static java.lang.String JAVA_PROGRAM_CREATION
          Attribute ID for Java program creation.
static java.lang.String JAVA_PROGRAM_SIZE
          Attribute ID for Java program size.
static java.lang.String JAVA_PROGRAMS
          Attribute ID for Java programs.
static java.lang.String LICENSED_INTERNAL_CODE_OPTIONS
          Attribute ID for licensed internal code options.
static java.lang.String NO
          Attribute value for no.
static java.lang.String OPTIMIZATION
          Attribute ID for optimization.
static java.lang.Integer OPTIMIZATION_10
          Attribute value indicating that the Java program contains a compiled version of the class file byte codes but has only minimal additional compiler optimization.
static java.lang.Integer OPTIMIZATION_20
          Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has some additional compiler optimization.
static java.lang.Integer OPTIMIZATION_30
          Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has more compiler optimization than optimization level 20.
static java.lang.Integer OPTIMIZATION_40
          Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has more compiler optimization than optimization level 30.
static java.lang.Integer OPTIMIZATION_INTERPRET
          Attribute value indicating that the Java program is not optimized.
static java.lang.String OWNER
          Attribute ID for owner.
static java.lang.String PROFILING_DATA
          Attribute ID for profiling data.
static java.lang.String PROFILING_DATA_APPLY
          Attribute value indicating that profiling data collection is applied for this Java program.
static java.lang.String PROFILING_DATA_CLEAR
          Attribute value indicating that all profiling data that has been collected for this Java program is to be cleared.
static java.lang.String PROFILING_DATA_COLLECTION
          Attribute value indicating that profiling data collection is enabled for this Java program.
static java.lang.String PROFILING_DATA_NOCOLLECTION
          Attribute value indicating that no profiling data collection is enabled for this Java program.
static java.lang.String RELEASE_PROGRAM_CREATED_FOR
          Attribute ID for release program created for.
static java.lang.String TOTAL_CLASSES_IN_SOURCE
          Attribute ID for total classes in source.
static java.lang.String USE_ADOPTED_AUTHORITY
          Attribute ID for use adopted authority.
static java.lang.String USER_PROFILE
          Attribute ID for user profile.
static java.lang.String USER_PROFILE_OWNER
          Attribute value indicating that the authority checking that was done while this program is running should include both the use who is running the program and the program owner.
static java.lang.String USER_PROFILE_USER
          Attribute value indicating that the authority checking that was done while this program is running should include only the user who is running the program.
static java.lang.String YES
          Attribute value for yes.
 
Constructor Summary
RJavaProgram()
          Constructs an RJavaProgram object.
RJavaProgram(AS400 system, java.lang.String path)
          Constructs an RJavaProgram object.
 
Method Summary
protected  void commitAttributeChanges(java.lang.Object[] attributeIDs, java.lang.Object[] values)
          Commits the specified attribute changes.
 void delete()
          Deletes the Java program.
protected  void establishConnection()
          Establishes the connection to the AS/400.
protected  void freezeProperties()
          Freezes any property changes.
 java.lang.Object getAttributeUnchangedValue(java.lang.Object attributeID)
          Returns the unchanged value of an attribute.
 java.lang.String getPath()
          Returns the path.
 void refreshAttributeValues()
          Refreshes the values for all attributes.
 void setPath(java.lang.String path)
          Sets the path.
 java.lang.String toString()
          Returns the path.
 
Methods inherited from class com.ibm.as400.resource.ChangeableResource
cancelAttributeChanges, commitAttributeChanges, commitAttributeChanges, fireAttributeChangesCanceled, fireAttributeChangesCommitted, fireAttributeValueChanged, fireResourceCreated, fireResourceDeleted, getAttributeUnchangedValue, getAttributeValue, getAttributeValue, hasUncommittedAttributeChanges, initializeAttributeValue, setAttributeValue, setAttributeValue
 
Methods inherited from class com.ibm.as400.resource.Resource
addActiveStatusListener, addPropertyChangeListener, addResourceListener, addVetoableChangeListener, arePropertiesFrozen, equals, fireAttributeValuesRefreshed, fireBusy, fireIdle, firePropertyChange, fireVetoableChange, getAttributeMetaData, getAttributeMetaData, getPresentation, getResourceKey, getSystem, isBidiEnabled, isConnectionEstablished, removeActiveStatusListener, removePropertyChangeListener, removeResourceListener, removeVetoableChangeListener, setPresentation, setResourceKey, setSystem
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

YES

public static final java.lang.String YES
Attribute value for yes.

NO

public static final java.lang.String NO
Attribute value for no.

TOTAL_CLASSES_IN_SOURCE

public static final java.lang.String TOTAL_CLASSES_IN_SOURCE
Attribute ID for total classes in source. This identifies a read-only Integer attribute, which represents the total number of classes located within the ZIP or JAR file.

CLASSES_WITH_ERRORS

public static final java.lang.String CLASSES_WITH_ERRORS
Attribute ID for classes with errors. This identifies a read-only Integer attribute, which represents the number of classes in the file that contain errors.

CLASSES_WITH_CURRENT_JAVA_PROGRAMS

public static final java.lang.String CLASSES_WITH_CURRENT_JAVA_PROGRAMS
Attribute ID for classes with current Java programs. This identifies a read-only Integer attribute, which represents the number of classes in the file which have current Java programs.

CLASSES_WITHOUT_CURRENT_JAVA_PROGRAMS

public static final java.lang.String CLASSES_WITHOUT_CURRENT_JAVA_PROGRAMS
Attribute ID for classes without current Java programs. This identifies a read-only Integer attribute, which represents the number of classes in the file which do not have current Java programs.

ENABLE_PERFORMANCE_COLLECTION

public static final java.lang.String ENABLE_PERFORMANCE_COLLECTION
Attribute ID for enable performance collection. This identifies a String attribute, which represents the level of performance data collection allowed for this Java program. Possible values are:

ENABLE_PERFORMANCE_COLLECTION_NONE

public static final java.lang.String ENABLE_PERFORMANCE_COLLECTION_NONE
Attribute value indicating that no performance collection is enabled for this Java program.
See Also:
ENABLE_PERFORMANCE_COLLECTION

ENABLE_PERFORMANCE_COLLECTION_ENTRY_EXIT

public static final java.lang.String ENABLE_PERFORMANCE_COLLECTION_ENTRY_EXIT
Attribute value indicating that the entry/exit information on all the procedures of the Java program (including those that are leaf procedures) is given. This includes the PEP routine. This is useful in capturing information on all procedures.
See Also:
ENABLE_PERFORMANCE_COLLECTION

ENABLE_PERFORMANCE_COLLECTION_FULL

public static final java.lang.String ENABLE_PERFORMANCE_COLLECTION_FULL
Attribute value indicating that the entry/exit information on all procedures of the Java program (including those that are leaf procedures) and precall and postcall hooks around calls to other procedures is given. This is useful in capturing information on all procedures.
See Also:
ENABLE_PERFORMANCE_COLLECTION

PROFILING_DATA

public static final java.lang.String PROFILING_DATA
Attribute ID for profiling data. This identifies a String attribute, which indicates if the Java program is collecting profiling data. Possible values are:

PROFILING_DATA_NOCOLLECTION

public static final java.lang.String PROFILING_DATA_NOCOLLECTION
Attribute value indicating that no profiling data collection is enabled for this Java program.
See Also:
PROFILING_DATA

PROFILING_DATA_COLLECTION

public static final java.lang.String PROFILING_DATA_COLLECTION
Attribute value indicating that profiling data collection is enabled for this Java program. This enablement can only occur if the optimization of the Java program is 30 or higher. Also, collection does not occur until the profiling data is applied.
See Also:
PROFILING_DATA

PROFILING_DATA_APPLY

public static final java.lang.String PROFILING_DATA_APPLY
Attribute value indicating that profiling data collection is applied for this Java program.
See Also:
PROFILING_DATA

PROFILING_DATA_CLEAR

public static final java.lang.String PROFILING_DATA_CLEAR
Attribute value indicating that all profiling data that has been collected for this Java program is to be cleared.
See Also:
PROFILING_DATA

FILE_CHANGE

public static final java.lang.String FILE_CHANGE
Attribute ID for file change. This identifies a read-only Date attribute, which represents the date and time when the file was last changed. The Date value is converted using the default Java locale.

JAVA_PROGRAMS

public static final java.lang.String JAVA_PROGRAMS
Attribute ID for Java programs. This identifies a read-only Integer attribute, which represents the number of Java programs associated with the file.

JAVA_PROGRAM_CREATION

public static final java.lang.String JAVA_PROGRAM_CREATION
Attribute ID for Java program creation. This identifies a read-only Date attribute, which represents the date and time when the Java program was created. If this is a zip or jar file, this is the date and time when the first Java program was attached to the file. If this is class file, this is the date and time when the Java program was created. The Date value is converted using the default Java locale.

JAVA_PROGRAM_SIZE

public static final java.lang.String JAVA_PROGRAM_SIZE
Attribute ID for Java program size. This identifies a read-only Long attribute, which represents the size, in kilobytes, of the Java programs that are attached to the file.

LICENSED_INTERNAL_CODE_OPTIONS

public static final java.lang.String LICENSED_INTERNAL_CODE_OPTIONS
Attribute ID for licensed internal code options. This identifies a String attribute, which represents the selected licensed internal code (LIC) compile-time options that are used when the Java program was created.

OPTIMIZATION

public static final java.lang.String OPTIMIZATION
Attribute ID for optimization. This identifies an Integer attribute, which represents the optimization level of the AS/400 Java program. Possible values are:

OPTIMIZATION_INTERPRET

public static final java.lang.Integer OPTIMIZATION_INTERPRET
Attribute value indicating that the Java program is not optimized. When invoked, the Java program interprets the class file byte codes. Variables can be displayed and modified while debugging.
See Also:
OPTIMIZATION

OPTIMIZATION_10

public static final java.lang.Integer OPTIMIZATION_10
Attribute value indicating that the Java program contains a compiled version of the class file byte codes but has only minimal additional compiler optimization. Variables can be displayed and modified while debugging.
See Also:
OPTIMIZATION

OPTIMIZATION_20

public static final java.lang.Integer OPTIMIZATION_20
Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has some additional compiler optimization. Variables can be displayed but not modified while debugging.
See Also:
OPTIMIZATION

OPTIMIZATION_30

public static final java.lang.Integer OPTIMIZATION_30
Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has more compiler optimization than optimization level 20. During a debug session, user variables cannot be changed, but can be displayed. The presented values may not be the current values of the variables.
See Also:
OPTIMIZATION

OPTIMIZATION_40

public static final java.lang.Integer OPTIMIZATION_40
Attribute value indicating that the Java program contains a compiled version of the class file byte codes and has more compiler optimization than optimization level 30. All call and instruction tracing is disabled.
See Also:
OPTIMIZATION

OWNER

public static final java.lang.String OWNER
Attribute ID for owner. This identifies a read-only String attribute, which represents the owner of the Java program.

RELEASE_PROGRAM_CREATED_FOR

public static final java.lang.String RELEASE_PROGRAM_CREATED_FOR
Attribute ID for release program created for. This identifies a read-only String attribute, which represents the release of the operating system for which the object was created.

USE_ADOPTED_AUTHORITY

public static final java.lang.String USE_ADOPTED_AUTHORITY
Attribute ID for use adopted authority. This identifies a read-only String attribute, which indicates if the Java programs use adopted authority from previous call levels in the stack. Possible values are:

USER_PROFILE

public static final java.lang.String USER_PROFILE
Attribute ID for user profile. This identifies a read-only String attribute, which represents who the authority checking that was done while this program is running should include. Possible values are:

USER_PROFILE_USER

public static final java.lang.String USER_PROFILE_USER
Attribute value indicating that the authority checking that was done while this program is running should include only the user who is running the program.
See Also:
USER_PROFILE

USER_PROFILE_OWNER

public static final java.lang.String USER_PROFILE_OWNER
Attribute value indicating that the authority checking that was done while this program is running should include both the use who is running the program and the program owner.
See Also:
USER_PROFILE
Constructor Detail

RJavaProgram

public RJavaProgram()
Constructs an RJavaProgram object.

RJavaProgram

public RJavaProgram(AS400 system,
                    java.lang.String path)
Constructs an RJavaProgram object.
Parameters:
system - The system.
path - The path. This can be any class, jar, or zip file.
Method Detail

commitAttributeChanges

protected void commitAttributeChanges(java.lang.Object[] attributeIDs,
                                      java.lang.Object[] values)
                               throws ResourceException
Commits the specified attribute changes.
Overrides:
commitAttributeChanges in class ChangeableResource
Throws:
ResourceException - If an error occurs.

delete

public void delete()
            throws ResourceException
Deletes the Java program. This does not delete the class, jar, or zip file.
Throws:
ResourceException - If an error occurs.

establishConnection

protected void establishConnection()
                            throws ResourceException
Establishes the connection to the AS/400.

The method is called by the resource framework automatically when the connection needs to be established.

Overrides:
establishConnection in class Resource
Throws:
ResourceException - If an error occurs.

freezeProperties

protected void freezeProperties()
                         throws ResourceException
Freezes any property changes. After this is called, property changes should not be made. Properties are not the same thing as attributes. Properties are basic pieces of information which must be set to make the object usable, such as the system and path.

The method is called by the resource framework automatically when the properties need to be frozen.

Overrides:
freezeProperties in class Resource
Throws:
ResourceException - If an error occurs.

getAttributeUnchangedValue

public java.lang.Object getAttributeUnchangedValue(java.lang.Object attributeID)
                                            throws ResourceException
Returns the unchanged value of an attribute. If the attribute value has a uncommitted change, this returns the unchanged value. If the attribute value does not have a uncommitted change, this returns the same value as getAttributeValue().
Overrides:
getAttributeUnchangedValue in class ChangeableResource
Parameters:
attributeID - Identifies the attribute.
Returns:
The attribute value, or null if the attribute value is not available.
Throws:
ResourceException - If an error occurs.

getPath

public java.lang.String getPath()
Returns the path.
Returns:
The path.

refreshAttributeValues

public void refreshAttributeValues()
                            throws ResourceException
Refreshes the values for all attributes. This does not cancel uncommitted changes. This method fires an attributeValuesRefreshed() ResourceEvent.
Overrides:
refreshAttributeValues in class ChangeableResource
Throws:
ResourceException - If an error occurs.

setPath

public void setPath(java.lang.String path)
Sets the path. This does not change the Java program on the AS/400. Instead, it changes the Java program that this object references.
Parameters:
path - The path. This can be any class, jar, or zip file.

toString

public java.lang.String toString()
Returns the path.
Overrides:
toString in class Resource
Returns:
The path.