<?xml version="1.0"?>
+<!-- Apparently no longer needed in Nuxeo pre-5.5 RC1 release -->
<component name="config:datasources">
+<!--
<extension target="org.nuxeo.runtime.datasource" point="datasources">
- <!-- <datasource name="jdbc/nxaudit" xaDataSource="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" -->
<datasource name="jdbc/nxaudit" xaDataSource="@XA_DATASOURCE@"
maxActive="20" maxIdle="5">
<property name="databaseName">nuxeo</property>
<property name="password">@NUXEO_PW@</property>
</datasource>
</extension>
+-->
</component>
<repository name="default"
factory="org.nuxeo.ecm.core.storage.sql.ra.PoolingRepositoryFactory">
<repository name="default">
- <!-- <xa-datasource>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource>
- <property name="URL">jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true</property> -->
- <xa-datasource>@XA_DATASOURCE@</xa-datasource>
+ <clustering enabled="false" delay="1000" />
+ <binaryStore path="" />
+ <!-- The transactional datasource for Nuxeo -->
+ <xa-datasource>@XA_DATASOURCE@</xa-datasource>
<property name="URL">@DB_URL@</property>
<property name="DatabaseName">nuxeo</property>
<property name="User">@NUXEO_USER@</property>
<property name="Password">@NUXEO_PW@</property>
+
<schema>
<field type="largetext">imd:user_comment</field> <!-- Needed for large image metadata (image_metadata) that gets inserted
here. -->
<?xml version="1.0"?>
-<component name="org.nuxeo.ecm.platform.login.LoginConfig" version="1.0">
- <documentation>
- Login modules used on JBoss
- @author Bogdan Stefanescu (bs@nuxeo.com)
- </documentation>
-
-
- <extension target="org.nuxeo.runtime.LoginComponent" point="domains">
-
- <domain name="nuxeo-system-login">
- <login-module code="org.nuxeo.runtime.api.login.SystemLoginModule" flag="required"/>
- <login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule" flag="required">
- <option name="password-stacking">true</option>
- <option name="multi-threaded">true</option>
- </login-module>
- </domain>
-
-
- <domain name="nuxeo-webengine">
- <login-module code = "org.nuxeo.ecm.platform.login.NuxeoLoginModule"
- flag = "required">
- <option name="principalClassName">org.nuxeo.ecm.platform.login.NuxeoPrincipal</option>
- <option name="useUserIdentificationInfoCB">true</option>
- </login-module>
- <!--login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule" flag="required">
- <option name="password-stacking">true</option>
- <option name="multi-threaded">true</option>
- </login-module-->
- </domain>
-
- </extension>
+<!--
+ This is the configuration the CollectionSpace services used when it was deployed on the JBoss AS. However,
+ it still works (and is required) in our Apache Tomcat deployment.
+
+ 12/8/2011 - We need to confirm with Nuxeo that this is correct configuration for their LoginComponent.
+ -->
+<component name="org.nuxeo.ecm.platform.login.LoginConfig"
+ version="1.0">
+ <documentation>
+ Login modules used on JBoss
+ @author Bogdan Stefanescu (bs@nuxeo.com)
+ </documentation>
+
+
+ <extension target="org.nuxeo.runtime.LoginComponent" point="domains">
+
+ <domain name="nuxeo-system-login">
+ <login-module code="org.nuxeo.runtime.api.login.SystemLoginModule"
+ flag="required" />
+ <login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule"
+ flag="required">
+ <option name="password-stacking">true</option>
+ <option name="multi-threaded">true</option>
+ </login-module>
+ </domain>
+
+
+ <domain name="nuxeo-webengine">
+ <login-module code="org.nuxeo.ecm.platform.login.NuxeoLoginModule"
+ flag="required">
+ <option name="principalClassName">org.nuxeo.ecm.platform.login.NuxeoPrincipal
+ </option>
+ <option name="useUserIdentificationInfoCB">true</option>
+ </login-module>
+ <!--login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule"
+ flag="required"> <option name="password-stacking">true</option> <option name="multi-threaded">true</option>
+ </login-module -->
+ </domain>
+
+ </extension>
</component>
--- /dev/null
+<?xml version="1.0"?>
+<!-- Apparently no longer needed in Nuxeo pre-5.5 RC1 release -->
+<component name="config:datasources">
+<!--
+ <extension target="org.nuxeo.runtime.datasource" point="datasources">
+ <datasource name="jdbc/nxaudit" xaDataSource="@XA_DATASOURCE@"
+ maxActive="20" maxIdle="5">
+ <property name="databaseName">nuxeo</property>
+ <property name="user">@NUXEO_USER@</property>
+ <property name="password">@NUXEO_PW@</property>
+ </datasource>
+ </extension>
+-->
+</component>
--- /dev/null
+<?xml version="1.0"?>
+<component name="config:default-repository">
+ <extension target="org.nuxeo.ecm.core.repository.RepositoryService"
+ point="repository">
+ <repository name="default"
+ factory="org.nuxeo.ecm.core.storage.sql.ra.PoolingRepositoryFactory">
+ <repository name="default">
+ <clustering enabled="false" delay="1000" />
+ <binaryStore path="" />
+ <!-- The transactional datasource for Nuxeo -->
+ <xa-datasource>@XA_DATASOURCE@</xa-datasource>
+ <property name="URL">@DB_URL@</property>
+ <property name="DatabaseName">nuxeo</property>
+ <property name="User">@NUXEO_USER@</property>
+ <property name="Password">@NUXEO_PW@</property>
+
+ <schema>
+ <field type="largetext">imd:user_comment</field> <!-- Needed for large image metadata (image_metadata) that gets inserted
+ here. -->
+ <field type="largetext">note</field>
+ <field type="largetext">webp:content</field>
+ <field type="largetext">webc:welcomeText</field>
+ <field type="largetext">comment:comment</field>
+ <field type="largetext">post</field>
+ <field type="largetext">mail:mail</field>
+
+ <!-- Text fields that may possibly not require largetext -->
+ <!-- designation and might need further review are marked as follows: -->
+ <!-- * -->
+
+ <!-- =========================================================== -->
+ <!-- Acquisition -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">acquisitionFundingSourceProvisos</field>
+ <field type="largetext">acquisitions_common:acquisitionNote</field>
+ <field type="largetext">acquisitions_common:acquisitionProvisos</field>
+ <field type="largetext">acquisitions_common:acquisitionReason</field>
+ <field type="largetext">acquisitions_common:creditLine</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Blob -->
+ <!-- =========================================================== -->
+
+ <!-- No largetext fields identified to date -->
+
+
+ <!-- =========================================================== -->
+ <!-- CollectionObject / Cataloging -->
+ <!-- =========================================================== -->
+
+ <!-- Object Identification Information -->
+ <!-- ================================= -->
+
+ <!-- FIXME: The following field may be removed from this configuration
+ when it is confirmed -->
+ <!-- that the App/UI layers are using a repeatable other number group. -->
+ <field type="largetext">collectionobjects_common:otherNumber</field> <!-- * -->
+
+ <!-- FIXME: Change this to otherNumberValue if and when the field name
+ itself is so changed. -->
+ <field type="largetext">numberValue</field> <!-- * -->
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:briefDescriptions
+ </field>
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:comments</field>
+
+ <field type="largetext">collectionobjects_common:distinguishingFeatures
+ </field>
+
+ <field type="largetext">objectNameNote</field>
+
+ <field type="largetext">title</field>
+ <field type="largetext">titleTranslation</field>
+
+ <!-- Object Description Information -->
+ <!-- ============================== -->
+
+ <field type="largetext">collectionobjects_common:ageQualifier</field>
+ <field type="largetext">collectionobjects_common:color</field>
+ <field type="largetext">collectionobjects_common:contentDescription
+ </field>
+ <field type="largetext">collectionobjects_common:contentNote</field>
+ <field type="largetext">collectionobjects_common:contentObject</field>
+ <field type="largetext">collectionobjects_common:copyNumber</field> <!-- * -->
+ <field type="largetext">collectionobjects_common:editionNumber</field> <!-- * -->
+
+ <!-- FIXME: Will become group repeatable in a post-1.3 release -->
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->
+ <field type="largetext">collectionobjects_common:inscriptionContent
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentInterpretation
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentTranslation
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentTransliteration
+ </field>
+
+ <!-- FIXME: Will become group repeatable in a post-1.3 release -->
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionInterpretation
+ </field>
+
+ <field type="largetext">materialComponentNote</field>
+ <field type="largetext">materialName</field> <!-- * -->
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:physicalDescription
+ </field>
+
+ <field type="largetext">objectComponentInformation</field>
+
+ <!-- Object Production Information -->
+ <!-- ============================= -->
+
+ <field type="largetext">collectionobjects_common:objectProductionNote
+ </field>
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:objectProductionReason
+ </field>
+
+ <!-- Object History and Association Information -->
+ <!-- ========================================== -->
+
+ <field type="largetext">assocActivityNote</field>
+ <field type="largetext">assocConceptNote</field>
+ <field type="largetext">assocCulturalContextNote</field>
+ <field type="largetext">assocDateNote</field>
+
+ <!-- FIXME: Will become group repeatable in a post-1.3 release. -->
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->
+ <field type="largetext">collectionobjects_common:assocEventName</field> <!-- * -->
+ <field type="largetext">collectionobjects_common:assocEventNote</field>
+ <field type="largetext">collectionobjects_common:assocEventType</field> <!-- * -->
+
+ <field type="largetext">assocObject</field>
+ <field type="largetext">assocOrganizationNote</field>
+ <field type="largetext">assocPeopleNote</field>
+ <field type="largetext">assocPersonNote</field>
+ <field type="largetext">assocPlaceNote</field>
+
+ <field type="largetext">collectionobjects_common:objectHistoryNote
+ </field>
+ <field type="largetext">collectionobjects_common:ownershipExchangeNote
+ </field>
+ <field type="largetext">usageNote</field>
+
+ <!-- Object Owner's Contribution Information -->
+ <!-- ======================================= -->
+
+ <field type="largetext">collectionobjects_common:ownersPersonalExperience
+ </field>
+ <field type="largetext">collectionobjects_common:ownersPersonalResponse
+ </field>
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:ownersReference</field>
+
+ <field type="largetext">collectionobjects_common:ownersContributionNote
+ </field>
+
+ <!-- Object Viewer's Contribution Information -->
+ <!-- ======================================== -->
+
+ <field type="largetext">collectionobjects_common:viewersRole</field>
+ <field type="largetext">collectionobjects_common:viewersPersonalExperience
+ </field>
+ <field type="largetext">collectionobjects_common:viewersPersonalResponse
+ </field>
+
+ <!-- FIXME: multivalued field - need to verify schema and field name -->
+ <field type="largetext">collectionobjects_common:viewersReference</field>
+
+ <field type="largetext">collectionobjects_common:viewersContributionNote
+ </field>
+
+ <!-- Reference Information -->
+ <!-- ===================== -->
+
+ <field type="largetext">collectionobjects_common:catalogNumber</field> <!-- * -->
+
+ <!-- Object Collection Information -->
+ <!-- ============================= -->
+
+ <field type="largetext">collectionobjects_common:fieldCollectionNote
+ </field>
+ <field type="largetext">collectionobjects_common:fieldCollectionNumber
+ </field> <!-- * -->
+
+ <!-- Additional non-text fields configured as 'largetext' to avoid the
+ following error when Nuxeo is configured to use MySQL: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.
+ message: Row size too large. The maximum row size for the used table type,
+ not counting BLOBs, is 65535. Some of the fields below may be repeatable
+ or in repeatable groups, and the schema and field names below might thus
+ require verification to match actual values. -->
+
+ <field type="largetext">collectionobjects_common:objectNumber</field>
+ <field type="largetext">collectionobjects_common:otherNumber</field>
+ <field type="largetext">collectionobjects_common:otherNumberType</field>
+ <field type="largetext">collectionobjects_common:numberOfObjects</field>
+ <field type="largetext">collectionobjects_common:collection</field>
+ <field type="largetext">collectionobjects_common:recordStatus</field>
+ <field type="largetext">collectionobjects_common:age</field>
+ <field type="largetext">collectionobjects_common:ageQualifier</field>
+ <field type="largetext">collectionobjects_common:ageUnit</field>
+
+ <field type="largetext">collectionobjects_common:contentDate</field>
+ <field type="largetext">collectionobjects_common:contentLanguages</field>
+ <field type="largetext">collectionobjects_common:contentOrganizations
+ </field>
+
+ <field type="largetext">collectionobjects_common:dimensionSummary</field>
+
+ <!-- FIXME: The set of dimensions-related fields below may be removed -->
+ <!-- altogether when it is confirmed that the App/UI layers are using -->
+ <!-- a repeatable dimensions group. -->
+ <field type="largetext">collectionobjects_common:dimension</field>
+ <field type="largetext">collectionobjects_common:dimensionMeasuredPart
+ </field>
+ <field type="largetext">collectionobjects_common:dimensionMeasurementUnit
+ </field>
+ <field type="largetext">collectionobjects_common:dimensionValue</field>
+ <field type="largetext">collectionobjects_common:dimensionValueDate
+ </field>
+ <field type="largetext">collectionobjects_common:dimensionValueQualifier
+ </field>
+
+ <field type="largetext">collectionobjects_common:editionNumber</field>
+
+ <field type="largetext">collectionobjects_common:inscriptionContentInscriber
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentDate
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentLanguage
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentMethod
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentPosition
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentScript
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionContentType
+ </field>
+
+ <field type="largetext">collectionobjects_common:inscriptionDescription
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionInscriber
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionDate
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionMethod
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionPosition
+ </field>
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionType
+ </field>
+
+ <field type="largetext">collectionobjects_common:objectStatus</field>
+ <field type="largetext">collectionobjects_common:phase</field>
+ <field type="largetext">collectionobjects_common:sex</field>
+ <field type="largetext">collectionobjects_common:ownershipAccess</field>
+ <field type="largetext">collectionobjects_common:ownershipCategory
+ </field>
+ <field type="largetext">collectionobjects_common:ownershipDates</field>
+ <field type="largetext">collectionobjects_common:ownershipExchangeMethod
+ </field>
+ <field type="largetext">collectionobjects_common:ownershipExchangePriceCurrency
+ </field>
+ <field type="largetext">collectionobjects_common:ownershipExchangePriceValue
+ </field>
+ <field type="largetext">collectionobjects_common:ownershipPlace</field>
+ <field type="largetext">collectionobjects_common:fieldCollectionNumber
+ </field>
+ <field type="largetext">collectionobjects_common:fieldCollectionMethod
+ </field>
+ <field type="largetext">collectionobjects_common:fieldCollectionPlace
+ </field>
+ <field type="largetext">collectionobjects_common:fieldCollectionDate
+ </field>
+
+ <!-- FIXME: This sample set of date field can be removed when Cataloging -->
+ <!-- records are using structured date fields, or earlier when it is
+ confirmed that -->
+ <!-- the App/UI layers are not using this vestigial part of the Cataloging
+ schema. -->
+ <field type="largetext">collectionobjects_common:dateAssociation</field>
+ <field type="largetext">collectionobjects_common:dateEarliestSingle
+ </field>
+ <field type="largetext">collectionobjects_common:dateEarliestSingleCertainty
+ </field>
+ <field type="largetext">collectionobjects_common:dateEarliestSingleQualifier
+ </field>
+ <field type="largetext">collectionobjects_common:dateLatest</field>
+ <field type="largetext">collectionobjects_common:dateLatestCertainty
+ </field>
+ <field type="largetext">collectionobjects_common:dateLatestQualifier
+ </field>
+ <field type="largetext">collectionobjects_common:datePeriod</field>
+ <field type="largetext">collectionobjects_common:dateText</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Contact -->
+ <!-- =========================================================== -->
+ <field type="largetext">contacts_common:addressPlace</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Group -->
+ <!-- =========================================================== -->
+ <field type="largetext">groups_common:scopeNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Intake -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">intakes_common:entryNote</field>
+ <field type="largetext">intakes_common:packingNote</field>
+ <field type="largetext">intakes_common:fieldCollectionNote</field>
+ <field type="largetext">intakes_common:insuranceNote</field>
+ <field type="largetext">intakes_common:conditionCheckNote</field>
+ <field type="largetext">currentLocationNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Loan In -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">loansin_common:loanInConditions</field>
+ <field type="largetext">loansin_common:loanInNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Loan Out -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">loansout_common:specialConditionsOfLoan</field>
+ <field type="largetext">loansout_common:loanOutNote</field>
+ <field type="largetext">loansout_common:loanPurpose</field>
+ <field type="largetext">loanedObjectStatusNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Movement / Location and Movement Control -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">movements_common:currentLocationNote</field>
+ <field type="largetext">movements_common:movementNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Media / Media Handling -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">media_common:copyrightStatement</field>
+ <field type="largetext">media_common:description</field>
+ <field type="largetext">media_common:title</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Note -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">notes_common:content</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Object Exit -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">objectexit_common:exitNote</field>
+ <field type="largetext">objectexit_common:packingNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Organization -->
+ <!-- =========================================================== -->
+
+ <field type="largetext">shortName</field>
+ <field type="largetext">longName</field>
+ <field type="largetext">nameAdditions</field>
+ <field type="largetext">historyNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Person -->
+ <!-- =========================================================== -->
+ <field type="largetext">persons_common:bioNote</field>
+ <field type="largetext">persons_common:nameNote</field>
+
+
+ <!-- =========================================================== -->
+ <!-- Relation -->
+ <!-- =========================================================== -->
+
+ <!-- No largetext fields identified to date -->
+
+
+ <!-- =========================================================== -->
+ <!-- Storage Location / Location -->
+ <!-- =========================================================== -->
+ <field type="largetext">locations_common:name</field>
+ <!-- conditionNote will be made part of a repeatable group of fields
+ in a future release -->
+ <field type="largetext">locations_common:conditionNote</field>
+ <field type="largetext">locations_common:securityNote</field>
+ <field type="largetext">locations_common:accessNote</field>
+
+ </schema>
+ </repository>
+ </repository>
+ </extension>
+
+ <extension target="org.nuxeo.ecm.core.api.repository.RepositoryManager"
+ point="repositories">
+ <documentation>The default repository</documentation>
+ <repository name="default" label="Default Repository" />
+ </extension>
+</component>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
+ debug="false">
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
+ <!-- <param name="Target" value="System.out" />-->
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" /> -->
+ <param name="ConversionPattern" value="%m%n" />
+ </layout>
+ </appender>
+
+ <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
+ <param name="File" value="log/nxshell.log" />
+ <param name="Append" value="false" />
+ <!-- <param name="MaxFileSize" value="10MB" />-->
+ <param name="MaxBackupIndex" value="3" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c] %m%n" />
+ </layout>
+ </appender>
+
+ <!-- Specific appenders for some important nxshell commands -->
+ <appender name="import" class="org.apache.log4j.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
+ <param name="File" value="log/import.log" />
+ <param name="Append" value="true" />
+ <param name="MaxFileSize" value="30MB" />
+ <param name="MaxBackupIndex" value="5" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c] %m%n" />
+ </layout>
+ </appender>
+
+ <!-- Main logger -->
+ <logger name="org.nuxeo">
+ <level value="INFO" />
+ </logger>
+ <!-- Console output -->
+ <logger name="org.nuxeo.ecm.shell">
+ <level value="INFO" />
+ <appender-ref ref="CONSOLE" />
+ </logger>
+ <!-- Loggers for import commands -->
+ <logger name="org.nuxeo.ecm.shell.commands.io.ImportCommand">
+ <level value="INFO" />
+ <appender-ref ref="import" />
+ </logger>
+ <logger name="org.nuxeo.ecm.shell.commands.repository.FSImportCommand">
+ <level value="INFO" />
+ <appender-ref ref="import" />
+ </logger>
+ <logger name="org.nuxeo.ecm.shell.commands.repository.MTFSImportCommand">
+ <level value="INFO" />
+ <appender-ref ref="import" />
+ </logger>
+ <logger name="org.nuxeo.ecm.shell.commands.repository.ThreadedImportTask">
+ <level value="INFO" />
+ <appender-ref ref="import" />
+ </logger>
+
+ <root>
+ <level value="WARN" />
+ <appender-ref ref="FILE" />
+ </root>
+
+</log4j:configuration>
--- /dev/null
+<?xml version="1.0"?>
+
+<!--
+ This is the configuration the CollectionSpace services used when it was deployed on the JBoss AS. However,
+ it still works (and is required) in our Apache Tomcat deployment.
+
+ 12/8/2011 - We need to confirm with Nuxeo that this is correct configuration for their LoginComponent.
+ -->
+<component name="org.nuxeo.ecm.platform.login.LoginConfig"
+ version="1.0">
+ <documentation>
+ Login modules used on JBoss
+ @author Bogdan Stefanescu (bs@nuxeo.com)
+ </documentation>
+
+
+ <extension target="org.nuxeo.runtime.LoginComponent" point="domains">
+
+ <domain name="nuxeo-system-login">
+ <login-module code="org.nuxeo.runtime.api.login.SystemLoginModule"
+ flag="required" />
+ <login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule"
+ flag="required">
+ <option name="password-stacking">true</option>
+ <option name="multi-threaded">true</option>
+ </login-module>
+ </domain>
+
+
+ <domain name="nuxeo-webengine">
+ <login-module code="org.nuxeo.ecm.platform.login.NuxeoLoginModule"
+ flag="required">
+ <option name="principalClassName">org.nuxeo.ecm.platform.login.NuxeoPrincipal
+ </option>
+ <option name="useUserIdentificationInfoCB">true</option>
+ </login-module>
+ <!--login-module code="org.nuxeo.ecm.core.api.local.ClientLoginModule"
+ flag="required"> <option name="password-stacking">true</option> <option name="multi-threaded">true</option>
+ </login-module -->
+ </domain>
+
+ </extension>
+
+
+</component>
--- /dev/null
+NuxeoContainer.autoactivation=true
--- /dev/null
+# application instance config
+org.nuxeo.ecm.instance.host=localhost
+org.nuxeo.ecm.instance.name=Nuxeo 5.4
+org.nuxeo.ecm.instance.description=Nuxeo ECM server
+
+# product config
+org.nuxeo.ecm.product.name=Nuxeo 5.4
+org.nuxeo.ecm.product.version=5.4.2-SNAPSHOT
+
+# runtime remoting config
+org.nuxeo.runtime.server.enabled=false
+org.nuxeo.runtime.server.host=${org.nuxeo.ecm.instance.host}
+org.nuxeo.runtime.server.locator=socket://0.0.0.0:62474/?datatype=nuxeo
+
+# streaming config
+org.nuxeo.runtime.streaming.isServer=false
+org.nuxeo.runtime.streaming.serverLocator=socket://${org.nuxeo.ecm.instance.host}:62474/?datatype=nuxeo
+
+# which sample to run
+org.nuxeo.ecm.sample.class=org.nuxeo.ecm.sample.streaming.StreamingExample
+
+# needed for the JNDI auto configuration of clients
+# you need to change this if using JNDI through HTTP
+nuxeo-client-jndi.java.naming.provider.url=jnp://%s:%s
+nuxeo-client-jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+nuxeo-client-jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+
+# avoid initializing nuxeo relations at startup (for faster startup)
+org.nuxeo.ecm.platform.relations.initOnStartup=false
+
+# context path of the application
+org.nuxeo.ecm.contextPath=/nuxeo
+
+# cspace
+#nuxeo.client.on.jboss=true
+#org.nuxeo.client.remote=true
--- /dev/null
+org.nuxeo.app.bundles=bundles/*:plugins/*
--- /dev/null
+This folder contains the external modules on top of the nuxeo platform
\ No newline at end of file
--- /dev/null
+derby.system.home=${nuxeo.data.dir}/derby
+org.nuxeo.launcher.libdirs=lib
+h2.baseDir=${nuxeo.data.dir}/h2
\ No newline at end of file
\r
<properties>\r
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
+ \r
+ <nuxeo.general.release>5.5-RC1</nuxeo.general.release>\r
+ <nuxeo.shell.version>${nuxeo.general.release}</nuxeo.shell.version>\r
+ <nuxeo.platform.version>${nuxeo.general.release}</nuxeo.platform.version>\r
+ <nuxeo.core.version>${nuxeo.general.release}</nuxeo.core.version> \r
+<!--\r
<nuxeo.shell.version>5.5-I20111104_1115</nuxeo.shell.version>\r
<nuxeo.platform.version>5.5-I20111104_1115</nuxeo.platform.version>\r
<nuxeo.core.version>5.5-I20111104_1115</nuxeo.core.version>\r
+-->\r
<cspace.services.version>2.0-SNAPSHOT</cspace.services.version>\r
<cspace.services.client.version>2.0-SNAPSHOT</cspace.services.client.version>\r
</properties>\r
<groupId>org.nuxeo.runtime</groupId>\r
<artifactId>nuxeo-runtime-jtajca</artifactId>\r
<version>${nuxeo.core.version}</version>\r
+ <exclusions>\r
+ <exclusion>\r
+ <artifactId>geronimo-transaction</artifactId>\r
+ <groupId>org.apache.geronimo.components</groupId>\r
+ </exclusion>\r
+ <exclusion>\r
+ <artifactId>geronimo-connector</artifactId>\r
+ <groupId>org.apache.geronimo.components</groupId>\r
+ </exclusion>\r
+ </exclusions>\r
</dependency>\r
<dependency>\r
<groupId>org.nuxeo.runtime</groupId>\r
<artifactId>ant</artifactId>\r
<version>1.7.0</version>\r
</dependency>\r
- <dependency>\r
- <groupId>org.apache.geronimo.components</groupId>\r
- <artifactId>geronimo-transaction</artifactId>\r
- <version>2.1.3-NX1</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.apache.geronimo.components</groupId>\r
- <artifactId>geronimo-connector</artifactId>\r
- <version>2.1.3-NX1</version>\r
- </dependency>\r
</dependencies>\r
\r
<build>\r
<Context antiResourceLocking="false" privileged="true"
path="/cspace-services" docBase="cspace-services">
-<Realm className="org.apache.catalina.realm.JAASRealm"
+ <!--
+ Setup the security realm for the CollectionSpace services
+ -->
+ <Realm className="org.apache.catalina.realm.JAASRealm"
appName="CSpaceJBossDBLoginModule"
userClassNames="org.collectionspace.authentication.CSpacePrincipal"
roleClassNames="org.collectionspace.authentication.CSpacePrincipal"/>
<Listener className="org.nuxeo.runtime.tomcat.NuxeoLauncher" home="${catalina.base}/nxserver" />
-->
- <!-- Define JDBC datasources: the JNDI names will be: java:comp/env/jdbc/DATABASE_NAME.
+ <!-- Define Nuxeo's JDBC datasources: the JNDI names will be: java:comp/env/jdbc/DATABASE_NAME.
For example java:comp/env/jdbc/nxsqldirectory This means you need to update corresponding
JNDI bindings in nuxeo data source definitions in the config directory -->
- <Resource name="jdbc/nxsqldirectory" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
- <Resource name="jdbc/nxrelations-default-jena" auth="Container"
- type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
- driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/comment-relations" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/nxaudit-logs" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/nxjbpm" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/placeful_service_ds" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/nxwebwidgets" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
-
- <Resource name="jdbc/nxuidsequencer" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="10000" driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo?relaxAutoCommit=true"
- username="nuxeo" password="nuxpw" />
+ <ResourceLink name="jdbc/nxsqldirectory" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/nxrelations-default-jena" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/comment-relations" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/nxaudit-logs" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/nxjbpm" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/placeful_service_ds" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/nxwebwidgets" global="jdbc/nuxeo" type="javax.sql.DataSource" />
+ <ResourceLink name="jdbc/nxuidsequencer" global="jdbc/nuxeo" type="javax.sql.DataSource" />
<Resource name="TransactionManager" auth="Container"
type="javax.transaction.TransactionManager" factory="org.nuxeo.runtime.jtajca.NuxeoTransactionManagerFactory"
transactionTimeoutSeconds="300" />
-
<Transaction factory="org.nuxeo.runtime.jtajca.NuxeoUserTransactionFactory" />
-
<Resource name="NuxeoConnectionManager" auth="Container"
type="javax.resource.spi.ConnectionManager" factory="org.nuxeo.runtime.jtajca.NuxeoConnectionManagerFactory"
minPoolSize="0" maxPoolSize="20"
idleTimeoutMinutes="0" />
<Resource auth="Container" name="Mail" type="javax.mail.Session"
- mail.store.protocol="pop3" mail.pop3.host="pop3.nosuchhost.nosuchdomain.com"
- mail.pop3.user="nobody" mail.transport.protocol="smtp"
- mail.smtp.host="localhost" mail.smtp.port="25"
- mail.smtp.starttls.enable="false" mail.smtp.auth="false"
- mail.smtp.user="anonymous" password="password"
- mail.from="noreply@nuxeo.com" mail.debug="false" />
-
- <!--
- <Resource name="jdbc/CspaceDS"
- auth="Container"
- type="javax.sql.DataSource"
- username="root"
- password="admin"
- driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/cspace"
- maxActive="8"
- maxIdle="4"/>
-
- <Resource name="jdbc/NuxeoDS"
- auth="Container"
- type="javax.sql.DataSource"
- username="root"
- password="admin"
- driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/nuxeo"
- maxActive="8"
- maxIdle="4"/>
- -->
-
- <Resource name="jdbc/CspaceDS"
- auth="Container"
- type="javax.sql.DataSource"
- username="${db.user}"
- password="${db.user.password}"
- driverClassName="${db.jdbc.driver.class}"
- url="jdbc:${db}://localhost:${db.port}/cspace"
- maxActive="8"
- maxIdle="4"/>
-
+ mail.store.protocol="pop3"
+ mail.pop3.host="pop3.nosuchhost.nosuchdomain.com"
+ mail.pop3.user="nobody"
+ mail.transport.protocol="smtp"
+ mail.smtp.host="localhost" mail.smtp.port="25"
+ mail.smtp.starttls.enable="false"
+ mail.smtp.auth="false"
+ mail.smtp.user="anonymous"
+ password="password" mail.from="noreply@nuxeo.com"
+ mail.debug="false" />
+
+ <!--
+ For CollectionSpace services
+ -->
+ <Resource name="jdbc/CspaceDS"
+ auth="Container"
+ type="javax.sql.DataSource"
+ username="${db.user}"
+ password="${db.user.password}"
+ driverClassName="${db.jdbc.driver.class}"
+ url="jdbc:${db}://localhost:${db.port}/cspace"
+ maxActive="8"
+ maxIdle="4"/>
+
<Resource name="jdbc/NuxeoDS"
- auth="Container"
- type="javax.sql.DataSource"
- username="${db.user}"
- password="${db.user.password}"
- driverClassName="${db.jdbc.driver.class}"
- url="jdbc:${db}://localhost:${db.port}/nuxeo"
- maxActive="8"
- maxIdle="4"/>
+ auth="Container"
+ type="javax.sql.DataSource"
+ username="${db.user}"
+ password="${db.user.password}"
+ driverClassName="${db.jdbc.driver.class}"
+ url="jdbc:${db}://localhost:${db.port}/nuxeo"
+ maxActive="8"
+ maxIdle="4"/>
</Context>
\r
public void releaseRepository(RepositoryInstance repo) throws Exception {\r
try {\r
+ repo.save();\r
repo.close();\r
+ } catch (Exception e) {\r
+ logger.error("Could not save and/or release the repository.", e);\r
+ throw e;\r
} finally {\r
repositoryInstances.remove(repo);\r
TransactionHelper.commitOrRollbackTransaction();\r
}
} catch (Exception e) {
if (logger.isDebugEnabled()) {
- logger.debug("createTenantSpace caught exception ", e);
+ logger.debug("Could not create tenant domain name=" + domainName + " caught exception ", e);
}
throw e;
} finally {
releaseRepositorySession(repoSession);
}
}
+
return domainId;
}
createDomain(tenantBinding, repositoryDomain);
createWorkspaces(tenantBinding, repositoryDomain);
}
+ } else {
+ logger.error("ClientType in tenant binding for " + tenantBinding.getDisplayName() + " is misconfigured"
+ + clientType.name()
+ + "<>"
+ + ClientType.JAVA);
}
}
if (domainId == null) {
domainId = repositoryClient.createDomain(repositoryDomain.getStorageName());
if (logger.isDebugEnabled()) {
- logger.debug("created repository domain for " + domainName
+ logger.debug("Created repository domain for " + domainName
+ " id=" + domainId);
}
} else {
if (logger.isDebugEnabled()) {
- logger.debug("found repository domain for " + domainName
+ logger.debug("Found repository domain for " + domainName
+ " id=" + domainId);
}
}