Alfresco Workdesk Installation Guide-4.1
Alfresco Workdesk Installation Guide-4.1
Alfresco Workdesk Installation Guide-4.1
Copyright 2013 by Alfresco and others. Information in this document is subject to change without notice. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Alfresco. The trademarks, service marks, logos, or other intellectual property rights of Alfresco and others used in this documentation ("Trademarks") are the property of Alfresco and their respective owners. The furnishing of this document does not give you license to these patents, trademarks, copyrights, or other intellectual property except as expressly provided in any written agreement from Alfresco. The United States export control laws and regulations, including the Export Administration Regulations of the U.S. Department of Commerce, and other applicable laws and regulations apply to this documentation which prohibit the export or re-export of content, products, services, and technology to certain countries and persons. You agree to comply with all export laws, regulations, and restrictions of the United States and any foreign agency or authority and assume sole responsibility for any such unauthorized exportation. You may not use this documentation if you are a competitor of Alfresco, except with Alfresco's prior written consent. In addition, you may not use the documentation for purposes of evaluating its functionality or for any other competitive purposes. This copyright applies to the current version of the licensed program.
ii
Table of Contents
Introduction ...............................................................................................................................1
About this document .......................................................................................................................... 1 Intended audience .............................................................................................................................. 2 Typographical conventions used in this guide .................................................................................... 3 Abbreviations ..................................................................................................................................... 4 Checklist ............................................................................................................................................. 5
Prerequisites ..............................................................................................................................6
Server-side prerequisites .................................................................................................................... 6 Application server ........................................................................................................................... 6 Databases and JDBC drivers ............................................................................................................ 6 Back end ECM systems .................................................................................................................... 6 Client-side prerequisites ..................................................................................................................... 7
Recommendations......................................................................................................................8
Ports ................................................................................................................................................... 8 URL structure ...................................................................................................................................... 8
iii
Auditing ........................................................................................................................................ 38
Updating Alfresco Workdesk ....................................................................................................60 Upgrading the ECM back end system .......................................................................................62 Appendix ..................................................................................................................................63
Daeja Viewer configuration in web.xml ............................................................................................ 63 Example for Log4J configuration ....................................................................................................... 64 A4: Background about Log4J............................................................................................................. 65 A5: Example for changing Java user in DB2....................................................................................... 67
iv
Introduction
Introduction
Alfresco Workdesk is the leading solution for content-centric business applications, running onpremise, as well as in the cloud. Alfresco Workdesk is recommended for Enterprise customers, requiring high levels of functionality, versatility, security, and performance. It is licensed using a subscription model based on the number of processors used in the application server. The yearly subscription price is accounted as operating expenses rather than capital expenses. Besides the CMIS adapter, for example, for connecting to Alfresco Enterprise, it provides an additional native adapter for IBM FileNet Content Manager. Alfresco Workdesk enables users to work seamlessly across the boundaries of different ECM systems without compromising the look and feel. Also, it includes many enterprise features such as multi-tenancy, federation of different systems, and audit trail. Alfresco Office Workdesk and Mobile Workdesk are available add-ons. Alfresco Workdesk is recommended for maximizing the use of your ECM platform whilst supporting a large number of users. Alfresco Workdesk Community is recommended for developers and technology fans dealing with non-critical information. It provides user-friendly applications for eFile management and retrieval and supports all CMIS compliant ECM systems. It can be downloaded for free and is licensed under the GNU Public License. The early availability of Community Edition releases allows using the latest features very fast. Customers can use the Community Edition to develop their own solutions.
Introduction
The Updating Alfresco Workdesk section describes how to update an existing Alfresco Workdesk deployment with a newer updated version, or fix pack, for the existing version.
Intended audience
This document is intended for software professionals who are installing Alfresco Workdesk. Depending on the ECM and the Alfresco Workdesk edition you are using, you need basic skills to manage the underlying ECM systems. Alfresco Workdesk provides adapters for the following list of ECM systems. The adaptors make use of the native Java APIs: CMIS-compliant ECM systems, for example, Alfresco IBM FileNet P8 Note: Only CMIS-compliant ECM systems are available with Alfresco Workdesk Community. It is recommended that you are a system administrator and have experience with: Application servers: o Deploying web applications (on IBM WebSphere, JBoss, Oracle WebLogic, Apache Tomcat) o classpath configurations o Configuration of the libraries used by your web application o log4j configuration, reading of log files o xml JDBC connections Database knowledge (running DB scripts) Web applications
Introduction
Path
XML Attribute XML value
Product-specific terms
Formatting legend for brackets in Source Code, Paths, File Names, and so on:
Ellipsis (...): Parameter the user must supply Between brackets []: Optional items Between braces {}, choices separated by pipe |, example: {even|odd}: Set of choices from which the user must choose only one
The following placeholders are used in this document:
(workdesk) - root directory of AWD deployment (Workplace) - root directory of IBM FileNet P8Workplace deployment (WebSphere) - installation root of WebSphere application server (Tomcat) - installation root of Tomcat application server (JBoss) - installation root of JBoss application server
Introduction
Abbreviations
AE AMP AWD AOWD AMWD BPM CE CMIS ECM FNCM IE MS MS Word Office P8 SSO WAR IBM FileNet Application Engine Alfresco Module Package Alfresco Workdesk Alfresco Office Workdesk Alfresco Mobile Workdesk Business Process Management IBM FileNet Content Engine Content Management Interoperability Services Enterprise Content Management IBM FileNet P8 Content Manager Internet Explorer Microsoft Microsoft Word Microsoft Office IBM FileNet P8 Single Sign-On Web Archive
All trademarks, trade names, registered trademarks, or registered trade names are property of their respective holders.
Introduction
Checklist
1. Before starting [Prerequisites] Prerequisites? [Recommendations] Checked recommendations? [Settings for application servers] Checked settings for application server? [Settings in the ECM system] Checked settings for ECM system? 2. Deployment [Initial deployment] Dummy ECM adapter deployment up and running? [ECM adapter activation] Client libraries installed? [Update Alfresco Workdesk configuration] Alfresco Workdesk configured? [Native viewer integration] Viewer configured? * [Database connection] Database configured? 3. Basic configuration [DB Role Manager] DB Role Manager configured? * [DB History Manager] DB History Manager configured? * [MIME Types] MIME types configured? [Drag and Drop applet (DND)] Drag and Drop applet configured? * 4. Installing AWD Configurator [Installing the AWD Configurator] New project created and deployment structure imported? * These features are not available in Alfresco Workdesk Community.
Prerequisites
Prerequisites
Before deploying the Alfresco Workdesk application, your infrastructure should meet the following prerequisites on both the server-side and the client-side.
Server-side prerequisites
Before starting the Alfresco Workdesk installation, check the server-side prerequisites.
Application server
Alfresco Workdesk runs within a web application. You can test the Alfresco Workdesk deployment on the application server without an underlying back end ECM system by using the dummy ECM adapter (see Initial deployment for more information). Alfresco Workdesk has been successfully tested on several application servers. The following list shows the recommended application servers: JBoss Oracle WebLogic IBM WebSphere Apache Tomcat Note: Only Apache Tomcat is available in Alfresco Workdesk Community.
Prerequisites
IBM FileNet P8
Make sure that your Alfresco Workplace deployment is running and you have made a backup. When using IBM FileNet P8, we recommend deploying Alfresco Workdesk on the same application server that hosts the IBM FileNet Application Engine. In some cases, this is mandatory.
Client-side prerequisites
To access the Alfresco Workdesk application on the client-side, use any of the popular web browsers.
See the Alfresco Workdesk Release Notes to find a list of supported browsers.
In addition to an installed web browser, the following criteria must be met: The web browser must be connected to the network for accessing the application server JavaScript must be enabled in the web browser To use some features of Alfresco Workdesk (for example, drag and drop functionality, viewers), Java applets must be allowed in the web browser To use Alfresco Workdesk features/plugins, like Send as email link or Send as email attachment, install an email client, for example, Microsoft Office Outlook or Lotus Notes, on the client-side. Select one of these email clients as the default email client for both the client-side operating system and the client-side web browser.
Even if you are using any other browser than Internet Explorer, make sure that you set the default email program in the Internet Explorer settings. This is because the email plugins of Alfresco Workdesk might use the Internet Explorer API to specify the default email program.
Recommendations
Recommendations
The following sections outline the recommendations for deploying Alfresco Workdesk.
Ports
Alfresco Workdesk does not require any special port or port settings. It can also use Secure Sockets Layer (SSL) to provide secure communication. By default, no additional communication channel mechanism is needed by the applets used in Alfresco Workdesk (for example, the Daeja Viewer applet, the Workflow Designer applet, or the drag and drop applet).
You must install a security certificate on your application server. For more information, see your application server help.
URL structure
In this document, the base URL of the installed Alfresco Workdesk application is referred as (Workdesk Base URL). It is composed of (Protocol)://(Server name)[:(Port)]/(Context path)
The :(Port) in the URL is required only for non-standard ports and even forbidden for the default ports 80 (HTTP) and 443 (HTTPS).
Therefore set the WebLogic parameter <show-archived-real-path-enabled> in WebLogics config.xml to true, for example:
<web-app-container> <show-archived-real-path-enabled>true </show-archived-real-path-enabled> </web-app-container>
Apache Tomcat: There are no further settings necessary. IBM WebSphere: There are no further settings necessary. JBoss: There are no further settings necessary.
IBM FileNet P8
Note: This feature is not available in Alfresco Workdesk Community. To operate correctly, Alfresco Workdesk needs a predefined folder structure in an IBM FileNet P8 Object Store, where user specific persistent information is stored. You may either use an existing Object Store, that also holds business information, or you may create a new Object Store solely for Alfresco Workdesks persistent information. In a later step, you must tell Alfresco Workdesk in which Object Store the folder structure can be found, by setting a parameter in (workdesk)\WEB-INF\conf\fncm5\owbootstap.xml.
Often, an Alfresco Workdesk deployment and an Alfresco Office Workdesk deployment share the same configuration folder structure. In this way both have access to the same resources, like search templates. However, each deployment must have its own location for storing persistent information. A different folder name for owpreferences can be defined in owboostrap.xml using the <UserDefinedPreferencesFolder> configuration node.
See Configure ECM adapter. To create the folder structure, you may either use a provided script (see section Create required folder structure via script) or add the required folders manually (see Create required folder structure manually).
Additionally, further folders must be created. Your subfolder structure under the folder /ow_app may have the following structure:
10 Alfresco Workdesk 4.1
contains templates defining hierarchies of (semi-)virtual all users must have "write access" for this folder contains search templates contains templates for physical eFiles contains definitions for virtual queues/inboxes
11
An example virtual view for BPM can be found in \db\fncm\bpmtestcrossview.xml. Import it to /ow_app/owbpmviewtemplates.
Search templates
The necessary preparations for using search templates in Alfresco Workdesk are described in accordance to the corresponding ECM repository in the following section.
12
You can make existing search templates available to Alfresco Workdesk by adding a reference to the owsearchtemplates folder. You can make these search templates available on a per user base by setting appropriate permissions for each search template.
13
Initial deployment
This section describes how to create a valid Alfresco Workdesk web archive (WAR) file and how to deploy this archive in its initial configuration on several application servers. We strongly recommend deploying Alfresco Workdesk initially without any modifications to how it was delivered by default. Later sections then refer to modifying Alfresco Workdesks configuration and redeploying Alfresco Workdesk with this changed advanced configuration.
Application servers
This section describes the most important steps of the Alfresco Workdesk deployment procedure on different supported application servers.
IBM WebSphere
Note: This feature is not available in Alfresco Workdesk Community.
14
On IBM WebSphere, Alfresco Workdesk has to be deployed as packed web archive ( *.war file). Use the WebSphere server administration console to deploy this file. You do not need to change the default settings during the deployment process of WebSphere. After having deployed Alfresco Workdesk, check that all classes are loaded with the application class loader. Normally you can find this option in the menu Shared library references > JSP reload options for web modules by navigating in WebSpheres server administration console through step 1 to 3 as shown in the following screenshot:
Oracle WebLogic
Note: This feature is not available in Alfresco Workdesk Community. On Oracle WebLogic, Alfresco Workdesk has to be deployed as packed web archive ( *.war file). Use the WebLogic server administration console to deploy this file.
WebLogic only supports absolute file paths in the Alfresco Workdesk configuration files like web.xml. Placeholders like deploy# are not supported.
15
For Oracle WebLogic version 10 and higher: Alfresco Workdesk uses the
getRealPath()
deployment file structure. Therefore set the WebLogic parameter <show-archivedreal-path-enabled> in WebLogics config.xml to true: <web-app-container> <show-archived-real-path-enabled>true </show-archived-real-path-enabled> </web-app-container>
JBoss
Note: This feature is not available in Alfresco Workdesk Community. On JBoss, Alfresco Workdesk has to be deployed as exploded web archive. After copying the \bin\workdesk folder from the Alfresco Workdesk delivery to (JBoss)\server\default\deploy, you may rename the folder to your application context. Do not forget to append the .war extension to the folder name. An example would be (JBoss)\server\default\deploy\workdesk.war.
JBoss and log4j*.jar: Do not deploy log4j*.jar when using JBoss. See Log4j and JBoss for further information.
Apache Tomcat
On Apache Tomcat, Alfresco Workdesk has to be deployed as exploded web archive. After copying the \bin\workdesk folder from the Alfresco Workdesk delivery to (Tomcat)\webapps, you may rename the folder to your application context. An example would be (Tomcat)\webapps\workdesk.
If you are using Alfresco as ECM Repository, Alfresco Workdesk may not be deployed in the same Apache Tomcat as Alfresco is deployed. Use a separate Apache Tomcat instance.
16
Log in with the names Guest, A, B, or Admin (as described on the welcome screen). After logging in with name B and without any password, see the following screen:
17
Log out and log in once more with user name Admin and without any password. You will see the following screen:
If you see an error message similar to Error 500: com.wewebu.ow.server.log. OwLogCoreBase (initialization failure) when calling the Alfresco Workdesk URL,
Verification of different Alfresco Workdesk deployments will produce different welcome screens (for example, configuring a real ECM adapter in later sections). We strongly recommend that you verify the Alfresco Workdesk deployment again after each deployment step.
18
Either copy the required libraries into the WEB-INF\lib folder of the Alfresco Workdesk deployment or use the referencing mechanisms provided by the application server to make them available for the web application. 2. Configure the connection to the IBM FileNet Content/Process Engine: Next, you need to tell Workdesk how to connect to the IBM FileNet P8 Content/Process Engine. Modify the corresponding configuration nodes in (workdesk)\WEBINF\conf\fncm5\owbootstrap.xml. This file contains, among other configuration parameters, the server name or IP address of your IBM FileNet P8 Content Engine and the connection point for your IBM FileNet P8 Process Engine located under the main adapter configuration node <EcmAdapter>:
<ConnectionUrl> <jaasContext> <BPM>/<ConnectionPointName>
sets the URL for the IBM FileNet P8 Content Engine sets the authentication mechanism sets the P8 Process Engine Connection Point
19
If you want to use Alfresco Workdesk BPM functionalities with Alfresco, there are further libraries required which can be found under (Delivery)\libs\alfrescobpm: apache-mime*.jar httpclient*.jar httpcore*.jar httpmime*.jar 20ptione-core-asl*.jar 20ptione-mapper-asl*.jar jcip-annotations*.jar org.osgi.core*.jar org.restlet.ext.httpcllient*.jar org.restlet.ext.jackson*.jar org.restlet.ext.json.jar org.restlet.lib.org.json*.jar org.restlet*.jar
Cross-adapter scenario
Note: This feature is not available in Alfresco Workdesk Community. If you want to use Alfresco Workdesk against one ECM system crossed with another ECM system (see Configure ECM cross adapter), you must ensure that the corresponding libraries for both ECM systems are made available for the Alfresco Workdesk deployment.
20
21
It is also possible to connect Alfresco Workdesk to the IBM FileNet P8 Process Engine. Following parameters must be set in the owbootstrap.xml file:
<ConnectionPointName>: <DefaultObjectStoreLookup>: <WorkplaceRedirectURL>:
Define the connection point name Define the object store Define the URL to the Workplace installation
Example:
<BPM 22ptioned=> <ConnectionPointName>P8ConnPt1</ConnectionPointName> <DefaultObjectStoreLookup>P8ConfigObjectStore</DefaultObjectStoreLookup> <ProxyRouting>false</ProxyRouting> <DefaultResource></DefaultResource> <WorkplaceRedirectURL>http://192.168.1.254:9080/Workplace</WorkplaceRedirectURL> <ExternalAttachmentProperties> <property></property> </ExternalAttachmentProperties> </BPM>
22
For the Content Management Interoperability Services (CMIS) adapter, to connect to the repository, configure the CMIS Web services of the underlying CMIS-compliant ECM system in owbootstrap.xml.
Example:
<EcmAdapter> <ClassName>com.wewebu.ow.server.ecmimpl.cmis.OwCMISNetwork </ClassName> <Version>4.1.0</Version> <WSDLRepository>http://server:port/cmis/RepositoryService?wsdl </WSDLReposito <WSDLNavigation>http://server:port/cmis/NavigationService?wsdl </WSDLNavigation> <WSDLObject>http://server:port/cmis/ObjectService?wsdl </WSDLObject> <WSDLMultifiling>http://server:port/cmis/MultiFilingService?wsdl </WSDLMultifiling> <WSDLDiscovery>http://server:port/cmis/DiscoveryService?wsdl </WSDLDiscovery> <WSDLVersioning>http://server:port/cmis/VersioningService?wsdl </WSDLVersion> <WSDLRelationship>http://server:port/cmis/RelationshipService?wsdl </WSDLRelationship> <WSDLPolicy>http://server:port/cmis/PolicyService?wsdl </WSDLPolicy> <WSDLACL>http://server:port/cmis/ACLService?wsdl </WSDLACL> . . .
General settings To change the default table name (OW_ATTRIBUTE_BAG) of the database table where the attribute bags are stored (see Configure database), you can use the <DbAttributeBagTableName> configuration element:
<DbAttributeBagTableName>OW_ATTRIBUTE_BAG</DbAttributeBagTableName>
CMIS in combination with Alfresco Aspects In case of using CMIS in combination with Alfresco Aspects, refer to the following configuration option: Since Alfresco Aspects are not part of the CMIS standard and are not completely covered by CMIS, the existing CMIS adaptor was extended to provide the information of mandatory aspects during the creation process. Configuration node: <bootstrap>/<EcmAdapter>/
<AspectRetrieverClass>.</AspectRetrieverClass>
A class that is responsible for information retrieval and that provides the list of mandatory Aspects IDs to adaptor. You do not have to activate this line.
23
<AspectRetrieveUrl>http://cmis.alfresco.com/service/api/classes/</AspectRetrieveUrl>
An URL that defines the service-location for information retrieval the standard setting is configured to use Alfresco in the cloud. If you connect to your local repository (and not the cloud) disable the complete line (for example, set a comment or remove it) the correct URL will be dynamically built by Alfresco Workdesk.
user mappings (map the users/groups of the crossed ECM system to the users/groups of the leading ECM system) If usermap is missing completely, the same user credentials for the user of the leading ECM system are also used as credentials for the crossed ECM system. If usermap exists, but no user name or group is defined, all users of the leading ECM system are mapped to the user defined in this usermap. If several usermap configurations exist with several group configurations and a user of the leading ECM system is member of more than one group, it depends on the first role delivered by LDAP, which user is used for the crossed ECM system. This case is avoided by using only one group for a user and by correctly configuring this option. Property mappings (map the properties of the crossed ECM system to the properties of the leading ECM system). Parameters that are required for the communication with the respective ECM system (For example, IP address / server name / object store depending on the crossed ECM system).
Contact Alfresco Support if you are interested in this configuration option, since it is not supported in the standard product.
24
Example for a cross Adapter configuration (IBM FileNet P8 5.x crossed with an Alfresco ECM repository using a crossed CMIS adapter):
<ExternalCrossAdapter> <Xmapping> <usermappings> <usermap name=admin group=> <user>P8Admin</user> <password>Pasword</password> </usermap> </usermappings> <propertymappings> <!- DocumentName is the corresponding CMOD field for the P8 property DocumentTitle --> <propertymap name=D:owd:hrdocument.owd:documentPersonnelNumber > HrDocument.DocumentPersonnelNumber </propertymap> </propertymappings> <classmappings> <classmap name="D:owd:hrdocument">HrDocument</classmap> </classmappings> </Xmapping> <XecmAdapter> <ClassName>com.wewebu.ow.server.ecmimpl.cmis.OwCMISNetwork </ClassName> <Version>4.1.0</Version> <IDDMSIDConverterClass> com.wewebu.ow.server.ecmimpl.cmis.p8.OwP8CMISIDDMSIDConverter </IDDMSIDConverterClass> <!-- CMIS FNCM5 --> <WSDLRepository>http://192.168.1.254:9080/fncmis/wsdl </WSDLRepository> <WSDLNavigation>http://192.168.1.254:9080/fncmis/wsdl </WSDLNavigation> <WSDLObject>http://192.168.1.254:9080/fncmis/wsdl </WSDLObject> <WSDLMultifiling>http://192.168.1.254:9080/fncmis/wsdl</WSDLMultifiling> <WSDLDiscovery>http://192.168.1.254:9080/fncmis/wsdl</WSDLDiscovery> <WSDLVersioning>http://192.168.1.254:9080/fncmis/wsdl </WSDLVersioning> <WSDLRelationship>http://192.168.1.254:9080/fncmis/wsdl </WSDLRelationship> <WSDLPolicy>http://192.168.1.254:9080/fncmis/wsdl </WSDLPolicy> <WSDLACL>http://192.168.1.254:9080/fncmis/wsdl </WSDLACL> <Authentication mode="NONE"/> </XecmAdapter> </ExternalCrossAdapter>
25
26
Database connection
Alfresco Workdesk uses database connections to store persistent data for: DB Role Manager DB History Manager Other Alfresco Workdesk related data (attribute bag, user settings, bookmarks/favorites, search queries) This section explains how to create the required database tables, how to create the corresponding datasources in your application server and how to make the created datasources available to the Alfresco Workdesk web application.
Configure database
By default, Alfresco Workdesk writes persistent data into the database tables OW_ATTRIBUTE_BAG, OW_HISTORY and OW_ROLE. If you want to use custom database tables with custom table names, you can configure these table names in the owbootstrap.xml file (see Configure ECM adapter and Role Manager for configuration examples). We recommend creating a new database for Alfresco Workdesk with the scripts (adapt the scripts if you want to change database table names) delivered with Alfresco Workdesk and configure the database with read/write privileges.
IBM DB2
Note: This feature is not available in Alfresco Workdesk Community. Create a new database for Alfresco Workdesk using the delivered script (Delivery)\db\scripts\create_db2_databases\win\workdesk\create_OWDDB.b at from the DB2 Command Window: Use the following delivered scripts to create the default database tables: (Delivery)\db\scripts\OwDB2_CreateAttributeBagTable.sql
Note: The Attribute Bag table script provided with an Alfresco Workdesk delivery contains a default column length of 1024 bytes for the attribute value. We recommend to set this column length to an upper limit as per own needs.
(Delivery)\db\scripts\OwDB2_CreateDBHistoryManagerTable.sql (Delivery)\db\scripts\OwDB2_CreateDBRoleManagerTable_Scheme2.sql You can run the scripts by using the DB2 Control Center. Note that the schema user of the tables will be the same user that established a database connection while creating the tables. This user has to be configured in the datasource at the application server later on. The following screenshot gives an example of this connection in case of IBM WebSphere 6.1 and IBM DB2 9.1:
Note: In case of Windows 2003 Server, the currently logged in user will be the owner of the new database. The user you specify in the fourth argument will be granted the rights Connect to and Create Table and is called the Schema user.
27
Note: When creating the database manually, make sure to use a page size of at least 8 KB. The provided script create_OWDDB.bat automatically takes care of this issue.
Changing the Java Connector user: It is not enough only to change the database owner to the Java Connector user, because the schema user would not be changed. To achieve this, connect as the appropriate user to the database. See A5: Example for changing Java user in DB2 for examples.
Create a new database and then use the scripts provided with the Alfresco Workdesk delivery to create the database tables. (Delivery)\db\scripts\OwMSSQL_CreateAttributeBagTable.sql (Delivery)\db\scripts\OwMSSQL_CreateDBHistoryManagerTable.sql (Delivery)\db\scripts\OwMSSQL_CreateDBRoleManagerTable_Scheme2.sql Create a new user account for the Alfresco Workdesk web application with read and write privileges to the created tables.
Oracle 9i
Note: This feature is not available in Alfresco Workdesk Community. Create a new database and then use the scripts provided with the Alfresco Workdesk delivery (Delivery)\db\scripts\OwOracle_CreateAttributeBagTable.sql (Delivery)\db\scripts\OwOracle_CreateDBHistoryManagerTable.sql (Delivery)\db\scripts\OwOracle_CreateDBRoleManagerTable_Scheme2.sql Create a new user account for Alfresco Workdesk with read/write privileges to these tables.
Note: When using a command line tool like Sql-Plus to import the SQL statements, every file has to end with a / , otherwise the last SQL statement will not be executed.
Example:
CREATE TABLE OW_ATTRIBUTE_BAG ( UserName BagName AttributeName varchar2(128) varchar2(128) varchar2(128) NOT NULL, NOT NULL, NOT NULL,
AttributeValue varchar2(1024) NOT NULL, CONSTRAINT OW_ATTRIBUTE_BAG_PK PRIMARY KEY (UserName, BagName, AttributeName) );/
MySQL
Use the supplied batch file to create the Alfresco Workdesk database and all database tables: (Delivery)\db\scripts\create_mysql_databases\create_OWDDB.bat Alternatively, use the following script to create the Alfresco Workdesk database: (Delivery)\db\scripts\create_mysql_databases\Create_MySQL_Database.sql Use the following scripts to create every Alfresco Workdesk table manually: (Delivery)\db\scripts\OwMySQL_CreateAttributeBagTable.sql (Delivery)\db\scripts\OwMySQL_CreateDBHistoryManagerTable.sql * (Delivery)\db\scripts\OwMySQL_CreateDBRoleManagerTable.sql * * Not needed/used by Alfresco Workdesk Community
29
PostgreSQL
Use the supplied batch file to create the Alfresco Workdesk database and all database tables: (Delivery)\db\scripts\create_postgres_databases\create_OWDDB.bat Alternatively, use the following script to create the Alfresco Workdesk database: (Delivery)\db\scripts\create_postgres_databases\Create_PostgreSQL_Data base.sql Use the following scripts to create every Alfresco Workdesk table manually: (Delivery)\db\scripts\OwPostgreSQL_CreateAttributeBagTable.sql (Delivery)\db\scripts\OwPostgreSQL_CreateDBHistoryManagerTable.sql * (Delivery)\db\scripts\OwPostgreSQL_CreateDBRoleManagerTable.sql * * Not needed/used by Alfresco Workdesk Community
Here are some JDBC libraries that you might need; their names may be different from database version to database version. MSSQL: sqljdbc-3.0.1301.101.jar Oracle: ojdbc14-10.2.0.5.jar
30
IBM DB2: db2jcc.jar (JDBC driver type 4) db2jcc_license_cu.jar (JDBC driver type 4) db2jcc_license_cisuz.jar (JDBC driver type 4 for z/OS) db2java.zip (db2java.jar) (JDBC driver type 2) MySQL: mysql-connector-java-5.1.14-bin.jar PostgreSQL: postgresql-9.1-902.jdbc4.jar (JDBC driver type 4) The following list provides the JDBC driver library destination folder for the corresponding application server, to make the JDBC driver available to a web application running on that application server: Apache Tomcat 5.x: (Tomcat)\common\lib Apache Tomcat 6.x onwards: (Tomcat)\lib JBoss: (JBoss)\server\default\lib Oracle WebLogic: Contact your Oracle WebLogic and/or database administrator for further Information IBM WebSphere: Contact your WebSphere and/or database administrator for further information
IBM WebSphere
Note: This feature is not available in Alfresco Workdesk Community. In IBM WebSphere you must configure a new datasource. For IBM WebSphere 6.1 the steps are: Configure a JDBC Provider: o For Alfresco Workdesk, a non-XA JDBC Provider is sufficient. If appropriate, you may use an already existing provider. Otherwise, create a new one at Resources -> JDBC -> JDBC Providers -> New Configure a J2C Authentication Alias: o Make sure that there is an authentication alias configured defining appropriate database access credentials. To create a new one, go to Secure administration, applications, and infrastructure -> Authentication -> Java Authentication and Authorization Service -> J2C authentication data -> New. Create a new datasource o This is done at Resources -> JDBC -> Data sources -> New o Choose an appropriate Datasource name and JNDI name.
31
Important: make sure you enter the same value for <JNDIName> of
<DefaultDataSource> section in the
WebSphere datasource. It may not start with a java:/ prefix. Here is an example of how it is supposed to look, both in WAS as well as in owbootstrap.xml:
For other IBM WebSphere versions, the setup should be similar, but some menu entry names might have changed. Contact your IBM WebSphere administrator for details.
Apache Tomcat
Copy the JDBC driver files from \db\lib to (Tomcat)\common\lib. Configure the Resource Adapter for Tomcat: 1. Edit the configuration template \db\tomcat\META-INF\context.xml according to your database installation by uncommenting the correct XML example block for your database (DB2, Oracle, MSSQL, Access, MySQL, PostgreSQL) . 2. Adopt the path value in the <Context> element to the value of the web application context root of your Alfresco Workdesk deployment, that is, (workdesk). 3. Adopt the values for the parameters username, password and url in the configuration file to the values of your database server. 4. Create a new folder META-INF in your Alfresco Workdesk deployment, that is, (workdesk)\META-INF. 5. Copy the edited configuration template (Delivery)\db\tomcat\METAINF\context.xml to (workdesk)\META-INF. Create the required database tables if they dont exist already. The corresponding SQL scripts can be found in db/scripts (see Configure database). Depending on your type of Alfresco Workdesk configuration, all three tables may be required ( ow_attribute_bag, ow_history, ow_role). Alfresco Workdesk needs the OW_ATTRIBUTE_BAG table. Make sure you entered the correct value for <JNDIName> in owbootstrap.xml, section <DefaultDataSource>. It has to be exactly the value of the name parameter from the <Resource name=java:/JNDIName> tag of the copied context.xml configuration file.
32
JBoss
Note: This feature is not available in Alfresco Workdesk Community. Copy the file from the Alfresco Workdesk delivery: (Delivery)\db\jboss\mssql-ds.xml for MS-SQL (Delivery)\db\jboss\db2-ds.xml for DB2 (Delivery)\db\jboss\oracle-ds.xml for Oracle (Delivery)\db\jboss\mysql-ds.xml for MySQL or (Delivery)\db\jboss\postgresql-ds.xml for PostgreSQL Copy the file to the directory (JBoss)\server\default\deploy and adapt all settings (server-name, database-name, user-name and password) to your environment. You could change the JNDI name MSSQLDS, OracleDS, DB2DS, MySQLDS or PostgreSQL to a name of your choice, but you must remember that the name must correspond to the default name (<JNDIName> of <DefaultDataSource> section) specified in owbootstrap.xml.
When the datasource has been created correctly, it should be visible in the JNDI tree view at Server Console -> Server -> Logging -> JDBC -> View JNDI tree.
33
Authentication
To understand authentication with Alfresco Workdesk, note the following: Alfresco Workdesk never authenticates a user or verifies user credentials. Authentication is usually performed by the ECM repository (as it contains the objects for which access control is required). For CMIS-compliant repositories connected with the Alfresco Workdesk CMIS adapter, you must authenticate users against an ECM system connected to a LDAP system (see LDAP authentication). Alfresco Workdesk can only support what the back end provides, so you must set up the back end and authentication infrastructure as a prerequisite. Only a user who is authenticated by the ECM repository can access content using Alfresco Workdesk. Alfresco Workdesk passes user credentials to the ECM back end system in one of two possible ways: o Username and password from a user login form are passed to the ECM back end. o Alfresco Workdesk delegates authentication to the JEE (formerly J2EE) application server container. This is commonly called Single Sign-On (SSO), since it does not require username and password to be provided to Alfresco Workdesk. This is always
34 Alfresco Workdesk 4.1
specific to the content repository and the provided API for authenticating users. The JEE container uses the Java Authentication and Authorization Service (JAAS) to verify the user's credentials by making the necessary LDAP calls to whatever directory service is configured on the application server level. Once a user is successfully authenticated against the back end, Alfresco Workdesk uses this identity for authorization. Authentication is always specific to the content repository. SSO has to be configured for the ECM repository and on the application server. This is a task of the system administrator and/or service provider, which is out of the Alfresco Workdesk scope. Alfresco Workdesk can be configured to support SSO for IBM FileNet P8. Technically, Alfresco Workdesk is calling a logon() or connect() method with or without username and password. Setting up the prerequisites and performing integration tests typically requires far more effort and planning.
LDAP authentication
As it is not possible to request user or group information with CMIS, it is necessary to have a LDAP connection configured for Alfresco Workdesk to be able to use the DB Role Manager (see DB Role Manager) in combination with CMIS compliant repositories. In those cases, the CMIS compliant repository itself also needs to be connected to the same LDAP system and needs to share the same users and groups. LDAP authentication for Alfresco Workdesk is configured in the configuration node <authentication> in owbootstrap.xml. By configuring mode="LDAP" Alfresco Workdesk authentication is no longer performed against the pure ECM system, but against an ECM system connected to the same LDAP system as configured in this node. Example LDAP authentication configurations can be found as commented parts of every default owbootstrap.xml file. The available LDAP configuration nodes are standard LDAP configuration nodes.
35
Deploying Alfresco Workdesk </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Workdesk</realm-name> </login-config> <security-role> <description>All Authenticated</description> <role-name>All Authenticated</role-name> </security-role>
Users or groups must be assigned in the application server role configuration (for example, when using IBM WebSphere, go to the Integrated Solutions Console > Enterprise Applications > Alfresco workdesk > Security role to user/group mapping ).
36
To get more information about SSO for IBM FileNet P8 5.x, visit the IBM Information Center: IBM FileNet P8 Version 5.0 Information Center: http://publib.boulder.ibm.com/infocenter/p8docs/v5r0m0/index.jsp?topic=%2Fcom.ibm.p8.ce.de v.ce.doc%2Fgs_concepts.htm
Authorization
Authorization is handled at two different levels, at object and document level (see Object and document-level security) as well as at business roles and UI level (see Business roles and UI level security).
37
Auditing
There are three levels of auditing and logging: Back end history maintained by the ECM repository: Logging is completely transparent to Alfresco Workdesk. It has to be decided if back end logging or front-end logging (by Alfresco Workdesk) is used (or both). Alfresco Workdesk uses a History Manager (see History Manager) to display whatever history is used in a table, back end history can only be displayed. Application history by incorporating the Alfresco Workdesk DB History Manager: If front-end logging has to be used, any major DB (Oracle, DB2, MS SQL, MySQL, PostgreSQL) can be used to log whichever action was executed in the front end. Therefore the DB History Manager (see DB History Manager) is required. Any event can be logged which is triggered in the fronted, so typically a click on a component, plugin, button. For example a click on the checkout menu item, which is an Alfresco Workdesk plugin. Often front-end history is used if back end events are not meaningful and/or must be combined to be meaningful from a business perspective. So front-end history is used as a kind of storytelling from the business perspective. Technical logging for Alfresco Workdesk is done using log4j (see Log files)
38
Basic configuration
Basic configuration
After Alfresco Workdesk is configured to run with a supported ECM system, you can start modifying some basic configurations.
Design
The design definition, which should be invoked by Alfresco Workdesk, can be specified with the element <DesignName> (within the <RoleManager> element in owbootstrap.xml). In a standard Alfresco Workdesk delivery the design default41 is available. When left empty, the default design default41 will be chosen. Additional designs can be created by customization. For additional information refer to Developer Guide: Customizing Layout and Designs section.
Role Manager
Alfresco Workdesk offers two variants of its Role Manager: the Simple Role Manager (<ClassName> element ends with OwSimpleRoleManager) and the DB Role Manager (ends with OwDBRoleManager). The Role Manager is configured in the file owbootstrap.xml and the corresponding configuration element is called <RoleManager>. Since only one instance of the <RoleManager> is allowed to be present, use XML comments (<!and -->) to hide the instance which should not be taken into account:
<!-- RoleManager> <ClassName>com.wewebu.ow.server.roleimpl.simplerole.OwSimpleRoleManager </ClassName> </RoleManager --> <RoleManager> <ClassName>com.wewebu.ow.server.roleimpl.dbrole.OwDBRoleManager </ClassName> </RoleManager>
39
Basic configuration
DB Role Manager
Note: This feature is not available in Alfresco Workdesk Community. By using the DB Role Manager, persistent user/role data is saved to a database table (see Configure database). The table name (default: OW_ROLE) can be configured in the <DbTableName/> element:
When using the DB Role Manager, you can define role profiles with the Administration master plugin. The element <SecurityAdmin> allows specifying the name(s) of the user(s) and group(s) who may act as role administrator(s):
<SecurityAdmin pluginid="[id of plugin to enable for Security Admin]"> <User>[user1]</User> <User>[user2]</User> ... <Group>[group1]</Group> <Group>[group2]</Group> ... </SecurityAdmin>
40
Basic configuration
Beware of case sensitivity: The user names must be spelled exactly as defined in the user and group directory (for example, in LDAP). As it is not possible to request user or group information with CMIS directly, it is required to have LDAP authentication (see LDAP authentication) configured to be able to use the DB Role Manager in combination with CMIS compliant repositories.
In addition to the default design, you can set up a list of additional designs available for the role configuration with the element <AvailableDesigns>. Remember that the default design defined in element <DesignName> is only used as long as you are not logged in. Once logged in, the design corresponding to an assigned role is applied. The element <SchemeVersion> defines the version of the database scheme, which must be set to 3. This option is used for backwards compatibility. The element <MasterRoles> is explained in the Configuration and Planning Guide: Master Roles section. With the <ConfigCategories/> element, a list of categories is specified that appear in the Administration master plugin, separated by comma. For categories that are not specified in the list, the access is allowed to all resources. The following XML code fragment from owbootstrap.xml shows a sample configuration for the DB Role Manager:
<RoleManager> <ClassName>com.wewebu.ow.server.roleimpl.dbrole.OwDBRoleManager </ClassName> ... <SecurityAdmin pluginid="com.wewebu.ow.Admin"> <User>Administrator</User> </SecurityAdmin> <DesignName></DesignName> <AvailableDesigns> <Design displayName="Alfresco Workdesk 4.1 Design">default41</Design> </AvailableDesigns> <SchemeVersion>3</SchemeVersion> <MasterRoles enable="true"> <MasterRoleGroup name="Manager" memberOfAll="true"> <Role>HR Manager</Role> <Role>Office Manager</Role> </MasterRoleGroup> </MasterRoles> <ConfigCategories>ROLE_CATEGORY_PLUGIN,ROLE_CATEGORY_SEARCH_TEMPLATE</ConfigCategories> </RoleManager>
Indexfields are different to other categories. An implicit Allow is set for all groups. For indexfields, there are three types of contexts:
CREATE.Document/FolderClass.PropertyName for example, AddDocument Plugin
41
Basic configuration
The following values can be set: Allow/Deny: Implicitly all values for all roles are set to Allow. Whenever a user is member of more than one group and the access rights for one of these groups is denied then the user wont see the properties in this certain context. Modify/View: You can define whether the property is displayed as readonly or editable for a user. The values of all groups where the user is a member are interpreted with an OR operator. This means that if one property for a certain user (group) is displayed as readonly, each of the groups must have the access right set to readonly. If only one group has the value modify, then it is displayed as editable in the application.
It is not recommended in Alfresco Workdesk to set properties as readonly with the DB Role Manager indexfields category. Configure a second instance of an EditPropertiesSimple-Plugin to display certain properties readonly.
History Manager
In owbootstrap.xml, you can configure which History Manager is invoked. Use XML comments to enable or disable the corresponding <HistoryManager> elements.
DB History Manager
Note: This feature is not available in Alfresco Workdesk Community. By using the DB History Manager, configurable audit data is saved to a database table (see Configure database). The table name (default: OW_HISTORY) can be configured in the <DbTableName/> element:
<HistoryManager> <ClassName>com.wewebu.ow.server.historyimpl.dbhistory.OwDBHistoryManager</ClassName> <DbTableName>OW_HISTORY</DbTableName> </HistoryManager>
42
Basic configuration
o Create a property of type String, add it to the document classes for which this functionality should be available; this property can be either single or multivalue, depending on whether you plan to establish relationships to just one or multiple workflow instances. o Set its symbolic name as value for element <CaseObjectRefPropertyName> (within <EcmAdapter>) in owbootstrap.xml. Set the value for referencing in the workflow. In the workflow, the property defined above is set for the attached document. o Add a component step to your workflow design(s) with a call of setStringProperty. o Parameters are: destDocument: name of attachment field symbolicPropName: name of property in Content Engine value: F_WobNum+","+F_Subject
MIME Types
Most ECM systems determine the file type due to MIME type definitions, whereas Microsoft Office or Microsoft Windows ignore MIME types and use a filename extension like .doc or .xls instead. Alfresco Workdesk performs the MIME type and filename extensi on mapping in both directions. Existing documents in the repository always keep their filename and MIME type while being edited with Alfresco Workdesk. For detailed information about configuring MIME types for usage in Alfresco Workdesk, follow the instructions given in owmimetables.xml.
<DragDropTarget multifile="truefalse">truefalse</DragDropTarget>
Setting multifile=true will enable multifile upload and setting false inside the <DragDropTarget> tag will disable the drag and drop applet for the Add documents eFile plugin. If you are using the AWD Configurator helper tool, then you can enable/disable the function DragDropTarget in all plugins from the plugin class
43
Basic configuration
com.wewebu.ow.server.plug.owaddmultidocuments.OwAddMultipleDocumentsRecordFuncti on.
The servlet that is actually responsible for drag and drop functionality can be activated/deactivated in the following sections in the web.xml file:
<servlet id="Servlet_5"> <servlet-name>dragdropcontent</servlet-name> <servlet-class>com.wewebu.ow.server.servlets.OwDragDropContent</servlet-class> </servlet> <servlet-mapping id="ServletMapping_5"> <servlet-name>dragdropcontent</servlet-name> <url-pattern>/dragdropcontent/*</url-pattern> </servlet-mapping>
If you have set the value to "true" inside the <DragDropTarget> tag and the corresponding drag and drop servlet in the web.xml is commented out, then upon drag and drop you will see the Add New Document dialog without any file content.
Temporary files
When using document upload, you must define a folder for temporary files in the <TempDir> configuration node of owbootstrap.xml. You can define the path of this temporary folder as absolute path or as a path relative to the Alfresco Workdesk deployment. Make sure that the value is set to a directory/path, on which the Alfresco Workdesk application has reading and
44 Alfresco Workdesk 4.1
Basic configuration
writing access. If the temporary folder does not exist in the defined location, the Alfresco Workdesk application will try to create and use it. Example for an absolute path definition: Windows server operating system: Unix server operating system: Windows/Unix server operating system:
<TempDir>C:/Temp/</TempDir> <TempDir>/usr/tmp</TempDir>
If no value is set, the Alfresco Workdesk application uses the environment information/properties (java.io.tmpdir) to get the location of the application server or the temporary folder of the server operating system. If this variable is not available to the process, the deployment location will be used as temporary folder.
Language support
The Alfresco Workdesk user interface is available in different languages. In a default Alfresco Workdesk delivery, English (en), French (fr) and German (de) are supported. You can setup your preferred language support in owbootstrap.xml. Set a specific language as default:
<defaultlocal>en</defaultlocal>
45
Log files
Alfresco Workdesk uses log4j for error reporting. By default, only errors are logged to the console. You can modify the reporting/logging level from error to debug and/or send the log to a file by changing the log4j.properties file. If you want to log during the startup/initialization phase of Alfresco Workdesk, you must copy the log4j.properties file, for example, from (workdesk)/WEB-INF/conf/fncm5 to the (workdesk)/WEB-INF/classes/ directory. This is very important, because of errors caused by incorrect configuration of Alfresco Workdesk (for example, syntax errors in owplugins.xml), misconfigured datasource, missing libraries and so on.
Multiple log4j.jar libraries: Make sure that you do not have multiple log4j-
x.y.z.jar files installed on your application server and in the Alfresco Workdesk
deployment. Sometimes the ECM back end API libraries also provide some log4j libraries that can be in conflict with the log4j libraries provided by Alfresco Workdesk.
# Set root logger level to DEBUG and its only appender to A1. log4j.rootLogger=DEBUG,A1 # A1 is set to be a ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 uses PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout # %x inserts the user id to the log file log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c [%x] - %m%n # log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c - %m%n # FileNet P8 log4j.category.com.filenet=WARN log4j.category.com.filenet.wcm.api.impl.RemoteCommand=ERROR # FileNet P8 5.0 log4j.category.filenet_tracing=WARN # Apache log4j.category.org.apache=WARN
46
# Spring log4j.category.org.springframework=WARN
You can log into a separate log file with the following example of a log4j configuration. In this case, an appender called workdesk_file was defined, which logs into a file workdesk.log in the root directory of drive c:
# file appender for workdesk #log4j.appender.workdesk_file=org.apache.log4j.DailyRollingFileAppender #log4j.appender.workdesk_file.DatePattern='.'yyyy-MM-dd log4j.appender.workdesk_file=org.apache.log4j.FileAppender log4j.appender.workdesk_file.file=${catalina.home}/logs/workdesk.log log4j.appender.workdesk_file.layout=org.apache.log4j.PatternLayout #log4j.appender.workdesk_file.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n log4j.appender.workdesk_file.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c [%x] - %m%n log4j.appender.workdesk_file.append=true
You can use this appender with the following command line:
log4j.rootLogger=DEBUG, workdesk_file
Suppress ECM system logs: If you want to suppress logs that have not been written by Alfresco Workdesk (for example, from IBM FileNet P8 or Apache Tomcat), your log4j.properties must be similar to the following example:
# FileNet P8 log4j.category.com.filenet=WARN log4j.category.com.filenet.wcm.api.impl.RemoteCommand=ERROR
For further technical background information about log4j see A4: Background about Log4J.
47
Servlets
The Alfresco Workdesk application is using several servlets, such as the standard application servlets and specific servlets for different ECM back end systems. Ensure that, at minimum, you enable the standard application servlets by activating (uncommenting) them in the web.xml file. Standard application servlets are the following: getContent (/getContent/*) Gets the application content stream dragdropcontent (/dragdropcontent/*) Receives the content from the client multifileDownload (/multifileDownload/*) Enables downloading multiple files as one single zip file.
The encoding of the file names in the zip file (default set to UTF-8) can be set with the <init-param> parameter file_name_encoding.
getPropertyContent (/getPropertyContent/*) Get a stream request from a property ECM back end specific servlets are the following: setFNCMDaejaViewerAnnotation (/setFNCMDaejaViewerAnnotation/*) Saves an annotation in the IBM FileNet P8 using Daeja Viewer or ADV getFNCMDaejaAnnotationSecurity (/getFNCMDaejaAnnotationSecurity /*) Opens an annotation in the IBM FileNet P8 using Daeja Viewer
48
Daeja Viewer configuration in web.xml describes how to integrate the DaejaViewer for IBM FileNet P8 by enabling the corresponding servlets in the web.xml file.
49
50
Note: do not use the _xsd project for referencing to the configuration files. This project is for XML schema files, which are used to validate the created *.xml configuration files.
51
52
After selecting the sub item Other, select File System and then activate the <<Advanced option. You must select the option Link to alternate location (Linked Folder) and browse to the root directory of your Alfresco Workdesk deployment containing all its configuration files.
You can either use a temporary directory for configuration or link directly to the directory of the Alfresco Workdesk deployment if your application server supports this behavior.
After linking configuration files, the AWD Configurator will be similar to the following example:
53
54
owplugins.xml
Navigate to a ECM adapter configuration folder (for example, (workdesk)\WEBINF\conf\fncm5\) and double-click on one of the configuration files (owplugins.xml or owmimetable.xml) to open the plugins editor.
You can now edit the various plugin instances, add new ones (
they are listed (sort plugins ; change grouping of plugins ). By using the arrows ( you can define in which order they appear in the deployed application.
Note: The move plugin up and move plugin down buttons ( grouping is disabled. ) only work if
55
When selecting a plugin instance (only the plugin, not a class or any grouping criteria), you can open the context help with detailed parameter description by pressing F1. To delete, copy, and modify plugin instances, the editor has a tree for selection. The selected plugin is displayed on the Details editor where the configuration parameter can be changed. The Details editor always displays only configuration elements, which have simple content. This means that if an element or a subnode of a plugin has a complex structure, then it is displayed in the tree view as a selectable tree node. You can add elements to a plugin instance that are not present in owplugins.xml yet (this includes the situation when an element became available only with an upgrade to a newer Alfresco Workdesk version), you can add these new elements to the plugin by right-clicking at the appropriate position within the tree, selecting Add subnode and selecting the element.
56
owmimetables.xml
Besides editing the owplugins.xml configuration file, you can also use the AWD Configurator to configure the behavior of Alfresco Workdesk-handled MIME types (owmimetable.xml configuration file) and add new ones. See the online help for detailed information by pressing F1 when selecting a MIME type.
57
58
Backup: When making a backup, we recommend not only backing up the configuration files, but the entire deployment. Keep in mind that there might be various changes to different files (for example, JSP files) in the deployment that need to be backed up.
You can also use the AWD Configurator functions Copy and Paste to make backups of your existing configuration files.
59
Copy/Upgrade customer-specific Java classes. Copy your web resource (everything except the folder WEB-INF) into your deployment. Upgrade every saved JSP file separately. Upgrade every saved CSS file separately. Update your configuration: o Take the old owbootstrap.xml and transfer the configuration to the new one. You can do this quite easy by comparing the old file with the new file and by checking for new parameters or nodes. o Take the old owplugins.xml and transfer the configuration to the new one. You can do this quite easy by comparing the old file with the new file and by checking for new parameters or nodes. o Take the old owmimetable.xml and transfer the configuration to the new one. You can do this quite easy by comparing the old file with the new file and by checking for new parameters or nodes.
Alfresco Workdesk is downwards compatible. You can use your old configuration to run a newer version of Alfresco Workdesk. If you are using your old configuration files, you may miss new features introduced with a new Alfresco Workdesk release (see Release Notes for more information).
60
If the database schema has changed: o Upgrade the database Alfresco Workdesk tables (for example, ow_attribute_bag, ow_history, ow_role) with provided upgrade scripts. o Pay attention when using an Oracle database: If you use Oracle as database and you want to use the old TB_ROLE DB-scheme of Alfresco Workdesk 2.0, upgrade your databases with a new trigger (OwOracle_CreateDBRoleManagerTable_Scheme1Trigger.sql ). The Alfresco Workdesk DB Role Manager doesnt create the TB_ROLE.ID value automatically; it uses the trigger for inserting the new created ROLE.
61
62
Appendix
Appendix
Daeja Viewer configuration in web.xml
Note: This feature is not available in Alfresco Workdesk Community. The following extract shows the corresponding entries in web.xml for the servlets used in combination with Daeja Viewer and IBM FileNet P8 5.x:
<!-.............................................................................. Servlets ............................................................................... --> <!-- IBM FileNet P8 5.x only, uncomment otherwise --> <servlet id="Servlet_2"> <servlet-name>setFNCMDaejaViewerAnnotation</servlet-name> <servlet-class> com.wewebu.ow.server.ecmimpl.fncm5.viewer.OwFNCM5DaejaAnnotServlet </servlet-class> </servlet> <!-- IBM FileNet P8 5.x only, uncomment otherwise --> <servlet id="Servlet_3"> <servlet-name>getFNCMDaejaAnnotationSecurity</servlet-name> <servlet-class> com.wewebu.ow.server.ecmimpl.fncm5.viewer.OwFNCM5AnnotSecurityServlet </servlet-class> </servlet> <!-- IBM FileNet P8 5.x only, uncomment otherwise --> <servlet-mapping id="ServletMapping_2"> <servlet-name>setFNCMDaejaViewerAnnotation</servlet-name> <url-pattern>/setFNCMDaejaViewerAnnotation/*</url-pattern> </servlet-mapping> <!-- IBM FileNet P8 5.x only, uncomment otherwise --> <servlet-mapping id="ServletMapping_3"> <servlet-name>getFNCMDaejaAnnotationSecurity</servlet-name> <url-pattern>/getFNCMDaejaAnnotationSecurity/*</url-pattern> </servlet-mapping>
63
Appendix
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ===================================================================== --> <!-<!-<!-<!-deployed application --> Log4j Configuration --> --> On WebSphere this file must be placed in the "web-inf/classes" folder of the On JBOSS, the .xml-file should be in the following folder: "jboss-
3.2.7\server\default\conf" --> <!-- ===================================================================== --> <!-- $Id: log4j.xml,v 1.13.2.13 2004/05/11 16:33:46 belaban Exp $ --> <!-| For more configuration information and examples see the Jakarta Log4j | website: http://jakarta.apache.org/log4j --> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="../YourLogFileFolder/YourLogFile.log"/> <!- True adds entries to an existing log file when starting <!- False deletes the existing log file when starting <param name="Append" value="false"/> <!-- Rollover at midnight each week --> <param name="DatePattern" value="'.'yyyy-ww"/> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> --> </layout> </appender> <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> <category name="org.apache"> <priority value="error"/> </category> --> -->
64
Appendix
<!-- Limit FileNet categories to WARN <category name="com.filenet"> <priority value="WARN"/> </category>
-->
<category name="com.filenet.wcm.api.impl.RemoteCommand"> <priority value="ERROR"/> </category> <category name="com.wewebu.ow"> <priority value="WARN"/> </category> <root> <appender-ref ref="FILE"/> </root> </log4j:configuration>
Imagine some code loaded by ClassLoader1 creates an object of class Foo. So, this class Foo is loaded by ClassLoader1. This ClassLoader will also load the class Bar since it is used by Foo. Then some other code loaded by ClassLoader2 creates an object of class BarChild. So, BarChild and Bar will be loaded by ClassLoader2. When this other code tries to call setX(), a ClassMismatchException is thrown. Why? BarChild extends Bar and so you can call setX() with an object of class BarChild, but Bar@ClassLoader1 is different from Bar@ClassLoader2.
Alfresco Workdesk 4.1 65
Appendix
An application server uses a couple of different ClassLoaders. There is the default Java System Loader, responsible for loading all Classes of the JRE. Next, an application server has some root ClassLoader responsible for loading all classes in the shared libraries folders of the application server (tomcat: common/lib). And there is an extra ClassLoader for each application. This is also done for security reasons. With this design, no class of ApplicationA can be loaded or used by code from ApplicationB. Log4j creates a static logging object used by all applications. Due to 1 and 2, you can get lots of problems depending on where your log4j archives are located. Due to the third point, problems are depending on your application server. If you are only using one log4j instance, you can get into conflict with log4j of your application server. If you have problems with log4j, contact Alfresco Support for assistance.
66
Appendix
67
Appendix
68