|
LiveLink Connector
You are reading the null version of LiveLink Connector.
A Day JCR connector allows you to access existing application content using a JCR API.
- JCR (Java Content Repository) is the Java standard for storing and accessing content. It aims to offer standardized, fast and comfortable access to any type of data.
- CRX is Day’s fully JCR-compliant content repository.
- Day is the specification lead of the JCR expert group, which includes companies such as Hewlett Packard, SAP, Software AG, and IBM.
About the LiveLink Connector
The following diagram shows how the connector provides a JCR interface between the repository and your application:
The connector provides a read-only JCR access to the repository, allowing your application to:
- Read content from the repository
- Read and apply user rights
- Read document meta data
- Search the repository
- Track updates in the repository
- Export repository content.
All these features are available using the JCR API. Refer to the JCR specification for more information on how to use these features.
JCR is a standardized, rich, and fast way to access data. It can store almost any kind of data, structured or unstructured. Most of the features you commonly need, such as versioning, search, and fine-grained access control, are built into the standard.
CRX offers fast, rich access to content. In a standard CRX installation, this content is stored in a database, and CRX provides all the advanced features that databases do not natively support, such as hierarchical content structures, support for unstructured content, versioning, or fine-grained access control.
A connector is a JCR data source and as such, offers advanced data access (even if it is read-only). This requires complex program logic, which is why you need a proper repository, such as CRX.
In addition to the JCR API, CRX offers a set of tools, such as a content explorer, or a WebDAV view. Because the connector is based on CRX, you can use these tools to access the content of your repository.
- JCR stores data in a hierarchy of nodes and properties. You can define a strict data structure (as in a database), or store unstructured data (as in a file system).
- A workspace is a part of the content repository, like a drive in a file system, or a separate database in a database program. You can configure each workspace separately.
- An ACL (Access Control List) is a list of access rights for a user. It lists everything the user may or may not access in the repository.
The connector is an addition to an existing CRX content repository and connects to an existing Livelink installation. For information on how to install and configure these products, refer to the corresponding documentation.
The connector requires the following products:
- CRX 1.3 or later, running on the Java Runtime Environment (JRE) version 1.4.2.12 or later.
- OpenText Livelink 9.5
Note
Note:Use corresponding jar file for 9.6 or 9.7, which you can find in your Livelink installation.
To install the connector, you need the following files in addition to the files in the installation package.
- lapi-9.5.jar: OpenText Livelink API (LAPI) 9.5 jar file. You can find this file in your Livelink installation folder.
- llssl-9.5.jar: This library allows you to connect to a Livelink repository over a secure connection.
The connector comes in an archive file named crx2livelink. The file has a version and date number, and the extension .zip. Extract the file crx2livelink to a temporary directory. It contains the following files and folders:
- README.txt: This file contains the latest information on the connector.
- LICENSE.txt: The license files provide you with the terms and conditions of the use of this product. The same information is also available in the online documentation.
- /lib: This folder contains the connector library as well as other libraries that the adapter requires.
- /docs: This folder contains this documentation.
- /etc: This folder contains configuration files for the connector.
Copy the following files from the folder lib of the connector installation folder into the folder server/runtime/0/_crx/WEB-INF/lib of your CRX installation folder:
- crx2livelink-1.3.2.1.jar
- jdom-1.0.jar
Copy the following files from your Livelink installation to the folder server/runtime/0/_crx/WEB-INF/lib of your CRX installation folder:
- lapi-9.5.jar
- llssl-9.5.jar (only if you require secure connections using SSL)
Note
Note:Use corresponding jar file for 9.6 or 9.7, which you can find in your Livelink installation.
Installing the Configuration Files
The connector uses a number of configuration files, and it comes with modified files for existing CRX configuration files. You can find these files in the folder etc of the connector folder. To install these files, proceed as follows:
- Copy the file livelink.properties into the folder server/etc of your CRX installation. This is the configuration file for the connector.
- Copy the file livelink_login.conf into the folder server/etc of your CRX installation. This file configures the JAAS (Java authentication and authorization service).
- Copy the folder crx.livelink into the folder server/crx/workspaces of your CRX installation. This is the configuration for the CRX workspace that stores Livelink content.
- Copy the folder crx.logger to the folder server/crx/workspaces of your CRX installation. This workspace archives events from the Livelink repository.
Installing the Livelink Reports
The connector uses two Livelink reports to keep track of updates. One report tracks deleting content, the other tracks creating and modifying content. The reports are stored in the file etc/LiveReport.rpt in the connector installation folder.
To install the reports, proceed as follows:
1. Log in to the Livelink administration interface. The URL looks as follows: http://myServer.myCompany.com/Livelink/livelink.exe?func=admin.index
2. Scroll down to the LiveReports Administration group, and click Import LiveReports. Log in to access the Import liveReport window.
3. Next to the Export File field, click the Browse button
4. Select the file LiveReport.rpt.
5. Click the Add button to add the reports.
You have now added the reports:
- CRX2Livelink Deleted Documents
- CRX2Livelink Deleted Items
- CRX2Livelink modifications creations
- CRX2Livelink Renamed Items
To see the reports, go to the Livelink administration page, and then click Open the LiveReports Volume. Click the CRX2Livelink modifications creations report for a list of all creates and modified files. Check the other reports you have added.
Note that you can then find each report id by checking the links URL, for example on mouse over CRX2Livelink Deleted Documents link, it would shows http:// localhost/Livelink/livelink.exe?func=ll&objId=3854&objAction=RunReport in the status bar of your browser.
The objId=3854 is then the report id information to be used later in the Observation Servlet configuration.
Modifying the Start Script
Add the following option to your CRX startup configuration, in front of the -jar option:
-Djava.security.auth.login.config=etc/livelink_login.conf
This starts CRX with JAAS authentication. On Windows, add the option as follows:
- Open the manager application (named Start CRX). The manager lists all CRX installations on your computer.
- Double-click the CRX installation to which you want to add the connector. The Configure Instance window opens.
- In the VM Options field, add the setting in front of the -jar option.
- Click OK.
The connector allows you to store all passwords in encrypted form. To encrypt a password, proceed as follows:
- Start the Windows command line interface. To do so, click the Start menu, and then click Run. Type cmd to start the command line interface.
- Go to the folder
server/runtime/0/_crx/WEB-INF/lib of your connector installation folder.
- Type java -jar crx2livelink-1.3.2.1.jar -encrypt myPassword. The connector returns your encrypted password.
Configuring CRX RMI Access
You need to make CRX available via RMI (Remote Method Invocation) if you use external application to access your repository, example with Fast2JCR adapter for Fast ESP.
If you do not have any external application you can skip this part.
To do so, uncomment the RMI-port parameter of the servlet configuration. This registers the repository at an RMI registry on the same computer, using the standard RMI port (1099). The name of the registered repository is the repository_name parameter. Refer to the CRX documentation for more information.
Note that CRX installation enable RMI by default since CRX 1.3
Configuring the Connector
The file livelink.properties in the folder server/etc of the CRX installation folder contains the settings for the connector. The file looks as follows:
# ---------------------------------
# Livelink connection configuration
# ---------------------------------
#connection
protocol=http
hostName=hostname
username=username
password=password
userPrefix=ll1_
folderName=livelink1
port=2099
dbName=
livelinkWS=enterprise
livelinkCGI=/livelink/livelink.exe
#suptype mapping
subtypeConfig={144:Document:b},{0:Folder:k},{131:Category:s},{136:CompoundDocument:k},{140:Url:s},{202:Project:k},{215:Discussion:k},{130:Topic:k},{134:Reply:s},{207:Channel:k},{208:News:s},{206:Task:s},{204:TaskList:k},{205:TaskGroup:k},{212:TaskMilestone:s},{218:Poll:s},{299:Report:s},{132:Query:s},{128:WorkflowMap:s}
#ssl encryption
verifyServer=no
rootCACertsPath=
These settings specify how the connector connects to the data store.
| protocol |
The internet protocol that the connector uses. Usually, this is http. |
| hostname |
The name of the Livelink server. |
| port |
The port number of the Livelink application. |
| username |
The user name of the user with which the connector logs in to Livelink. |
| password |
The password for the above user name. |
| userPrefix |
An arbitrary name to prefix imported user (should be different for each workspace)
i.e “ll1_” |
| folderName |
An arbitrary name to store importer user/group in the defined folder name
i.e “livelink1” |
| dbName |
The name of the Livelink database. Usually, you can leave this parameter empty. |
| livelinkWS |
The name of the Livelink workspace that you want to connect to. |
| livelinkCGI |
The path of the Livelink application on the server. For example, livelink/livelink.exe. |
You can test the connection from the command line. Go to the folder server/runtime/0/_crx/WEB-INF/lib of your CRX installation folder and execute the following command (all on one line), with your server address, user name and password:
java -jar crx2livelink-1.3.2.1.jar
-testconnect
-protocol http
-cgipath /livelink/livelink.exe
-pw password
-host your.host.com
-username userid
-port 2099
The parameter subtypeConfig sets a list of subtypes that the connector recognizes. The connector is configured to recognize Livelink’s default subtypes.
If you want to add new subtypes, you need to provide the following information for each entry:
- The subtype number in the Livelink repository.
- The subtype name.
- The type of the entry. Use b for binary documents, s for simple documents, and k for simple documents that can have child documents.
For example, if subtype number 144 stores documents (which are binary data), use the following entry in the subtypeConfig parameter:
If you use SSL for a secure connection, you need to specify the following two parameters:
| verifyServer |
Verifies the server certificate when connecting. |
| rootCACertsPart |
The folder that contains the CA root certificates. |
Note
Note: SSL works only if you have installed the library llssl.jar.
Configuring the Workspace
The file workspace.xml in the folder server/crx/workspaces/crx.livelink configures the CRX workspace that maps the Livelink repository. Most values are for the connector’s internal use, and you do not need to modify them.
<?xml version="1.0" encoding="UTF-8"?>
<Workspace name="crx.livelink">
<FileSystem class="com.day.crx.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
<param name="enableHandleMonitor" value="true"/>
</FileSystem>
<WorkspaceSecurity>
<ACLProvider class="com.day.crx.security.LivelinkACLProviderFactory">
<param name="configPath"
value="etc/livelink.properties" />
</ACLProvider>
<CompiledACLProvider class="com.day.crx.security.LivelinkCompiledACLProviderFactory" />
</WorkspaceSecurity>
<PersistenceManager class="com.day.crx.persistence.livelink.LivelinkPersistenceManager">
<param name="configPath"
value="crx/livelink.properties" />
<param name="enableBinaryData"
value="true" />
<param name="livelinkDataUrlHost"
value="" />
<param name="binaryLoaderUrl"
value="http://localhost:7402/crx/livelink" />
<param name="scopePath"
value="" />
<param name="treeDepth"
value="" />
</PersistenceManager>
<SearchIndex class="com.day.crx.core.query.livelink.LivelinkQueryHandler">
<param name="configPath"
value="crx/livelink.properties" />
<param name="path"
value="${wsp.home}"/>
</SearchIndex>
</Workspace>
Note
Note:The workspace directory contains a crx.livelink folder. When you start CRX, CRX creates the workspace based on the information in the workspace.xml file. The first time you log into the workspace, CRX creates the required workspace files.
The parameter enableBinaryData sets whether or not the connector loads binary data. Configure it as follows:
| enableBinaryData |
Set to true to load binary data, or false to not load it. Default should be true. |
| livelinkDataUrlHost |
The server that makes binary files availablefor download. By default, this parameter is empty, so the connectordownloads binary files from the same server as other files. |
Specifying a Repository View
By default, the connector can access the entire repository. If you want to access only part of the repository (that is, a so-called “repository view”), you can use the parameters scopePath and treeDepth.
| scopePath |
The path to the top node of the repository view, for example LivelinkRoot/myFolder. Leave empty to use the repository root. |
| treeDepth |
The number of levels that is mapped. 1 mapsonly the nodes directly below the root folder, higher numbers map morelevels. Leave empty to map all levels. |
Configuring the CRX Web Application
To add the connector’s observation servlet to the CRX Web application, you need to add a new section to the file web.xml in the folder server/runtime/0/_crx/WEB-INF.
Adding the Observation Servlet
Add the Observation Servlet section from the file etc/WEB-INF/web.xml file of your connector installation folder as the last servlet entry (directly in front of the Servlet Mapping section).
The file web.xml now looks as follows (abridged, and omitting commented-out entries):
(...)
</description>
</init-param>
<load-on-startup>6</load-on-startup>
</servlet>
<!-- ======================================= -->
<!-- CRX2LIVELINK OBSERVATION SERVLET -->
<!-- ======================================= -->
<servlet>
<servlet-name>CRX2LivelinkObservationServlet</servlet-name>
<description>The crx2livelink observation servlet</description>
<servlet-class>
com.day.crx.persistence.livelink.observation.ObservationServlet
</servlet-class>
<init-param>
<param-name>livelink-config-path</param-name>
<param-value>etc/livelink.properties</param-value>
</init-param>
<init-param>
<param-name>livelink-deletereport-id</param-name>
<param-value>7905</param-value>
</init-param>
<init-param>
<param-name>livelink-deleteitemreport-id</param-name>
<param-value>10511</param-value>
</init-param>
<init-param>
<param-name>livelink-modifiedreport-id</param-name>
<param-value>7906</param-value>
</init-param>
<init-param>
<param-name>livelink-renamedreport-id</param-name>
<param-value>10184</param-value>
</init-param>
<init-param>
<param-name>scan-interval</param-name>
<param-value>120</param-value>
</init-param>
<init-param>
<param-name>crx-workspace</param-name>
<param-value>crx.livelink</param-value>
</init-param>
<init-param>
<param-name>repository-name</param-name>
<param-value>crx</param-value>
<description> Repository Name that is used to retrieve it via JNDI
</description>
</init-param>
<init-param>
<param-name>java.naming.provider.url</param-name>
<param-value>http://jcr.day.com</param-value>
</init-param>
<init-param>
<param-name>java.naming.factory.initial</param-name>
<param-value> com.day.util.jndi.provider.MemoryInitialContextFactory
</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<!-- ======================================== -->
<!-- S E R V L E T M A P P I N G -->
<!-- ======================================== -->
(...)
The configuration section has the following parameters:
| livelink-config-path |
The path to the Livelink configuration file. Usually, etc/livelink.properties. |
This section configures how the connector scans the repository for updates.
| livelink-deletereport-id |
This is the identification number of theLivelink report that reports deleted documents. Take this number fromthe report in the Livelink repository (see below). |
| livelink-deleteitemreport-id |
This is the identification number of theLivelink report that reports modified items (Folder, URL, etc…). Takethis number from the report in the Livelink repository (see below). |
| livelink-modifiedreport-id |
This is the identification number of theLivelink report that reports modified documents. Take this number fromthe report in the Livelink repository (see below). |
| livelink-renamedreport-id |
This is the identification number of theLivelink report that reports renamed items (Folder, URL, Documents,etc…). Take this number from the report in the Livelink repository (seebelow). |
| livelink-findprojectpathreport-id |
This is the identification number of the Livelink report that reports
the last known location of a deleted project. Take this number from
the report in the Livelink repository (see below). |
| scan-interval |
The number of seconds between scans. |
| crx-workspace |
The name of the CRX workspace that maps the Livelink data. |
To obtain the ID for a report, proceed as follows:
- Log in to the Livelink administration tool.
- In the LiveReports Administration group, click Open the LiveReports Volume. Livelink lists all existing reports. If the CRX2Livelink reports are not there, see the section 2.5
- Click the down arrow next to the report you want to examine, point to Properties, and then click General. Livelink displays the report properties.
- The ID is the number in the field Nickname.
These settings specify how the connector connects to the CRX repository.
| repository-name |
The JNDI name of the CRX repository. By default, this is crx. |
| java.naming.provider.url |
The naming provider URL for the JNDI connection. Usually, you do not have to change this. |
| java.naming.factory.initial |
The naming factory for the JNDI connection. Usually, you do not have to change this. |
Adding the Event Logger Servlet
The event logger servlet stores events that occur in the Livelink repository in a separate CRX workspace.
Check that the workspace “crx.logger” exist first see section 2.4, if it doesn’t exist create it manually as described or use the “CRX Administration Web Interface” then go on the Repository Configuration>Workspace Administration page. (you need to log in as administrator in order to have the rights to access this page)
etc/WEB-INF/loggerweb.xml file of your connector installation folder as the last servlet entry (directly in front of the Servlet Mapping section).
(...)
<!-- ======================================= -->
<!-- CRX2LIVELINK OBSERVATION SERVLET -->
<!-- ======================================= -->
(...)
<load-on-startup>10</load-on-startup>
</servlet>
<!-- ======================================= -->
<!-- EVENT LOGGER SERVLET -->
<!-- ======================================= -->
<servlet>
<servlet-name>EventLoggerServlet</servlet-name>
<description>The Event Logger Servlet</description>
<servlet-class>
com.day.crx.eventlogger.EventLoggerServlet
</servlet-class>
<init-param>
<param-name>userid</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>00dac218ba4254da</param-value>
</init-param>
<init-param>
<param-name>workspaces</param-name>
<param-value>crx.livelink</param-value>
</init-param>
<init-param>
<param-name>storageroot</param-name>
<param-value>crx.logger/events</param-value>
</init-param>
<init-param>
<param-name>repository-name</param-name>
<param-value>crx</param-value>
<description>
Repository Name that is used to retrieve it via JNDI
</description>
</init-param>
<init-param>
<param-name>java.naming.provider.url</param-name>
<param-value>http://jcr.day.com</param-value>
</init-param>
<init-param>
<param-name>java.naming.factory.initial</param-name>
<param-value> com.day.util.jndi.provider.MemoryInitialContextFactory
</param-value>
</init-param>
<load-on-startup>11</load-on-startup>
</servlet>
<!-- ======================================== -->
<!-- S E R V L E T M A P P I N G -->
<!-- ======================================== -->
(...)
The configuration section has the following parameters:
| userid |
The user id for the CRX administration user. By default, this is admin. |
| password |
The encrypted password for the above user. If the password is set to “admin”, you can leave the entry as it is. |
| workspaces |
The name of the workspace that maps the Livelink repository data. The default is crx.livelink. |
| storageroot |
The workspace name and the path to the node that stores the events. The default is crx.logger/events. This means that the connector stores events in the workspace crx.logger, under the node /events. |
| repository-name |
The JNDI name of the CRX repository. By default, this is crx. |
| java.naming.provider.url |
The naming provider URL for the JNDI connection. Usually, you do not have to change this. |
| java.naming.factory.initial |
The naming factory for the JNDI connection. Usually, you do not have to change this. |
Configuring the Binary Loader Servlet
The connector uses the binary load servlet to directly access binary data from the Livelink repository. The servlet manages the following tasks:
- Establishing one or more concurrent connections to the Livelink repository.
- Logging in to Livelink, using the connection settings from the file livelink.properties.
- Forwarding binary data to the application that uses the connector. (example with Fast2JCR Adapter for FAST ESP)
Note
Note: The servlet simplifies and speeds up access to binary data. Some applications may require the servlet, others may not.
Add the Binary Loader Servlet section from the file etc/WEB-INF/binaryloaderweb.xml file of your connector installation folder as the last servlet entry (directly in front of the Servlet Mapping section).
(...)
<!-- ======================================= -->
<!-- EVENT LOGGER SERVLET -->
<!-- ======================================= -->
(...)
<load-on-startup>10</load-on-startup>
</servlet>
<!-- ======================================= -->
<!-- CRX2LIVELINK BINARY LOADER SERVLET -->
<!-- ======================================= -->
<servlet>
<servlet-name>CRX2LivelinkBinaryLoaderServlet</servlet-name>
<description>The crx2livelink binary loader servlet can be used to get the binary directly from the Livelink instance</description>
<servlet-class>
com.day.crx.persistence.livelink.servlet.BinaryLoaderServlet
</servlet-class>
<init-param>
<param-name>livelink-config-path</param-name>
<param-value>crx/livelink.properties</param-value>
</init-param>
<init-param>
<param-name>pool-size</param-name>
<param-value>8</param-value>
</init-param>
<init-param>
<param-name>max-retries</param-name>
<param-value>4</param-value>
</init-param>
<load-on-startup>8</load-on-startup>
</servlet>
<!-- ======================================== -->
<!-- S E R V L E T M A P P I N G -->
<!-- ======================================== -->
(...)
| livelink-config-path |
The path and name of the file that stores the Livelink connection properties. Usually, crx/livelink.properties. |
| pool-size |
The number of connections in the connectionpool. This is the number of connections the connector can have open atthe same time. |
| max-retries |
The number of retries if a connection to the Livelink repository fails. |
Configuring the Servlet Mapping
The servlet mapping specifies under which URL a servlet is available. Add the following entry to the servlet mapping section of the web.xml file:
<servlet-mapping>
<servlet-name>CRX2LivelinkBinaryLoaderServlet</servlet-name>
<url-pattern>/livelink/*</url-pattern>
</servlet-mapping>
Configuring multiple Livelink instances.
Multiple workspaces allow you to configure and use multiple Linklink instances. To create multiple workspaces, simply redo the same steps for each workspace that map a Livelink instance for example: crx.livelink, crx.livelink2.
To connect to a workspace, select the desired workspace during the login process.
Each instance must define its own livelink.properties properties file. The web.xml file must define one Observation Servlet per Livelink workspace, as well as a Binary Loader Servlet.
Note
Note:The Event Logger Servlet may use the same repository to store the events (example the crx.logger workspace). Just use coma separated workspaces name to let the Event Logger Servlet listen to different workspaces (for example: crx.livelink,crx.livelink2)
Each new servlet must have a unique name, for example: CRX2LivelinkBinaryLoaderServlet, CRX2LivelinkBinaryLoaderServlet2
For each new Binary Loader Servlet, servlet-mapping must be define respectively as well.
In livelink_login.conf, each workspace may use its own LivelinkLoginModule. However, if there are multiple LoginModules they are optional. The following code is an example.
com.day.crx {
com.day.crx.security.authentication.CRXLoginModule sufficient;
com.day.crx.security.LivelinkLoginModule optional
principal_provider.class=" com.day.crx.security.LivelinkPrincipalProvider "
principal_provider.name="livelink"
sync_interval="180"
configPath="etc/livelink.properties";
com.day.crx.security.LivelinkLoginModule optional
principal_provider.class="com.day.crx.security.LivelinkPrincipalProvider"
principal_provider.name="livelink2"
sync_interval="180"
configPath="etc/livelink2.properties";
com.day.crx.security.LivelinkLoginModule optional
principal_provider.class="com.day.crx.security.LivelinkPrincipalProvider"
principal_provider.name="livelink3"
sync_interval="180"
configPath="etc/livelink3.properties";
};
Configuring Authentication (JAAS)
The file server/etc/livelink_login.conf contains pre-configured login information to Livelink and the configurable parameter defining the frequency of updates on users, groups, and group memberships changes (synchronization interval).
The file looks as follows:
com.day.crx {
com.day.crx.security.CRXLoginModule sufficient;
com.day.crx.security.LivelinkLoginModule required
principal_provider.class="com.day.crx.security.LivelinkPrincipalProvider"
principal_provider.name="livelink"
sync_interval="3600"
configPath="crx/livelink.properties";
};
The file states that the connector first tries to authenticate users as CRX users, and if that fails, tries to authenticate them as Livelink users.
| sync_interval |
How often the connector updates the user,group, and group membership information from the Livelink repository.The value is in seconds. The default is 3600. |
If you have multiple livelink instances each instance must define its own principal provider and have them optional:
com.day.crx {
com.day.crx.security.authentication.CRXLoginModule sufficient;
com.day.crx.security.LivelinkLoginModule optional
principal_provider.class="com.day.crx.security.LivelinkPrincipalProvider"
principal_provider.name="livelink"
sync_interval="3600"
configPath="crx/livelink.properties";
com.day.crx.security.LivelinkLoginModule optional
principal_provider.class="com.day.crx.security.LivelinkPrincipalProvider"
principal_provider.name="livelink2"
sync_interval="3600"
configPath="crx/livelink2.properties";
};
The connector provides a JSR data source, which you can use with any development environment, and using all CRX tools and interfaces.
The CRX content explorer allows you to browse the content of a CRX workspace.
To access the Livelink content, you have to start the CRX explorer and log in to the crx.livelink workspace, as follows:
- In the address bar of your Web browser, type the path to the CRX application, for example http://localhost:7402/crx. The CRX console opens.
- Click Log In. Click the crx.livelink workspace, and type your Livelink user name and password. You can also use the CRX administrator’s user name and password (by default, admin and admin). Click the Submit Query button.
- Click Content Explorer. The CRX content explorer opens.
With the CRX explorer, you can browse the content of the crx.livelink workspace, which maps the Livelink repository content. The following functions are available:
- The navigation pane (left) allows you to browse the nodes in the repository. Click the plus sign to open a node. The navigation pane does not display properties.
- The content pane (top right) displays the content of node you have selected in the navigation pane. It displays all the properties of the selected node, and and all nodes that are directly below.
- The detail pane (bottom right) displays details about the node or property that you have selected in the content pane.
To download a document, proceed as follows:
- Click the document node (for example, myDocument.pdf) in the navigation pane (left). The content pane (top right) displays the properties of the document.
- In the content pane (top right), next to the property ll:data, click [binary]. Your Web browser asks you for the download name and location.
- As the download name, type the name of the node, for example myDocument.pdf. (the default name is that of the property, ll:data).
Alternative way using ll:dataUrl, ll:livelinkDataUrl:
- Click the document node (for example, myDocument.pdf) in the navigation pane (left). The content pane (top right) displays the properties of the document.
- In the content pane (top right), next to the property ll:dataUrl, click [view]. Copy the url in your Web browser address bar for example to view the document. Note that you can also use the ll:livelinkDataUrl, the difference is that the authentication is required for livelinkDataUrl but with ll:dataUrl it will use the Admin rights. So depending on the type of application you may use the one that suits your need.
Alternative way using WebDAV (Windows XP):
- Create a new Network Place connection using the WebDAV url, example
- Browse to the document folder
- Copy the document to your local machine, then open it locally.
From CRX, you can run queries on the Livelink repository.
For example, the following query
returns all Livelink objects of the type document.
You can also use the nt:hierarchyNode and sub types in your queries.
CRX offers a WebDAV interface that allows you to browse the repository as a folder in a file system. The WebDAV address is composed as follows:
- The path to the CRX application, for example http://localhost:7402/crx
- The path /repository/crx.livelink/LivelinkRoot to access the Livelink content that is mapped to the crx.livelink workspace in CRX.
You can access the repository using an HTTP connection. The path to a document is composed as follows:
- The path to the CRX application, for example http://localhost:7402/crx
- The path /repository/crx.livelink/LivelinkRoot to access the Livelink content that is mapped to the crx.livelink workspace in CRX.
- The path of the document you want to access, for example /myFolder/myDocument.pdf
Type the full path in the address field of your Web browser to download the document.
This section covers tracing content updates in the Livelink repository.
Full Scan with Fast2JCR Adapter for FAST ESP
Depending on the data volumes, full scan time requirements and the available hardware infrastructure, the connector can run in one or more instances. The latest configuration enables full scan partitioning based on configurable views on the Livelink repository.
See Fast2JCR Adapter documentation, recommendation is to enable the “useSearch” setting for better Full Scan performance.
The connector periodically checks for content updates in the Livelink repository (modified, created, deleted, renamed Livelink objects). The frequency of these checks is configurable. The connector converts the received updates into JCR events, triggering an incremental content update in registered applications.
User and Permission Updates
The connector periodically checks for user and permission updates in the Livelink repository (users, groups and group memberships). The frequency of these checks is configurable The connector converts the received updates into JCR events, triggering an incremental update in registered applications.
Users and permissions updates are sent to the registered application, when:
- a user logs into the system to execute a query
- the configurable frequency triggers an update notification
Reports are stored on the Livelink instance, and runned periodically by the Observation Servlet. If the servlet stops working due to abnormal server state, content updates will be detected after restart of this one, as the report will produce the list of event based on last check files located in the workspace folder. (see crx/workspaces/crx.livelink/last_?????_scan timestamp for each reports). Users/Groups will be synchronized as usual on startup.
Setting Up a Development Environment
You can access the connector from a Java environment. This section tells you how to set up your Java development environment and how to access the connector. This documentation refers to the Eclipse development environment, and to developing a Java application. For other development environments, and for other types of Java programs (such as Web applications), the steps are similar.
This section tells you how to set up an Eclipse project so that you can use the standardized JCR (Java Content Repository) API to access the repository data.
- Start Eclipse. Close all open projects.
- In the File menu, point to New, and then click Project. The New Project window opens.
- Click Java Project, and then click Next. The New Java Project wizard opens.
- Type a name for the project. Click Next. The Java Settings window opens.
- For JNDI, Click the Libraries tab, and then click the Add External Jars button. Add the libraries crx-api-1.3.jar, day-commons-naming-1.1.jar, and jcr-1.0.jar. You can find them in the folder server/lib/container of your CRX installation folder.
- For RMI, Click the Libraries tab, and then click the Add External Jars button. Add the libraries crx-rmi-1.3.jar and jcr-1.0.jar. You can find them in the file crx.war/WEB-INF/lib of your CRX installation folder server/wepapps.
- Click Finish. Eclipse creates the new Java project, and you can use the JCR API to access the repository data.
This section tells you how to write a short program that accesses the connector.
To create a HelloWorld Java application in Eclipse, proceed as follows:
- Right-click your new project, point to New, and then click Class. The New Java Class window opens.
- In the Name field, type HelloWorld. In the Method stubs group, check the option public static void main(String[] args). Click Finish to create the class.
The class you have created has a method named main, so it can run as a stand-alone Java application.
For JNDI use the following code example to get a Session
public Session getSession() {
Session session = null;
try {
Hashtable env = new Hashtable();
env.put("java.naming.provider.url", "http://jcr.day.com");
env.put("java.naming.factory.initial", "com.day.util.jndi.provider.MemoryInitialContextFactory");
InitialContext ctx = new InitialContext(env);
Repository r = (Repository) ctx.lookup(“crx”);
Credentials creds = new SimpleCredentials(“admin”, “admin”.toCharArray());
Session session = r.login(creds,”crx.livelink”);
} catch (NamingException e) {
log.error(e.getMessage(),e);
}
return session;
}
For RMI use the following code example to get a Session
public Session getSession() {
Session session = null;
try {
String rmiURI = “rmi://localhost:1234/crx”;
ClientRepositoryFactory factory = new ClientRepositoryFactory();
Repository r = factory.getRepository(rmiURI);
Credentials creds = new SimpleCredentials(“admin”, “admin”.toCharArray());
Session session = r.login(creds,”crx.livelink”);
} catch (NamingException e) {
log.error(e.getMessage(),e);
}
return session;
}
Update your main method in order to use one of the method described above. Depending on the type of application, and connection used to retrieve the Session object you may have different way of running the class.
If you want to use RMI, simply create a new configuration to run your application, see Run button of Eclipse. Then choose Java Application.
If you want to use JNDI, you have to export your project as a war file, so you need to build a Servlet that would use the getSession method described above, and configure the Web Application to use this servlet. Once you have it setup you may deploy you application war file on the server using the Communiqué Servlet Engine Administration Web interface. Then you can access your application servlet to test it.
In order to listen to the content updates, you need to register your implementation of a javax.jcr.observation.EventListener on the workspace you are interested in.
You can get the javax.jcr.Workspace object from the javax.jcr.Session object.
Then get the javax.jcr.observation.ObservationManager object.
getSession().getWorkspace().getObservationManager().addEventListener(…)
In order to run XPATH queries to search in the connected workspace, you need to get the javax.jcr.query.QueryManager object.
QueryManager qm = getSession().getWorkspace().getQueryManager();
Query query = qm.createQuery(q , Query.XPATH);
QueryResult res = query.execute();
RowIterator rIter = res.getRows();
while (rIter.hasNext()) {
Row r = rIter.nextRow();
Value[] vals = r.getValues();
for (int i=0;i<vals.length;i++) {
…DO ANYTHING WITH THE RESULT…
}
}
Here are some example queries that have been tested.
//*
//element(*,nt:file)
//element(*,nt:folder)
//element(*,nt:hierarchyNode)
/jcr:root//element(*,nt:hierarchyNode)
/jcr:root//element(*,nt:base)
/jcr:root//element(*,nt:folder)
/jcr:root//element(*,nt:file)
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created < xs:dateTime("2007-03-12T00:00:00.000Z") or @jcr:created > xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created < xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created = xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created >= xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created > xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[jcr:contains(@jcr:data, "google")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-12T00:00:00.000Z")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-02-15T00:00:00.000Z") and jcr:like(@jcr:mimeType,"application/%")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-14T00:00:00.000Z") and jcr:like(@jcr:mimeType,"application/%")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-14T00:00:00.000Z") and jcr:like(@jcr:mimeType,"ext")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-14T00:00:00.000Z") and jcr:like(@jcr:mimeType,"text")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created != xs:dateTime("2007-03-14T00:00:00.000Z") and jcr:like(fn:lower-case(ojcr:local-name(.)),"%/vnd.ms-powerpoint")]
/jcr:root//element(*,nt:hierarchyNode)[@jcr:created = xs:dateTime("2007-02-26T00:00:00.000Z") and jcr:like(@ll:FILENAME,"%.ppt")]
/jcr:root//element(*,nt:hierarchyNode)[jcr:like(@ll:FILENAME,"%.txt")]
/jcr:root//element(*,nt:hierarchyNode)[jcr:contains(*,"google")]
/jcr:root//element(*,nt:hierarchyNode)[jcr:contains(ll:FILENAME,"http://www.google.com")]
/jcr:root//element(*,nt:hierarchyNode)[jcr:contains(ll:MIMETYPE,"application/vnd.ms-powerpoint")]
/jcr:root//element(*,ll:Url)
/jcr:root//element(*,ll:Url) order by @ll:CREATEDATE
/jcr:root//element(*,ll:Document) order by @ll:CREATEDATE descending
/jcr:root//element(*,nt:folder) order by @ll:CREATEDATE descending
/jcr:root//element(*,nt:folder)[@jcr:created < xs:dateTime('2007-03-12T00:00:00.000Z')] order by @ll:CREATEDATE descending
/jcr:root//element(*,nt:folder)[@jcr:created < xs:dateTime('2007-03-12T00:00:00.000Z')] order by @ll:MIMETYPE descending
/jcr:root//element(*,nt:base) order by @ll:FILENAME descending
/jcr:root//element(*,nt:base) order by @ll:FILENAME ascending
Note
Note:jcr:contains and jcr:like implementation is limited to Livelink search API and may not always result as expected.
jcr:contains uses simple text search.
jcr:like uses existing Livelink special search function respectively:
- jcr:like(@ll:FILENAME,"%.ppt") uses “qlright-truncation”
- jcr:like(@ll:FILENAME,"file%") uses “qlleft-truncation”
- jcr:like(@ll:FILENAME,"%file%") uses “qlphonetic”
- jcr:like(@ll:FILENAME,"file") uses “qlstem”
This section offers help in case the CRX2Livelink connector installation does not work properly.
The CRX Repository Does not Start
Check the Connector configuration. CRX does not start if it cannot connect to the Livelink server. Use the "LAPI test connection utility", which ships with Livelink, to test the connection.
There was an Error Initializing the Context
This error message is displayed if you try to access CRX in your Web browser, and CRX cannot start the Livelink connector.
The cause of the error depends on the error message. The error type is displayed in the browser, for more information refer to the logs at server/logs/server.log.
Most likely, the connector cannot find the configuration file livelink.properties. Check the location of the file (by default etc/livelink.properties) and make sure it is set correctly in the following locations:
- In the file server/runtime/0/_crx/WEB-INF/web.xml, in the section CRX2LIVELINK OBSERVATION SERVLET.
- In the file server/crx/workspaces/crx.livelink/workspace.xml.
- In the file server/etc/livelink_login.conf.
The connector cannot log in to the Livelink repository. This points to a configuration issue. You can test the connection from the command line. Go to the folder server/runtime/0/_crx/WEB-INF/lib of your CRX installation folder and execute the following command (all on one line), with your server address, user name and password:
java -jar crx2livelink-1.3.2.1.jar
-testconnect
-protocol http
-cgipath /livelink/livelink.exe
-pw password
-host your.host.com
-username userid
-port 2099
Check the server.log or/and the startup.log file, which you can find in the folder /server/logs of the CRX program folder.
If you do not find log entries referred to the problem you encounter, increase the log level to INFO or DEBUG. This can be configured in the file /server/wenapps/crx.war/WEB-INF/log4j.xml in the CRX program folder.
Increase the log level to INFO in the log4j.xml file to check the connection speed between CRX2Livelink connector and the Livelink repository.
Copyright, Licenses, Disclaimers
This section lists all licenses, copyright notices and disclaimers which must be explicitly stated in connection with the CRX Connector for OpenText Livelink.
CRX Connector for OpenText Livelink
The CRX Connector for OpenText Livelink is covered by the following license. This includes the following libraries included with the product:
CRX Content Repository Extreme (r) Connector for OpenText Livelink ("the
Software"). By installing the Software you agree to the following terms and
conditions.
This Software is protected by copyright law and international treaties. This
Software is licensed (not sold), and its use is subject to a separate license
agreement between you and Day or Day's authorized resellers. By installing the
Software you confirm to be an authorized user of the software in accordance
with such license agreement. The unauthorized use, copying or distribution of
this Software may result in severe criminal or civil penalties, and will be
prosecuted to the maximum extent allowed by law.
Remote Verification. You acknowledge and agree that the Software may contain
verification and reporting functionality that allows the remote reporting of
your usage of the Software for the purpose of verifying your compliance with
these terms and conditions. If remote verification reveals that you are using
the Software in violation of these terms and conditions, you agree to cease
such unauthorized use and to pay Day's reasonable expenses and a penalty fee
associated with such remote verification and your unauthorized use.
DAY, the DAY logo, Communique, ContentBus and CRX Content Repository Extreme
are registered trademarks and service marks, or are trademarks and service
marks, of Day Management AG, Switzerland, in various countries around the world.
All other product names and company logos mentioned in the information,
documents or other items provided or available herein may be the trademarks of
their respective owners.
This product includes software developed by the JDOM Project (http://www.jdom.org/).
Copyright (C) 2000-2002 Brett McLaughlin & Jason Hunter.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions, and the disclaimer that follows
these conditions in the documentation and/or other materials
provided with the distribution.
3. The name "JDOM" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact license@jdom.org.
4. Products derived from this software may not be called "JDOM", nor
may "JDOM" appear in their name, without prior written permission
from the JDOM Project Management (pm@jdom.org).
In addition, we request (but do not require) that you include in the
end-user documentation provided with the redistribution and/or in the
software itself an acknowledgement equivalent to the following:
"This product includes software developed by the
JDOM Project (http://www.jdom.org/)."
Alternatively, the acknowledgment may be graphical using the logos
available at http://www.jdom.org/images/logos.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
This software consists of voluntary contributions made by many
individuals on behalf of the JDOM Project and was originally
created by Brett McLaughlin <brett@jdom.org> and
Jason Hunter <jhunter@jdom.org>. For more information on the
JDOM Project, please see <http://www.jdom.org/>.
|
|
Note: Customers with DayCare user accounts need to create a new account for use on day.com.