Developing exteNd Director Applications
CHAPTER 2
Creating exteNd Director Projects
This chapter explains how to create exteNd Director projects. It contains these sections:

About exteNd Director projects
Your work in exteNd Director is organized into projects. A project contains:
A project file has an .SPF extension. A single SPF file can contain multiple components and resources of many different types.
You can learn more about projects in general in the chapter on projects and archives in Utility Tools.
Default project
When you install exteNd Director, a default project called Express.spf is installed on your system and deployed to your server (for some installation types). This project is a complete, working application that you can use as a basis for building your own production portal.
For more information, see the chapter on the using the Express Portal in the Portal Guide.

Choosing the project type
exteNd Director provides wizards that build different types of projects. Choosing the right project type includes decisions and knowledge about the:
Type of application you want to build
Services your application requires
Configuration of the application server on which you are deploying
exteNd Director supports the following project types:
Project type
|
Description
|
Deployment considerations
|
Portlet application
|
Choose this option when you want:
An easy way to distribute your portlets
Your portlets to run external to the exteNd Director portal. (If you want your portlets to run local to the portal, choose the Project Wizard described next.)
The Portlet Application Wizard creates:
An exteNd Director WAR project.
A J2EE WAR that includes the portlet runtime environment.
You can supply an existing WAR, or use the wizard to create a new WAR.
For more information about running portlets externally or locally, see the Portal Guide.
|
Can be deployed in shared, nonshared library, and 3rd party JARs environments.
When you run your portlets external to the portal, you can have one of these configurations:
or
For more information on setting up a shared library environment, see Changing a project's shared library configuration.
|
For nonshared library and 3rd party JARs environments:
|
Project
|
Choose this option when you want:
This wizard creates:
An exteNd Director EAR or WAR project.
A customized solution based on your choice of exteNd Director subsystems
For information on using the Project Wizard, see Creating projects
|
Supports shared, nonshared library, and 3rd party JARs environments.
For shared library environments:
If this project includes portlets, they will be running local to the portal regardless of whether it is an EAR or WAR project.
|
For nonshared library and 3rd party JAR environments:
You can deploy as many of these projects as you want.
Each application must use its own exteNd Director database—databases cannot be shared.
The resulting EAR or WAR encapsulates all subsystems, application code, and application metadata.
For more information on setting up a shared library or 3rd party JAR environment, see Changing a project's shared library configuration
|

Creating projects
To create a portlet application project, see Creating a portlet application project
To create an exteNd Director project, see Creating an exteNd Director project
Using views to what you're looking for
You can use views to display personalized lists of items within an exteNd Director project. Views can be used to look at resources in a resource set, or at system configuration and service settings. exteNd Director ships with several predefined views and also allows you to define custom views to display project items that are of particular interest to you.
For information on using views to find items in an exteNd Director project, see Working with Views.

Creating a portlet application project
To create portlet application project:
In exteNd Director, select File>New>Project.
The New Project dialog displays.
Select the Director tab, choose Portlet Application, then click OK.
The Project Wizard displays.
If you already have an EAR project open, the wizard asks if you want to add the new project to it. Choosing yes means that the wizard creates the new project within the existing project. Any portlets existing in or added to the portlet application project would run external to the portal.
Continue as described in Selecting the Web App WAR next.
Selecting the Web App WAR
To:
Choose an existing WAR, click the ellipsis button and navigate to the disk location. Choose the WAR and click Open.
Create a new WAR, click Create WAR. Complete the New Project panel and click Finish.
For more information on the New Project panel, see the sections on creating projects and archives in Utility Tools.
Click Next to go to the next wizard panel. See Specifying the project and archive name next.
Specifying the project and archive name
To specify the project and archive name:
On the Project Information panel, specify the following options:
Option
|
What to specify
|
Project Name
|
You can:
Accept the default (the name of the existing Web App WAR from the preceding step)—this will exteNd Director—enable the named portlet WAR.
OR
Specify a new name—this will create a new portlet WAR that is exteNd Director–enabled. (It includes a copy of the existing Web App WAR that you specified in the preceding step.)
The .SPF extension is automatically appended. This name appears in the source layout.
As you enter a project name, the archive name is filled in automatically. You can keep the same name for your archive or enter another one.
|
Project Location
|
Specify the directory where you want the project (and other source files) to be located. The wizard creates a project file (with the .SPF extension) in the project location.
As you enter a project location, the archive location setting is filled in automatically. You can change these settings.
You can do one of the following:
If you specify a project location directory that does not exist, the wizard asks if it should create it.
If you do not specify an absolute path, the wizard generates the project in the exteNd tools\bin directory.
|
Archive Name
|
Specify the name of the archive file that will be generated. You can keep the default archive name (which matches the project name) or enter a new one.
The resulting name appears in the archive layout. The .WAR extension is automatically appended to the name.
|
Archive Location
|
Enter the location of the project archive or accept the default (the project root directory).
The archive location appears in the archive layout of the Navigation Pane after the project has been created.
|
Click Finish.
When the wizard completes, the project is open for editing.
What the wizard generates
The wizard generates an exteNd Director–enabled Web application WAR.
At the top level of the WAR you'll see the standard J2EE WEB-INF/lib folder. In the WEB-INF folder you'll see these important files:
File
|
Description
|
novell-portlet.xml
|
An additional, optional portlet deployment descriptor that allows you to specify a broader range of preferences and settings for portlets, such as title bars and preview images
|
portlet.xml
|
Required by Java Portlet 1.0
|
web.xml
|
Required for all J2EE-compliant WARs
|
In the conf folder in the WEB-INF folder, you'll see three important exteNd Director files:
File
|
Description
|
resourceset.xml
|
Lets you manage the contents of the resource set. You can add JARs or file extensions that you want to include in the resource set.
|
config.xml
|
Sets the configuration properties for the WAR-level services (like the Director Administration Console and CMS Administration Console).
|
services.xml
|
Sets properties for the WAR-level services.
|
For information about developing portlet applications, see the chapter on developing portal applications in the Portal Guide.

Creating an exteNd Director project
To start the Project Wizard:
Select File>New>Project.
Select the Director tab, then choose Project and click OK.
Continue as described in Specifying project information next.
Specifying project information
To specify project information:
Complete the Project Information panel as follows:
TIP: If you fill in the text boxes in order, subsequent text boxes are filled in automatically with useful
default values.
Project setting
|
What to specify
|
Project Type
|
Choose EAR or WAR.
|
Project Name
|
Specify the name you want to use for the project file (the .SPF extension is automatically appended).
As you enter a project name, the archive name is filled in automatically.
|
Project Location
|
Specify a root directory for the project. The wizard copies files and subdirectories to this location.
You can type a path and/or use the Browse button to select a directory location. The location doesn't have to exist.
As you enter a project location, the archive location is filled in automatically.
If you do not specify an absolute path, the wizard uses exteNd's tools\bin directory.
|
Archive Name
|
Specify the name of the archive file that will be generated. The .EAR or .WAR extension is automatically added, depending on the project type specified. The Navigation Pane's archive layout displays the archive name.
You can keep the default archive name (which matches the project name) or enter a new one.
|
Archive Location
|
Specify a directory location for the project archive or accept the default (which is the Project Location).
|
J2EE Version
|
If your server supports J2EE 1.3, select J2EE 1.3; otherwise, select J2EE 1.2.
NOTE: If you want to change the J2EE version of a project at a later time, see the chapter on how to handle J2EE versions in Utility Tools.
|
Click Next.
If the directories you specified do not exist, the wizard offers to create each of them. Click Yes to confirm any new directories.
The next wizard panel displays. See Specifying the project setup next.
Specifying the project setup
To specify the project type:
Complete the panel by choosing either Typical or Custom:
Setup type
|
What the wizard does
|
Typical
|
Copies the resources for the default set of exteNd Director subsystems and services to your project directory and uses default values for most configuration options.
|
Custom
|
Lets you choose which subsystem(s) the wizard will copy to your project directory and provides panels for setting their configuration options.
If you choose this option, the wizard displays the Subsystem Selection panel:
Select the subsystems you'll need for your project, then click Next.
If you try to eliminate a subsystem that is required by another selected subsystem, you are informed what subsystems depend on the one you're trying to omit. You have to uncheck those dependent subsystems before you can remove any subsystem they require.
NOTE: For a WAR project, you must select Framework, Directory, Portal, User, and Security.
|
Click Next to go to the next wizard panel. See Specifying application options next.
Specifying application options
To specify the application options:
On the Application Options panel, specify the following settings, then click Next:
Custom WAR setting
|
What to specify
|
Name
|
The context name for the WAR. This is used in URLs for pages of your application. This name is not editable.
For EAR projects, the wizard generates a WAR within the EAR. The WAR's context name is the same as the project name (specified on the Project Information panel) with Portal appended to it.
For WAR projects, the context name for the WAR is the same as the Project Name (specified on the Project Information panel).
|
Resources
|
Select the component collections, tag libraries, and conditions and actions for rules you want to include in your application WAR. The list of available resources depends on the subsystem(s) you've selected.
IMPORTANT: exteNd Director provides a set of accessory portlets. The exteNd Director Portal uses some of these portlets on its default portal pages. If you want to use these default pages as shipped, be sure to include accessory portlets in the portal application projects you create in exteNd Director. If you do not want to include accessory portlets in exteNd Director projects, your portal administrator should modify default portal pages accordingly.
|
Template Resources Location
|
A location for storing available resources that you can add to the project later.
By default, this is the TemplateResources subdirectory. You can specify a different location; exteNd Director will copy available resources.
|
Click Next to go to the next wizard panel:
Specifying the Content Management Search configuration
The Content Management Search panel has three tabs: the Repository tab, the Synchronization tab, and the Filters tab.
To specify the Content Management Search configuration:
On the Repository tab, you can specify these settings:
Configuration setting
|
What to specify
|
Enable link to the search service?
|
Select Yes if you want to use the Autonomy search capabilities with the Content Management subsystem.
IMPORTANT: If you enable search, make sure you configure the Autonomy DRE to run with your server, as described in the Content Search Guide.
|
Query Engine Host Name
|
Specify the host name or IP address of the Autonomy DRE (Dynamic Reasoning Engine). The default is localhost.
|
Query Port
|
Specify the port number on which the DRE expects to receive queries. The default is 52000.
|
Index Port
|
Specify the port number the DRE uses for indexing. The default is 52001.
|
Repository Name
|
Specify the name of the Content Management repository. The value is always Default.
|
On the Synchronization tab, you can specify these settings:
Configuration setting
|
What to specify
|
Synchronization Mode
|
Specify how changes to documents are made known to the DRE. Values are:
immediate—Propagates changes when they occur; recommended when there is a low volume of document additions and updates.
batch—Propagates changes to the DRE as a scheduled background task; recommended for environments with a high frequency of changes.
|
Operations that cause immediate synchronization
|
When synchronization mode is immediate, select the operations that cause changes to propagate to the DRE. Use the arrow buttons to move operations to and from the Available and Selected lists.
For performance reasons, you may not want all operations to be synchronized immediately.
|
Number of deleted documents to batch up
|
When synchronization mode is batch, specify the number of documents to be deleted as a batch.
|
On the Filters tab, you can make this setting:
Configuration setting
|
What to specify
|
Binary document text filter directory
|
Specify where to find the Autonomy filters for importing documents that have a binary file format. The default location is the \Autonomy\OmniSlaves of exteNd Director's installation directory.
|
Click Next to go to the next wizard panel:
Content Management caching configuration
On the Content Management Caching Configuration panel, make the settings you want as follows:
Configuration setting
|
What to specify
|
Cache Fields?
|
Select the types of objects you want to cache. Usually you will want to cache all object types.
The reason caching is efficient is that the application makes fewer SQL queries of the database. If there are constraints on memory usage, you may choose not to cache.
Content Management caching is not related to DAC cache settings.
|
Cache Doc Types?
|
Cache Folders?
|
Cache Categories?
|
Click Next to go to the next wizard panel. See Directory configuration next.
Directory configuration
On the Directory Configuration panel, select a server-specific security realm.
The security realms are as follows:
Realm configuration
|
Description
|
LDAP
|
Base configuration for read and write access to eDirectoryTM in exteNd Director.
NOTE: This realm does not integrate with any supported application server's authentication mechanism.
|
PersistManager
|
Read and write access to the user and group repository in the exteNd Director database.
|
exteNd Server
|
Read and write access to an exteNd Application Server security provider. The default configuration is SilverUsers.
|
exteNd ServerLDAP
|
Read and write access to an exteNd Application Server using the Novell eDirectory LDAP implementation.
|
exteNd Server (compatible)
|
Read and write access to a backward-compatible exteNd Application Server.
This realm uses groups from the exteNd Director database and users from Silver Security.
|
WebLogic
|
Read and write access to WebLogic application server realm APIs, Version 6.x (deprecated).
See WebLogicLDAP below.
|
WebLogic (readable only)
|
Read-only access to WebLogic application server realm APIs, Version 6.x., for server cluster environments (deprecated).
See WebLogicLDAP below.
|
WebLogicLDAP
|
Read and write access to a WebLogic application server realm using the Novell eDirectory LDAP implementation.
|
WebSphere
|
Read and write access to a WebSphere custom registry using the exteNd Director database as a user and group repository.
IMPORTANT: This realm requires a shared library configuration.
|
WebSphereLDAP
|
Read and write access to a WebSphere application server realm using the Novell eDirectory LDAP implementation.
|
TIP: If you have a user list from an earlier version of exteNd Director on the target server, select
exteNd server (compatible).
Click Next to go to the next wizard panel:
LDAP realm configuration
If you chose an LDAP realm, you need to specify your LDAP configuration options on the Directory Ldap Configuration panel.
LDAP configuration options are as follows:
LDAP property
|
Description
|
Realm
|
The selected LDAP realm configuration (read-only).
|
Realm Name
|
Name used by the realm to access runtime APIs.
|
Anonymous User
|
Anonymous principal name.
|
Administrator
|
Name used by the realm to access the LDAP server.
|
Password
|
Administrator password (see row above).
|
Administrator Connections
|
Number of simultaneous administrator connections (or bindings) allowed.
|
Administrator Conn Wait
|
Time to wait (milliseconds) for an admin connection to the LDAP server before timing out.
|
LDAP Host
|
Host machine and port for the LDAP server.
|
Use SSL
|
Check to connect the LDAP server with the Secure Socket Layer (SSL) for data encryption.
NOTE: If you are using SSL, it is assumed that you have a valid certificate set up on your application server. For details, see your application server documentation.
|
New User Container
|
LDAP tree entry for new user registration. This container allows new users to add themselves to the realm without specifying a distinguished name (DN).
|
User Container DN
|
Distinguished name (DN) or fully qualified LDAP name of the user container. This defines the search scope for users and groups in the LDAP tree. (See next row.)
|
User Container Scope
|
Scope of user entries in the LDAP tree, relative to the User Container (row above). Options are:
object Entries in the user container base level only
onelevel Entries in the user container and one level beneath it in the tree
subtree Entries in the user container and all levels beneath it
|
User Object Class
|
User object class. The default value is inetorgperson.
|
Login Attribute
|
Attribute representing the user login name.
IMPORTANT: Do not use spaces in this name.
|
User Membership Attribute
|
Optional. Attribute representing the user's group membership.
IMPORTANT: Do not use spaces in this name.
|
Group Container DN
|
Distinguished Name (DN) of the group container object.
|
Group Container Scope
|
The scope of user entries in the LDAP directory, relative to the group container (see row above). Options are:
object Entries in the group container base level only
onelevel Entries in the group container and one level beneath it in the tree
subtree Entries in the group container and all levels beneath it
|
Group Object Class
|
Group object class. The default value is groupofnames.
|
Group Membership Attribute
|
Optional. Attribute representing the user's group membership.
IMPORTANT: Do not use spaces in this name.
|
Object Attribute
|
Name of the attribute that specifies the object type in the LDAP tree.
IMPORTANT: Do not use spaces in this name.
|
UUID Auxiliary Class
|
Auxiliary class that adds the UUID attribute to the user container. This is necessary for accessing the LDAP realm from the exteNd Director APIs.
|
UUID Attribute
|
Name of the UUID attribute (see row above).
IMPORTANT: Do not use spaces in this name.
|
Use Dynamic Groups
|
Check to use dynamic groups.
|
Dynamic Group Object Class
|
Dynamic group object class. Default value is dynamicGroup.
|
Dynamic Group Aux Object Class
|
Auxiliary class that adds the necessary support for accessing dynamic groups in eDirectory. The default value is dynamicgroupaux.
|
Connection Timeout (millis)
|
Time to wait (milliseconds) for a user connection to the LDAP server before timing out.
|
Root Container Distinguished Name
|
Distinguished name of the root (parent) container object—for example, organization.
|
Container Object Types
|
Lists the current (selected) container object types and attribute names.
|
Add a new Container Object
|
Adds support for a new container object. The container must exist within the Root Container hierarchy specified above.
|
Framework configuration
To complete the Framework configuration:
On the Framework Configuration panel, specify values for these framework settings:
Framework option
|
What to specify
|
Director Framework Datasource
|
Specify the JNDI name for your application's database. The database contains exteNd Director application data such as content and user information. The value you specify depends on the target application server.
For exteNd Application Servers
To use a connection pool Replace %CONNECTION_POOL_NAME% with the name of the connection pool you created for the exteNd Director database. For example: if the connection pool is named MyDB, specify JDBC/MyDB.
To use the deprecated Add Database The JNDI name follows the pattern:
Databases/%DATA_SOURCE_NAME%/Datasource
where %DATASOURCE_NAME% is the name of the added database. For example: if your database is named MyDB, replace the suggested value with Databases/MyDB/DataSource.
NOTE: The application database should be different from the deployment database, which typically is the SilverMaster database.
For application servers other than the exteNd Application Server
Replace the suggested value with the JNDI name for the database. For example: for a data source named MyDB, specify MyDB.
For any application server
Typically you will not need to access the JNDI name directly in your applications. But if you need to do so, you can use the Framework API to get the property stored in the FrameworkService config.xml, as shown in this coding technique:
// get an EbiConfig object
com.sssw.fw.api.EbiConfig myconfig = com.sssw.fw.factory.EboFactory.getConfig();
// get value from the key in config.xml
String dsname = myconfig.getProperty("com.sssw.fw.datasource.jndi-name");
// access the data source
try{
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
javax.sql.DataSource source = (javax.sql.DataSource)ctx.lookup(dsname);
}
catch(javax.naming.NamingException ne){}
|
Locksmith
|
To use ACL-based security, specify the user ID for administering security using the DAC. The ID you specify must exist in the server's authentication realm when you deploy the exteNd Director EAR or WAR.
NOTE: If you do not want to use ACL-based security in your application, set the Locksmith to anonymous to prevent ACLs from being set up for the exteNd Director Admin elements.
For more information about the Locksmith user, see the section on subsystem administrators in the User Management Guide.
|
Enable User Transaction Support?
|
When checked, your application uses exteNd Director's transaction support.
Uncheck this setting if you are deploying to an application server that does not provide JTA capabilities natively or through third-party extensions.
|
Next you will specify server cluster options.
Specify values for these cluster options:
Cluster option
|
What to specify
|
Do you want to use clustering?
|
Select Yes to enable exteNd Director support for clustering.
The server you deploy to must already be set up as part of a server cluster.
|
Host
|
Specify the URL of the server that will run the exteNd Director Cache Coordinator.
For more information about using the Cache Coordinator, see Using the Cache Coordinator.
NOTE: You must use the exteNd Director installation program to install the Cache Coordinator on the server.
|
Port
|
Specify the RMI port number that the Cache Coordinator will listen on. This must be the same value you specify when you install the Cache Coordinator.
|
The Generated UID field displays an application identifier used for clustering. You cannot change it.
Specify a writable directory for exteNd Director use:
Option
|
Value
|
Server Accessible Temp Directory
|
Specify a directory to which the server has write access.
The default is the user's TEMP or TMP environment variable.
exteNd Director uses the directory for several types of files:
Temporary files
The getmacaddr utility for generating unique identifiers (UIDs) for exteNd Director objects (if getmacaddr doesn't exist in the directory you specify, exteNd Director copies the utility from the FrameworkService JAR to this location)
Parent folder of PortalCache
The value you specify is stored in the Framework's config.xml in the key ContentCache.Disk.directory.
|
Click Next to go to the next wizard panel. See AES encryption key next.
AES encryption key
exteNd Director encrypts portlet
preferences in the database using a default key that is not unique. You can force the default key to be unique using the FIPS-approved AES encryption. If you require FIPS-compliant security for your application, it is recommended that you have your new projects generate a unique key.
On the AES Encryption Key panel, specify the following options:
Option
|
Value
|
Generate New AES encryption key?
|
When checked, the wizard generates a unique encryption key for the stored portlet preferences. Checking this generates a new encryption key file.
|
Click Next to go to the next wizard panel:
LDAP user options
If you selected an LDAP realm, you need to specify your user options on the User Ldap Options panel.
The LDAP user options are as follows:
LDAP option
|
What to specify
|
Exclude User Attributes
|
User attributes you want to be inaccessible to the exteNd Director APIs.
|
Include User Attributes
|
User attributes you want to be accessible from the exteNd Director APIs.
|
Include Auxiliary Classes
|
(Optional) Use to include any custom auxiliary class attributes. These will be added to the user object class hierarchy.
Use "|" to separate classes and "," to separate attributes. For example:
auxclass1,attr1,attr2|auxclass2,attr1,attr2
|
Exclude Syntax Definitions
|
Syntax definitions you want excluded from the exteNd Director APIs.
LDAP syntaxes determine the data types that can be stored as an attribute. They are defined in RFC 2252 and RFC 2256.
|
IMPORTANT: Before you deploy a project that uses an LDAP realm, you need to perform these configuration steps:
You can perform these steps after you complete the EAR Wizard.
For details, see the section on LDAP predeployment tasks (eDirectory only).
Summary panel
On the Summary panel, clear the Build project after wizard is finished check box if you don't want to build the project archives right away.
TIP: A recently built project is necessary for editing J2EE descriptor files and for deploying exteNd
Director Web tier tools. You can let the wizard start the build process or you can select Build
commands on the Project menu later.
Click Finish to create the project.
The wizard takes some time to copy the files to the project directory. Then it builds the project if you selected that option.
What the wizard generates
The Project Wizard generates a J2EE-compliant WAR or EAR (depending on your selection). The project contains the subsystem files needed for compile or runtime.
exteNd Director EAR project structure
At the top level of an exteNd Director EAR project, you will see:

The EAR project contents include:
File
|
Description
|
Portal WAR file
|
Contains the JARs needed by the exteNd Director subsystems included in the project.
|
ConfigService.jar
|
Located in the \library folder.
Contains configuration and service properties files for the project's subsystems.
For more information, see Configuration and service files.
|
JAR files
|
Located in the \library folder.
The set of JARs needed by your application for either compile or runtime services.
In a shared library configuration, these service JAR files appear grayed out and in parentheses; they are available for compile-time use but are not included in the deployment archive.
|
exteNd Director WAR project structure
At the top level of an exteNd Director WAR project, you will see:

The WAR project contents include:
File
|
Description
|
ConfigService.jar
|
Located in the WEB-INF\lib folder.
Contains configuration and service properties files for the project's subsystems.
For more information, see Configuration and service files.
|
JAR files
|
Located in the WEB-INF\lib folder.
The set of JARs needed by your application for either compile or runtime services.
Files that are grayed out in the display are needed for compiile time only and are not deployed to the server.
|
Configuration and service files
Each exteNd Director subsystem relies on a configuration file and a services file. The files are stored in the ConfigService.jar.
File
|
Description
|
Location
|
config.xml
|
Sets the configuration properties for a subsystem
|
Located in the subsystem-name-conf subdirectory of the ConfigService.jar
For example, the Security subsystem has a config.xml file and a services.xml file in the SecurityService-conf subdirectory
|
services.xml
|
Sets properties for each of the services associated with a subsystem
|
EAR namespacing
The J2EE specification does not require the EAR name to be part of the context for a WAR file. This can be a problem when multiple EAR files with similar content are deployed to the same server. For example: if you deploy the same WAR in several different EAR files to the same server, the application server will not be able to distinguish the different versions of the WAR. To solve this problem, exteNd Director introduces the notion of EAR namespacing. The namespace is part of the URL for accessing the exteNd Director Web tiers. exteNd Director prefaces the context for each WAR with the EAR name as the default namespace. The context for each WAR is specified in the application.xml file for the EAR.
NOTE: On a Novell exteNd Application Server: if you deploy to a database other than SilverMaster, the URL would also include the database name.
Classloading within an exteNd Director EAR
A WAR file can access classes in a JAR file that is contained within that WAR, as well as classes in a JAR file that is placed outside the WAR in some other location within the EAR. exteNd Director applications take advantage of both of these configurations.
Classpath for WAR
When a WAR file uses the services of a JAR file within the WAR, the classes in the WAR have no difficulty locating the classes in the JAR—since these classes are automatically included in the WAR's classloading environment. However, when a WAR file uses the services of a JAR file that is located outside the WAR, the JAR must be added to the classpath for the WAR. J2EE applications do this by setting the classpath in the MANIFEST.MF file in the META-INF directory within the WAR.
Classpath for Framework
exteNd Director applications also maintain a simulated classpath for the Framework, which allows the classes in the Framework to find classes in the other subsystem JAR files that have been included with a particular exteNd Director EAR configuration.

Subsystem architecture
Each exteNd Director subsystem has one or more archive files associated with it. When you select a subsystem in the Project Wizard, the wizard adds the archives you need for the project type you're creating (EAR or WAR). In addition, the wizard automatically enforces any dependencies that exist for the subsystem. If for example you include a subsystem that depends on others, those other subsystems are also included in your project.
Subsystem archive naming conventions
The subsystem archive files conform to the following naming convention:
Subsystem archive file
|
Description
|
subsystem-nameService.jar
|
Contains the core business objects defining the subsystem, as well as any resource bundles required for internationalization.
|
subsystem-nameTag.jar
|
Contains a custom tag library that you can use in JSP pages in other Web tiers. A tag library has an associated TLD file that defines the available tags (methods) available to JSP pages.
|
subsystem-nameEjb.jar
|
Provides EJB support for a subsystem. This JAR contains the server-side implementation required for EJB support.
The Project Wizard does not add the EJB JAR files to your project automatically. To use an EJB JAR in your application, you need to use exteNd Director facilities to add the JAR to your project.
The EJB JAR files are installed in the Director\templates\Director subdirectory of your exteNd Director installation directory.
NOTE: This file is provided for backwards compatibility. It is not recommended for new development.
|
subsystem-nameClient.jar
|
Contains the EJB client stubs and potentially the Web service stubs needed to access the core business objects of a subsystem.
The Project Wizard does not add the EJB client JAR files to your project automatically. To use an EJB client JAR in your application, you need to add the JAR to your project.
The client JAR files are installed in the Director\templates\Director\library subdirectory of your exteNd Director installation directory.
NOTE: This file is provided for backwards compatibility. It is not recommended for new development.
|
Subsystem dependencies
The Project Wizard and Setup Wizard enforce subsystem dependencies for nonshared library environments. If you include a subsystem that depends on others, those other subsystems are also included in your project. If you try to remove a subsystem that others depend on, the Setup Wizard forces you to remove the dependent subsystems first before you can remove the subsystem they depend on. In a shared library environment, the wizard cannot enforce any dependencies.
The following table outlines the interdependencies among the exteNd Director subsystems:
To use this subsystem
|
You need these subsystems
|
Additional notes
|
Content Management
|
Directory
Framework
Search
Security
User
|
—
|
Directory
|
|
The DirectoryServiceRealm.jar file is also required for the Directory subsystem. When you create an exteNd Director EAR project, this JAR file is automatically included in the /library directory of the project. In a WAR project, this JAR file is automatically added to the WEB-INF\lib directory.
|
Framework
|
—
|
—
|
Pageflow
|
Directory
Framework
Portal
Portlet
Security
User
|
—
|
Portal
|
Directory
Framework
Portlet
Security
User
|
—
|
Portlet
|
Directory
Framework
Portal
|
—
|
Rule
|
|
PortalCA.jar provides conditions and actions related to resources in the Portal subsystem.
|
Search
|
|
—
|
Security
|
|
—
|
User
|
Directory
Framework
Security
|
—
|
Workflow
|
Directory
Framework
Pageflow
Portlet
Security
|
The Workflow subsystem is loosely coupled with the Rule subsystem.
WorkflowAL.jar contains the classes for activities and links provided with exteNd Director.
|
exteNd Composer Service
|
|
—
|
Third-party archive files
Several additional third-party archive files are required for the successful execution of exteNd Director applications. In a nonshared library environment, these modules are delivered in the /library directory of an exteNd Director EAR project (the WEB-INF\lib directory of a WAR project). Most manifest files (META-INF\MANIFEST.MF) have these modules listed as dependencies.
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...