|Oracle Internet File System Setup and Administration Guide
Part Number A81197-05
The second section of the Oracle iFS Manager Navigator contains a setting that controls objects within Oracle iFS. As a system administrator, developers may ask you to perform simple development tasks involving these objects. Many of these tasks can be performed using XML. For more information, see the Oracle Internet File System Developer's Guide.
Using Oracle iFS Manager, you can create, modify, and delete class objects. A class object represents a class whose instances are persistently stored and managed by the Oracle iFS repository. During installation, Oracle iFS creates a number of class objects. Some of these are used internally; others are for commonly encountered data types in content management applications. An application can use the class objects provided, or create its own by subclassing them. Each class object may define one or more attributes for its data. In addition to these, a class object inherits the attributes of its superclass.
You can subclass an existing class by creating a new class object and specifying the parent class for the new class object. The new class object inherits all the attributes of the parent class and allows you to define additional attributes. These activities will be commonplace as they are the easiest way to customize Oracle iFS without writing Java or XML code.
For example, to create a custom document type, you would create a new class object, such as purchase order, with a parent class of document and specify any additional attributes you want associated with the purchase order (Due Date, Customer Number, etc.). You can subclass object types using Oracle iFS Manager by creating new class objects.
The Oracle iFS class hierarchy is presented below. Note that the classes are subdivided into three groups under each abstract superclass: public object, system object, and schema object. The class hierarchy shows which child classes inherit from which parent classes. For example, Primary User Profile is a child class of User Profile and inherits all the attributes of User Profile. You can add or create new classes through subclassing.
The JavaDoc does not expose all classes listed in this class hierarchy, although those not exposed are still listed.
PublicObject AccessControlList SystemAccessControlList ClassAccessControlList ApplicationObject ContentQuota PropertyBundle PolicyPropertyBundle ValueDefaultPropertyBundle ValueDomainPropertyBundle ServerDetail ServerRequest ServerSubClass Category MountPoint DirectoryObject DirectoryGroup AdministrationGroup DirectoryUser Document MailDocument Family Folder Mailbox Message MailFolder SearchObject SelectorObject Template UserProfile PrimaryUserProfile ExtendedUserProfile EmailExtendedUserProfile VersionSeries VersionDescription SystemObject AccessControlEntry AuditEntry AuditRule ContentObject ExtendedPermission Format Media MediaFile MediaLob MediaBlob MediaReference PermissionBundle Policy Property Relationship BranchRelationship FolderRelationship FolderPathRelationship BodyPartPathRelationship GroupMemberRelationship NamedRelationship SchemaObject Attribute ClassDomain ClassObject ValueDomain ValueDefault
Creating a new class object involves the following tasks:
To create a new class object:
oracle.ifs.beans.LibraryObject. If you specify a value other than the default, you must manually create a new Java class whose name is the value specified. You must compile this new class and ensure it is in the Java classpath before instances of the new class object can be instantiated. This is an advanced topic.
setAttributemethods inherited from
oracle.ifs.server.S_LibraryObject. If you specify a value other than the default, you must manually create a new Java class whose name is the value specified. You must compile this new class and ensure it is in the Java classpath before instances of the new class object can be instantiated. This is an advanced topic.
The only modification allowed for class objects is adding or editing an extended attribute. To add an extended attribute, see "Add Extended Attributes".
To edit an extended attribute:
To delete a class object:
Using Oracle iFS Manager, you can create and modify class domains. A class domain is used in conjunction with class objects. For attributes that point to objects, you can limit values to specific classes by using class domains. For example, the AccessControlList attribute for public objects has a class domain which restricts the value to objects of the AccessControlList class.
Each attribute has a datatype, such as int or String. As you would expect, Oracle iFS supports:
In addition, Oracle iFS supports four top-level object datatypes unique to Oracle iFS:
You could use a value domain to validate any of these four datatypes. But, if you want to be more specific and limit an attribute's value to a single class, you need a validation technique to ensure that the value entered is not, for example, just any Public Object, but specifically, a Document object. In this case, you would use a class domain to specify the single class that the attribute's datatype must match.
If an attribute's datatype is a subclass of one of the four unique Oracle iFS top-level datatypes listed above, you can specify a class domain on that attribute. Oracle iFS will throw an exception if the attribute is of any other class.
To create and maintain class domain using Oracle iFS Manager:
When modifying a class domain, the Description field is the only field that can be updated. To modify a selected class domain:
If a class domain is deleted, the data validation performed by that class domain no longer occurs. To delete a class domain:
A value domain is a separate class which can contain a list of values used by developers for custom applications. You can limit attribute values to specific values of a class domain by using value domains. Limiting the possible values helps with data validation. User input is checked against the list, and if the input value is not on the list, Oracle iFS throws an exception.
In many cases, the number of possible valid values for an attribute is limited. A frequently used form of data validation takes the value entered and checks it against a list of valid values, returning an error message if the value entered is not valid.
To create a new value domain with Oracle iFS Manager:
The Description field is the only field that can be updated.
To delete a value domain:
By using value defaults, you can specify an initial value for an attribute. If no value is set, the repository sets the default value for the attribute. Should the default value be outside the value domain when the value domain validation is on, the Oracle iFS server throws an exception upon setting the attribute with the invalid default value.
Value defaults are particularly useful if you need to apply the same default value to a large number of attributes. Using a value default lets you specify the default value once, and apply it to many attributes. If the default value needs to be changed, you can then change the value default in one place, and all attributes that use the value default will now have access to the new value.
Assume that ExpenseReport has an attribute called ApproverName. You could use a value default on ApproverName to specify the name of your department's vice president, Chris Stevens. When an ExpenseReport object is created, "Chris Stevens" would be the default Approver Name. This same ApproverName attribute might be used for approving hiring requests, as well as approving expense reports. If there was a reorganization and Kim Naser became the new vice president, you could change the value default object, and the new name would become the default approver for both expense reports and hiring requests.
changing the value default in this way would not affect any earlier expense reports or hiring requests, which would continue to indicate "Chris Stevens."
Only expense reports or hiring requests created after the ValueDefault was updated to "Kim Naser" would have the new name.
To create a new value default with Oracle iFS Manager:
The Description field is the only field that can be updated.
To delete a value default:
Agents automate tasks in Oracle iFS. An agent is on option for customizing Oracle iFS. A developer writes a custom agent using Java. To run the agent, you will need to add it to a Server Manager .def file.
An override is another option for customizing Oracle iFS. A developer creates an overrides using Java. Overrides extend or replace methods in the Oracle iFS API to perform tasks specific to your business needs.
An agent is a Java program used to automate a task. More specifically, an agent lets an application respond to specific actions taken within the Oracle iFS environment. An agent may respond when a certain type of document is inserted, updated, or deleted in the repository. Agents are written against the Java API. They can be triggered by a specific event, such as when a document is created, or by time, every 24 hours. Agents are especially useful for cleanup or background tasks when the machine is not heavily loaded, or for notification, such as sending e-mail notifications.
An override is a Java program that overrides default server-side behavior. The difference between agents and overrides is that agents are run asynchronously, as separate activities at timed intervals, or as a response to a completed transaction. An override is processed during the transaction, and should be used when the behavior needs to occur immediately or if Oracle iFS needs to complete the behavior and react to it before finishing the transaction.See Also
Java Server Pages (JSPs) are the recommended manner of creating Web-based applications based on Oracle iFS. (In fact, the Oracle iFS Web interface uses JSPs.) JSPs use Java Beans to extract data from the repository and display information on the Web by generating HTML documents. Although JSPs provide a way for users to view and manipulate documents, providing functionality parallel to that of renderers, using a JSP is not technically "rendering" because it does not involve a specific renderer class. The JSP lookup is created with Oracle iFS Manager.
ifs/jsp-bin folder is provided for developers to place JSPs to be executed. The list of these JSP executable directories is configurable. This is set in the property
ifs.http.jsp.alloweddirs which is located in the
To add more directories where JSPs to be created can be placed, this parameter needs to be modified. This parameter is located in the
IfsHttpServletParameters.properties file, which is located in the following directory:
For example, the value is set to
/ifs/webui/jsps|/ifs/jsp-bin, the directory
/home/myhome/jsps can be used to host JSPs that need to be executed. Please note that the
| is used as a delimiter between directories.
You can view, register, and edit JSPs. When a JSP is added, it is added to the JSP registry. To register a renderer:
To edit an existing JSP:
To remove an existing JSP:
A parser is a Java class that extracts attributes from a file as it is loaded into Oracle iFS and stores the information in the repository. The parser class creates one or more database objects, such as:
When you want to create objects in Oracle iFS, you can either use the standard parsers provided, or, if your application requires special treatment, you can create a custom parser.
The IfsXmlParser is the standard parser class that can be registered using Oracle iFS Manager. The IfsXmlParser creates an object in the Oracle iFS repository from an XML document body and is used as the default parser for all XML documents stored in Oracle iFS.
There are three XML parsers that the dispatcher parser (IfsXmlParser) recognizes:
Using Oracle iFS Manager, you can register custom parsers created for special applications, and edit or delete parsers. When a parser is added, it is added to the parser registry. To register a custom parser:
The Parser Lookup Registry Window displays with the existing parsers by extension and XML parsers listed. This dialog provides two functions: registering a parser by extension and registering an XML parser.
To register a parser by extension, do the following:
In the XML Parser box, you can select the Do DTD validation by default box to have DTD validation as the default.
To register an XML parser, do the following:
To modify an existing parser:
To delete an existing parser:
A renderer accesses information stored in Oracle iFS and outputs the information in a certain format. In a sense, it is the opposite of a parser. While the information output by a renderer may be identical to the document as it was input, it doesn't have to be. Once information has been stored in Oracle iFS, it can be rendered in any format the developer defines. For example, an XML renderer can perform the following task:
Data can be combined from several documents and displayed as a single, new document. For example, information that is collected from e-mail messages may be displayed dynamically in a Web browser window.
The rendered representation is typically some combination of the following:
The following table lists the Oracle iFS standard renderer classes provided out-of-the-box.
Renders a message object into a stream of bytes comprising the message in RFC822 format.
Octet Stream Renderer
Renders a document into a stream of bytes corresponding to the bytes in the document's content object.
Using Oracle iFS Manager, you can register and edit custom renderers. When a renderer is added, it is added to the renderer registry. To add and register a renderer:
To modify an existing renderer:
To delete an existing renderer:
Oracle iFS associates a format (mimetype) with each document. The format of a document specifies the way the document information is encoded. Internet browsers need to know the format of documents to determine how to store content and index their contents. The format determines:
You can either:
For more information on formats/mimetypes, see the Oracle Internet File System Developer's Guide.
To modify a format:
To delete a format/mimetype: