Developing exteNd Director Applications

CHAPTER 2

Creating exteNd Director Projects

This chapter explains how to create exteNd Director projects. It contains these sections:

 
Top of page

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.)

For more information    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 Portal.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 Express Portal in the Portal Guide.

 
Top of section

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:

exteNd Director supports two project types portlet applications and exteNd Director projects:

Choose this project type

For this kind of application

Deployment considerations

Portlet application

You have an existing portlet WAR and you want to use it with an exteNd Director portal.

The Portlet Application Wizard adds exteNd Director's portlet runtime container to your portlet application.

Supports shared, nonshared library, and 3rd party JARs environments.

For shared library environments:

  • Can be deployed as a standalone portlet application.

  • An exteNd Director portal must be deployed on the application server

For more information    For more information on setting up a shared library environment, see Changing a project's shared library configuration.

For nonshared library environments and 3rd party JARs environment:

  • Must be deployed as part of an exteNd Director EAR project.

Project

You want to create an exteNd Director project that includes:

  • A portal

  • A portlet runtime container

  • A resource set

You use the Project Wizard to create:

  • An EAR or WAR project

  • A project based on a standard or custom template (see About templates)

  • A customized solution by choosing the set of exteNd Director subsystems to include

This means you'll have to make some decisions during the project generation cycle, and there are multiple paths through this wizard based on the selections you make.

For more information    For information on using the Project Wizard, see Creating projects

Supports shared, nonshared library, and 3rd party JARs environments.

For shared library environments:

  • One portal application can be deployed on an application server; that means you can have only one of these projects deployed at a time.



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    For more information on setting up a shared library or 3rd party JAR environment, see Changing a project's shared library configuration

 
Top of page

Creating projects

You can create a portlet application or 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 more information    For information on using views to find items in an exteNd Director project, see Working with Views.

 
Top of section

Configuring a portlet application project

Procedure To configure an existing portlet application to run with the exteNd Director portal:

  1. In exteNd Director, select File>New Project.

    The New Project dialog displays.

  2. Select the Director tab, choose Portlet Application, then click OK.

    The Project Wizard displays.

  3. Continue as described in Specifying the existing Web App WAR next.

Specifying the existing Web App WAR

  1. Click the ellipsis button and navigate to the disk location of the WAR that contains your portlets.

  2. Choose the WAR and click Open.

  3. Click Next to go to the next wizard panel. See Specifying the project and archive name next.

Specifying the project and archive name

Procedure To specify the project and archive name:

  1. 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 click the ellipsis beside the Project Location text box to select a location, or type the project directory.

    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 locates the project in the exteNd Director bin directory.

    Archive Name

    Specify the name of the archive file that will be generated. The resulting name appears in the archive layout. The .WAR extension is automatically appended to the name. You can keep the default archive name (which matches the project name) or enter a new one.

    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.

  2. 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/lib 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.

 
Top of section

Creating an exteNd Director project

Procedure To start the Project Wizard:

  1. Select File>New Project.

  2. Select the Director tab, then choose Project and click OK.

  3. Continue as described in Choosing the project template next.

Choosing the project template

  1. To choose the project's template, complete the Project Template panel as follows:

    Valid templates include:

  2. After you've made your selection, click OK.

  3. Click Next to go to the next wizard panel. See Specifying project information next.

Specifying project information

Procedure To specify project information:

  1. 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 template 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 Director's 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.

  2. 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

Procedure To specify the project type:

  1. Complete the panel by choosing either Typical or Custom:

    Setup type

    What the wizard does

    Typical

    Copies all subsystems in the template to your project directory and uses default values for most configuration options. You can make some configuration choices.

    If you choose the basic exteNd Director template, your project includes all J2EE archives and components required to use these subsystems and services:

    • Content Management

    • Debug

    • Directory

    • Framework

    • Pageflow

    • Portal

    • Portlet

    • Rule

    • Search

    • Security

    • User

    • WebDAV

    • Workflow

    • exteNd Composer Service

    Custom

    Lets you choose which subsystems 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:

    1. Select the subsystems you'll need for your project, then click Next.

    2. 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.

    Both typical and custom setups provide a panel for configuring a custom Web application. If you include a resource set, subsystems that have a resource set binding in their configuration file are bound to this resource set.

  2. Click Next to go to the next wizard panel. See Specifying application options next.

Specifying application options

Procedure To specify the application options:

  1. On the Custom Web App panel, make these settings for the WAR and then click Next:

    Custom WAR setting

    What to specify

    Create a Custom Web App now?

    (For EAR projects only).

    Select Yes to add custom Web application functionality. In an EAR project, the wizard includes a separate WAR project for the Web application.

    NOTE:   Because exteNd Director requires a custom Web application for WAR projects, this option is not available when you're creating a WAR project.

    Name

    The context name for the WAR. This is used in URLs for pages of your application.

    NOTE:   For WAR projects, the context name for the WAR is the same as the Project Name specified on the Project Information panel. This option is not editable when you're creating a WAR project.

    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.

    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.

    For more information    For more information, see About templates below.

  2. Click Next to go to the next wizard panel:

About templates

All exteNd Director projects are based on templates. A template is a collection of subsystems (which may have custom configurations) and application modules. Templates reside in a template directory on your file system, and the wizard copies files from the template to create your project. A template can include an exteNd Director project file (with the .SPF extension) for an exteNd Director EAR or WAR, but a project file is not required. If the template includes a project file, you can open the template project to add custom features to the template.

Template limitations   You can use an existing exteNd Director EAR project as your template. Once your project is created (by copying the modules and components from the template to the new project), there is no further connection to the source template. Changes made to a template are not reflected in existing projects that were derived from that template.

Available templates   There are two installed templates:

Template

Functionality

Location in the exteNd Director install directory

exteNd Director

Basic framework for any exteNd Director application. It includes all the available subsystems.

\templates

Samples

Various sample modules that demonstrate application-building techniques.

\samples

Specifying the Content Management Search configuration

The Content Management Search panel has three tabs: the Repository tab, the Synchronization tab, and the Filters tab.

Procedure To specify the Content Management Search configuration:

  1. 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 2000.

    Index Port

    Specify the port number the DRE uses for indexing. The default is 2001.

    Repository Name

    Specify the name of the Content Management repository. The value is always Default.

  2. 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.

  3. 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 exteNd -Director-install-dir\Autonomy\OmniSlaves.

  4. Click Next to go to the next wizard panel:

Content Management caching configuration

  1. 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?

  2. Click Next to go to the next wizard panel. See Directory configuration next.

Directory configuration

  1. 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).

    For more information    See WebLogicLDAP below.

    WebLogic (readable only)

    Read-only access to WebLogic application server realm APIs, Version 6.x., for server cluster environments (deprecated).

    For more information    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).

  2. Click Next to go to the next wizard panel:

LDAP realm configuration

Framework configuration

Procedure To complete the Framework configuration:

  1. 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    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.

  2. 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    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.

  3. 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.

  4. 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.

  1. 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.

  2. Click Next to go to the next wizard panel:

Namespace application

On the Namespace Application panel, you need to specify a namespace to be used in the URL for your exteNd Director application. The default is the project name. Namespacing allows you to deploy multiple exteNd Director EAR files to the same server when those applications have similar URLs and content. For example, if you deploy the DAC in several different EAR files to the same server, the application server will not be able to distinguish the different versions of the DAC unless EAR namespacing is enabled. If you won't have conflicting applications, you can disable namespacing so that your application's URL is shorter.

NOTE:   EAR namespacing applies only to EAR projects. The Namespace Application panel is not displayed for WAR projects.

For more information    For more information about namespacing in an exteNd Director application, see EAR namespacing.

Procedure To complete the Namespace Application panel:

  1. On the Namespace Application panel, enable namespacing by entering a namespace context and making sure the Yes check box is selected.

  2. Click Next to go to the next wizard panel:

LDAP user options

  1. 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 more information    For details, see the section on LDAP predeployment tasks (eDirectory only).

WebDav configuration

  1. On the WebDAV Configuration panel, you can make settings for composing an URL for WebDAV access. A user's WebDAV client program uses the context root and servlet path as its URL for accessing the WebDAV server in your exteNd Director application. You might change the default values to provide a shorter or application-related URL:

    Configuration setting

    What to specify

    Servlet Path

    The WebDAV subsystem servlet in the WebDAV WAR.

    Require locks for update operation

    Select the Yes check box to require files to be checked out and locked before they are moved, copied, or deleted. Locking preserves data consistency when multiple users update data.

    Clear the check box if your WebDAV client does not support a locking mechanism. In particular, Microsoft File Explorer does not support locking of WebFolders.

  2. Click Next to go to the next wizard panel. See Summary panel next.

Summary panel

  1. 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.

  2. Click Finish to create the project.

    The wizard takes some time to copy the template 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.

exteNd Director WAR structure

At the top level of an exteNd Director WAR project, you will see several folders that contain JSP pages, HTML files, images, and other application resources. You will also see two standard J2EE folders—the WEB-INF folder and the META-INF folder:

cdAppArchWAR1

Under the WEB-INF\lib folder, you will see:

Differences between exteNd Director WARs and EARs

An exteNd Director WAR project has a single WAR file associated with it; an exteNd Director EAR has several WAR files (Boot.war, Portal.war, and so on). Many of the WAR artifacts that are stored separately in an EAR project are merged together in a WAR project. For example, the WAR project contains a single WEB-INF\conf\config.xml file and a single WEB-INF\conf\services.xml file. Each of these files includes entries that are maintained separately in an EAR project. Similarly, a WAR project contains a single WEB-INF\web.xml file that includes entries for all Web tiers. In an EAR project, each Web tier has its own web.xml file with separate settings.

exteNd Director EAR project structure

At the top level of an exteNd Director EAR project, you will see one or more service WARs (WARs that provide subsystem services). ContentMgmtService.war and WebDAVService.war are examples of service WARs:

cdAppArchEAR1

Under the library folder you will see:

Configuration and services files   Each subsystem within an exteNd Director EAR project relies on a configuration file and a services file:

File

Description

Location

config.xml

Sets the configuration properties for a subsystem

Typically located in the subsystem-name-conf subdirectory of the ConfigService.jar

For example, the Security subsystem has a config.xml file in the SecurityService-conf subdirectory

services.xml

Sets properties for each of the services associated with a subsystem

Located in the subsystem-name-conf subdirectory of the ConfigService.jar

For example, the Security subsystem has a services.xml file in the SecurityService-conf subdirectory

EAR namespacing   The J2EE specification does not require the EAR name to be part of the context for a WAR file. This can be problematic when multiple EAR files with similar content are deployed to the same server. For example: if you deploy the DAC in several different EAR files to the same server, the application server will not be able to distinguish the different versions of the DAC. 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 and custom Web applications.

When you run the Project Wizard in exteNd Director, you can specify that EAR namespacing be enabled for an EAR project. To implement namespacing, exteNd Director prefaces the context for each WAR with the namespace you specify. The context for each WAR is specified in the application.xml file for the EAR. The Project Wizard uses the name assigned to the EAR as the default namespace.

For example, suppose you enable namespacing for an EAR and specify a namespace of MyEAR. Each module section in application.xml has a context-root element that prepends the namespace to the WAR name. The module section for the Content Management subsystem would look like this:

  <module>
    <web>
      <web-uri>ContentMgmtService.war</web-uri>
      <context-root>/MyEAR/ContentMgmtService</context-root>
    </web>
  </module>

Other subsystems would have similar context-root entries.

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.

 
Top of page

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.

 
Top of section

Subsystem archives

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.

When you use the Project Wizard to create an EAR project, the subsystem-nameService.jar file for each selected subsystem is located in the library subdirectory of the EAR. When you create a WAR project, the subsystem-nameService.jar file for each selected subsystem is located in the WEB-INF\lib subdirectory of the WAR.

subsystem-nameService.war

(EAR projects only)

Contains a Web representation of a subsystem. The subsystem WARs typically contain classes that provide basic services for the subsystem.

subsystem-name.war

(EAR projects only)

Contains a Web tier. A Web tier is a prebuilt Web application.

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.

When you use the Project Wizard (or the Custom Web App Wizard) to create your WAR file, you can select the tag libraries you need for your application in the Custom Web App panel. In this case, the JAR files and TLD files you need are automatically added to the project. The tag library JAR files are placed in the WEB-INF\lib directory of the WAR file. The TLD files are placed in the WEB-INF\tag directory of the WAR file.

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 templates\Director subdirectory of your exteNd Director installation directory.

subsystem-nameClient.jar

Contains the EJB client stubs and potentially the Web service stubs needed to access the core business objects contained within the core subsystem JAR (the subsystem-nameService.jar file).

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 templates\Director\library subdirectory of your exteNd Director installation directory.

Often a subsystem will be deployed in its entirety. However, exteNd Director allows you to deploy the archive files separately. For example, you might deploy the UserService.jar file without including the UserTag.jar, UserEjb.jar, and UserClient.jar files.

The following table shows the archive files for each exteNd Director subsystem or service:

Subsystem

Service JAR

Service WAR

Web tier WAR

Tag library JAR & TLD

Content Management

Directory


Framework

Pageflow

Portal

*Portlet

Rule

Search

Security

User

WebDAV

Workflow

exteNd Composer Service

*Uses PortletImpl.jar and PortletAPI.jar

 
Top of section

Subsystem deployment dependencies

Dependencies among the exteNd Director subsystems

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

  • Framework

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

  • Directory

  • Framework

PortalCA.jar provides conditions and actions related to resources in the Portal subsystem.

Search

  • Framework

Security

  • Directory

  • Framework

User

  • Directory

  • Framework

  • Security

WebDAV

  • Content Management

  • Directory

  • Framework

  • Search

  • Security

  • User

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

  • Directory

  • Framework

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.

Wizard enforcement

The Project Wizard and Setup Wizard enforce these 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.



Copyright © 2003 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...