description="deploy nuxeo server libs to ${jee.server.cspace}">
<copy todir="${jee.server.cspace}/nuxeo-server">
<fileset dir="${basedir}/nuxeo-server/${nuxeo.release}">
- <exclude name="**/config/*-repo-config.xml"/>
+ <exclude name="**/config/proto-*-config.xml"/>
</fileset>
</copy>
<echo message="Copying Nuxeo prototype repo config file ..."/>
<filter token="NUXEO_PW" value="${db.nuxeo.user.password}"/>
</filterset>
</copy>
+ <copy todir="${jee.server.cspace}/cspace/config/services" overwrite="true">
+ <fileset file="${basedir}/nuxeo-server/${nuxeo.release}/config/proto-datasource-config.xml"/>
+ <filterset>
+ <filter token="DB_SERVER_HOSTNAME" value="${db.host}"/>
+ <filter token="DB_PORT" value="${db.port}"/>
+ <filter token="DB_JDBC_OPTIONS" value="${db.jdbc.urloptions.encoded}"/>
+ <filter token="NUXEO_USER" value="${db.nuxeo.user}"/>
+ <filter token="NUXEO_PW" value="${db.nuxeo.user.password}"/>
+ </filterset>
+ </copy>
+
<ant antfile="nuxeo-platform-collectionspace/build.xml" target="deploy" inheritall="false"/>
<ant antfile="nuxeo-platform-listener/build.xml" target="deploy" inheritall="false"/>
<!-- Disabled due to integration issues between ImageMagick and Ghostscript on Linux systems
<delete dir="${jee.server.cspace}/nuxeo-server/bundles"/>
<delete dir="${jee.server.cspace}/nuxeo-server/config"/>
<delete dir="${jee.server.cspace}/nuxeo-server/lib"/>
- <delete file="${jee.server.cspace}/cspace/config/services/proto-repo-config.xml"
- failonerror="false"/>
+ <delete file="${jee.server.cspace}/cspace/config/services/proto-repo-config.xml" failonerror="false"/>
+ <delete file="${jee.server.cspace}/cspace/config/services/proto-datasource-config.xml" failonerror="false"/>
<ant antfile="nuxeo-platform-collectionspace/build.xml" target="undeploy" inheritall="false"/>
<ant antfile="nuxeo-platform-listener/build.xml" target="undeploy" inheritall="false"/>
<ant antfile="nuxeo-platform-quote/build.xml" target="undeploy" inheritall="false"/>
+++ /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: 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: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
+++ /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="ServerName">@DB_SERVER_HOSTNAME@</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: 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: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"?>
-<component name="config:lifesci-domain-repository">
- <extension target="org.nuxeo.ecm.core.repository.RepositoryService"
- point="repository">
- <repository name="lifesci-domain"
- factory="org.nuxeo.ecm.core.storage.sql.ra.PoolingRepositoryFactory">
- <repository name="lifesci-domain">
- <clustering enabled="false" delay="1000" />
- <binaryStore path="" />
- <!-- The transactional datasource for Nuxeo -->
- <xa-datasource>org.postgresql.xa.PGXADataSource</xa-datasource>
- <property name="URL">jdbc:postgresql://localhost:5432/lifesci-domain</property>
- <property name="ServerName">localhost</property>
- <property name="DatabaseName">lifesci-domain</property>
- <property name="User">nuxeo</property>
- <property name="Password">nuxpw</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: 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: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 lifesci-domain repository</documentation>
- <repository name="lifesci-domain" label="Default Repository" />
- </extension>
-</component>
+++ /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.5
-org.nuxeo.ecm.instance.description=Nuxeo ECM server
-
-# product config
-org.nuxeo.ecm.product.name=Nuxeo 5.5
-org.nuxeo.ecm.product.version=5.5
-
-# 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
-
+++ /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
-org.nuxeo.launcher.libdirs=lib
--- /dev/null
+<?xml version="1.0"?>
+<component name="org.nuxeo.ecm.platform.query.api.PageProviderservice.replacers.defaultConfig">
+
+ <extension target="org.nuxeo.ecm.platform.query.api.PageProviderService" point="replacers">
+
+ <replacer withClass="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider"
+ enabled="${elasticsearch.enabled:=true}">
+ <provider>default_search</provider>
+ </replacer>
+
+ </extension>
+</component>
--- /dev/null
+<?xml version="1.0"?>
+<component name="org.nuxeo.elasticsearch.defaultConfig">
+ <require>org.nuxeo.elasticsearch.ElasticSearchComponent</require>
+
+ <extension target="org.nuxeo.elasticsearch.ElasticSearchComponent"
+ point="elasticSearchLocal">
+ <elasticSearchLocal
+ clusterName="nuxeoCluster"
+ nodeName="nuxeoNode"
+ pathData="C:\dev\tools\nuxeo-cap-6.0-tomcat\nxserver\data/elasticsearch"
+ pathLogs="C:\dev\tools\nuxeo-cap-6.0-tomcat\log/elasticsearch"
+ httpEnabled="false" />
+ </extension>
+
+ <extension target="org.nuxeo.elasticsearch.ElasticSearchComponent"
+ point="elasticSearchIndex">
+ <elasticSearchIndex name="nuxeo" type="doc" repository="default">
+ <fetchFromSource>
+ <include>ecm:*</include>
+ <include>dc:*</include>
+ <exclude>ecm:binarytext</exclude>
+ </fetchFromSource>
+
+ <settings>
+{
+ "analysis" : {
+ "filter" : {
+ "en_stem_filter" : {
+ "name" : "minimal_english",
+ "type" : "stemmer"
+ },
+ "en_stop_filter" : {
+ "stopwords" : [
+ "_english_"
+ ],
+ "type" : "stop"
+ },
+ "fr_elision_filter" : {
+ "articles" : [
+ "c",
+ "l",
+ "m",
+ "t",
+ "qu",
+ "n",
+ "s",
+ "j"
+ ],
+ "type" : "elision"
+ },
+ "fr_stem_filter" : {
+ "name" : "minimal_french",
+ "type" : "stemmer"
+ },
+ "fr_stop_filter" : {
+ "stopwords" : [
+ "_french_"
+ ],
+ "type" : "stop"
+ }
+ },
+ "tokenizer" : {
+ "path_tokenizer" : {
+ "delimiter" : "/",
+ "type" : "path_hierarchy"
+ }
+ },
+ "analyzer" : {
+ "en_analyzer" : {
+ "alias" : "fulltext",
+ "filter" : [
+ "lowercase",
+ "en_stop_filter",
+ "en_stem_filter",
+ "asciifolding"
+ ],
+ "type" : "custom",
+ "tokenizer" : "standard"
+ },
+ "fr_analyzer" : {
+ "filter" : [
+ "lowercase",
+ "fr_stop_filter",
+ "fr_stem_filter",
+ "asciifolding",
+ "fr_elision_filter"
+ ],
+ "type" : "custom",
+ "tokenizer" : "standard"
+ },
+ "path_analyzer" : {
+ "type" : "custom",
+ "tokenizer" : "path_tokenizer"
+ },
+ "default" : {
+ "type" : "custom",
+ "tokenizer" : "keyword"
+ }
+ }
+ }
+}
+ </settings>
+ <mapping>
+{
+ "_size" : {
+ "enabled" : true
+ },
+ "_all" : {
+ "analyzer" : "fulltext"
+ },
+ "properties" : {
+ "dc:title" : {
+ "type" : "multi_field",
+ "fields" : {
+ "dc:title" : {
+ "index" : "not_analyzed",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "boost": 2,
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "dc:description" : {
+ "type" : "multi_field",
+ "fields" : {
+ "dc:description" : {
+ "index" : "no",
+ "include_in_all" : "true",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "boost": 1.5,
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "note:note" : {
+ "type" : "multi_field",
+ "fields" : {
+ "note:note" : {
+ "index" : "no",
+ "include_in_all" : "true",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "ecm:binarytext*" : {
+ "type" : "string",
+ "analyzer" : "fulltext"
+ },
+ "ecm:path" : {
+ "type" : "multi_field",
+ "fields" : {
+ "children" : {
+ "search_analyzer" : "keyword",
+ "index_analyzer" : "path_analyzer",
+ "type" : "string"
+ },
+ "ecm:path" : {
+ "index" : "not_analyzed",
+ "type" : "string"
+ }
+ }
+ },
+ "ecm:pos": {
+ "type": "integer"
+ },
+ "dc:created": {
+ "format": "dateOptionalTime",
+ "type": "date"
+ },
+ "dc:modified": {
+ "format": "dateOptionalTime",
+ "type": "date"
+ }
+ }
+}
+ </mapping>
+
+ </elasticSearchIndex>
+ </extension>
+
+ <extension target="org.nuxeo.elasticsearch.ElasticSearchComponent"
+ point="elasticSearchIndex">
+ <elasticSearchIndex name="lifesci_domain" type="doc" repository="lifesci_domain">
+ <fetchFromSource>
+ <include>ecm:*</include>
+ <include>dc:*</include>
+ <exclude>ecm:binarytext</exclude>
+ </fetchFromSource>
+
+ <settings>
+{
+ "analysis" : {
+ "filter" : {
+ "en_stem_filter" : {
+ "name" : "minimal_english",
+ "type" : "stemmer"
+ },
+ "en_stop_filter" : {
+ "stopwords" : [
+ "_english_"
+ ],
+ "type" : "stop"
+ },
+ "fr_elision_filter" : {
+ "articles" : [
+ "c",
+ "l",
+ "m",
+ "t",
+ "qu",
+ "n",
+ "s",
+ "j"
+ ],
+ "type" : "elision"
+ },
+ "fr_stem_filter" : {
+ "name" : "minimal_french",
+ "type" : "stemmer"
+ },
+ "fr_stop_filter" : {
+ "stopwords" : [
+ "_french_"
+ ],
+ "type" : "stop"
+ }
+ },
+ "tokenizer" : {
+ "path_tokenizer" : {
+ "delimiter" : "/",
+ "type" : "path_hierarchy"
+ }
+ },
+ "analyzer" : {
+ "en_analyzer" : {
+ "alias" : "fulltext",
+ "filter" : [
+ "lowercase",
+ "en_stop_filter",
+ "en_stem_filter",
+ "asciifolding"
+ ],
+ "type" : "custom",
+ "tokenizer" : "standard"
+ },
+ "fr_analyzer" : {
+ "filter" : [
+ "lowercase",
+ "fr_stop_filter",
+ "fr_stem_filter",
+ "asciifolding",
+ "fr_elision_filter"
+ ],
+ "type" : "custom",
+ "tokenizer" : "standard"
+ },
+ "path_analyzer" : {
+ "type" : "custom",
+ "tokenizer" : "path_tokenizer"
+ },
+ "default" : {
+ "type" : "custom",
+ "tokenizer" : "keyword"
+ }
+ }
+ }
+}
+ </settings>
+ <mapping>
+{
+ "_size" : {
+ "enabled" : true
+ },
+ "_all" : {
+ "analyzer" : "fulltext"
+ },
+ "properties" : {
+ "dc:title" : {
+ "type" : "multi_field",
+ "fields" : {
+ "dc:title" : {
+ "index" : "not_analyzed",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "boost": 2,
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "dc:description" : {
+ "type" : "multi_field",
+ "fields" : {
+ "dc:description" : {
+ "index" : "no",
+ "include_in_all" : "true",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "boost": 1.5,
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "note:note" : {
+ "type" : "multi_field",
+ "fields" : {
+ "note:note" : {
+ "index" : "no",
+ "include_in_all" : "true",
+ "type" : "string"
+ },
+ "fulltext" : {
+ "type": "string",
+ "analyzer" : "fulltext"
+ }
+ }
+ },
+ "ecm:binarytext*" : {
+ "type" : "string",
+ "analyzer" : "fulltext"
+ },
+ "ecm:path" : {
+ "type" : "multi_field",
+ "fields" : {
+ "children" : {
+ "search_analyzer" : "keyword",
+ "index_analyzer" : "path_analyzer",
+ "type" : "string"
+ },
+ "ecm:path" : {
+ "index" : "not_analyzed",
+ "type" : "string"
+ }
+ }
+ },
+ "ecm:pos": {
+ "type": "integer"
+ },
+ "dc:created": {
+ "format": "dateOptionalTime",
+ "type": "date"
+ },
+ "dc:modified": {
+ "format": "dateOptionalTime",
+ "type": "date"
+ }
+ }
+}
+ </mapping>
+
+ </elasticSearchIndex>
+ </extension>
+
+</component>
+
# application instance config
org.nuxeo.ecm.instance.host=localhost
+# enable/disable Elasticsearch
+elasticsearch.enabled=false
+
# runtime remoting config
org.nuxeo.runtime.server.locator=socket://0.0.0.0:62474/?datatype=nuxeo
org.nuxeo.runtime.server.enabled=false
--- /dev/null
+<?xml version="1.0"?>
+<component name="org.nuxeo.runtime.datasource.lifesci.contrib">
+
+ <extension target="org.nuxeo.runtime.datasource" point="datasources">
+ <datasource name="jdbc/lifesci_domain" driverClassName="org.postgresql.Driver"
+ maxPoolSize="100" minPoolSize="5" blockingTimeoutMillis="10000"
+ url="jdbc:postgresql://localhost:5432/lifesci_domain" validationQuery=""
+ username="nuxeo6" password="nuxeo6"
+ accessToUnderlyingConnectionAllowed="true" >
+ </datasource>
+ <link name="jdbc/repository_lifesci_domain" global="jdbc/lifesci_domain" type="javax.sql.DataSource" />
+
+ <!--
+ These links need to be moved into the context.xml file and become <Resource> instead of <link>
+ -->
+ <link name="jdbc/repository_default" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/repository_default" global="jdbc/default" type="javax.sql.DataSource"/>
+ <link name="jdbc/NuxeoDS" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxsqldirectory" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxrelations-default-jena" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/comment-relations" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxaudit-logs" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxjbpm" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/placeful_service_ds" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxwebwidgets" global="jdbc/default" type="javax.sql.DataSource" />
+ <link name="jdbc/nxuidsequencer" global="jdbc/default" type="javax.sql.DataSource" />
+
+ <!-- These properties are passed into the CSpace code that generates the final version
+ of this Nuxeo configuration file.
+ -->
+ <property name="ServerName">@DB_SERVER_HOSTNAME@</property>
+ <property name="JDBCOptions">@DB_JDBC_OPTIONS@</property>
+ <property name="PortNumber">@DB_PORT@</property>
+ <property name="User">@NUXEO_USER@</property>
+ <property name="Password">@NUXEO_PW@</property>
+ </extension>
+</component>
<!-- of the 'ant deploy' command, within the Services source code tree. -->
<!-- (Several values are also added during system startup, into repository-specific -->
<!-- 'clones' of this prototype configuration file, as noted below.) -->
-
+<!-- See http://doc.nuxeo.com/display/ADMINDOC/VCS+Configuration for more config details -->
<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">
- <pool minPoolSize="0" maxPoolSize="20"
- blockingTimeoutMillis="100" idleTimeoutMinutes="10" />
- <clustering enabled="false" delay="1000" />
- <binaryStore path="" /> <!-- Default value will be repository/database name. Can be partial or full system path. Partial path is relative to Nuxeo's data dir -->
- <xa-datasource>@XA_DATASOURCE@</xa-datasource> <!-- The transactional datasource for Nuxeo -->
- <property name="ServerName">@DB_SERVER_HOSTNAME@</property>
- <property name="DatabaseName"></property> <!-- The value of the database name element is inserted during system startup. -->
- <property name="JDBCOptions">@DB_JDBC_OPTIONS@</property>
- <property name="PortNumber">@DB_PORT@</property>
- <property name="User">@NUXEO_USER@</property>
- <property name="Password">@NUXEO_PW@</property>
- </repository>
+ <extension target="org.nuxeo.ecm.core.storage.sql.RepositoryService" point="repository">
+ <repository name="default" factory="org.nuxeo.ecm.core.storage.sql.ra.PoolingRepositoryFactory">
+ <pool minPoolSize="0" maxPoolSize="20" blockingTimeoutMillis="100" idleTimeoutMinutes="10"/>
+ <clustering enabled="false" delay="1000"/>
+ <binaryStore path=""/> <!-- Default value will be repository/database name. Can be partial or full system path. Partial path is relative to Nuxeo's data dir -->
+ <xa-datasource>@XA_DATASOURCE@</xa-datasource> <!-- The transactional datasource for Nuxeo -->
+ <noDDL>false</noDDL>
+ <aclOptimizations enabled="true"/>
+ <pathOptimizations enabled="true"/>
+ <idType>varchar</idType>
+ <indexing>
+ <fulltext disabled="false" analyzer="english">
+ <index name="default">
+ <!-- all props implied -->
+ </index>
+ <index name="title">
+ <field>dc:title</field>
+ </index>
+ <index name="description">
+ <field>dc:description</field>
+ </index>
+ </fulltext>
+ </indexing>
+ <usersSeparator key="," />
+ <property name="ServerName">@DB_SERVER_HOSTNAME@</property>
+ <property name="DatabaseName"></property> <!-- The value of the database name element is inserted during system startup. -->
+ <property name="JDBCOptions">@DB_JDBC_OPTIONS@</property>
+ <property name="PortNumber">@DB_PORT@</property>
+ <property name="User">@NUXEO_USER@</property>
+ <property name="Password">@NUXEO_PW@</property>
</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>
+</component>
\ No newline at end of file
domain.nuxeo=nuxeo-server
#nuxeo
-nuxeo.release=5.5-HF07
+nuxeo.release=6.0
nuxeo.ear=nuxeo.ear
nuxeo.system=bundles
<properties>
<cs.release>0.5</cs.release>
- <spring.version>3.0.0.RELEASE</spring.version>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
</properties>
<dependencies>
<artifactId>servlet-api-2.5</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>jaxb-xjc</artifactId>
+ <groupId>com.sun.xml.bind</groupId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.collectionspace.services</groupId>
- <artifactId>org.collectionspace.services.common</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <artifactId>servlet-api-2.5</artifactId>
- <groupId>org.mortbay.jetty</groupId>
- </exclusion>
- </exclusions>
- </dependency>
+ <dependency>
+ <groupId>org.collectionspace.services</groupId>
+ <artifactId>org.collectionspace.services.common</artifactId>
+ <exclusions>
+ <exclusion>
+ <artifactId>servlet-api-2.5</artifactId>
+ <groupId>org.mortbay.jetty</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsf-api</artifactId>
+ <groupId>com.sun.faces</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-server</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-servlet</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-core</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>org.collectionspace.services</groupId>
<artifactId>org.collectionspace.services.account.service</artifactId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
<scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- javax -->
<artifactId>oauth</artifactId>
<groupId>net.oauth.core</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>jboss-seam-remoting</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jboss-seam-ui</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jboss-seam</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>richfaces</artifactId>
+ <groupId>org.richfaces</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>richfaces-a4j</artifactId>
+ <groupId>org.richfaces</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>richfaces-core</artifactId>
+ <groupId>org.richfaces</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsf-api</artifactId>
+ <groupId>com.sun.faces</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsf-impl</artifactId>
+ <groupId>com.sun.faces</groupId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
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 -->
+<!--
<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/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"/>
+ -->
+ <Listener className="org.nuxeo.runtime.tomcat.ContextSecurityGrabber" />
+
+<!--
<Resource name="TransactionManager" auth="Container" type="javax.transaction.TransactionManager"
factory="org.nuxeo.runtime.jtajca.NuxeoTransactionManagerFactory"
transactionTimeoutSeconds="300"/>
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="TransactionManager" auth="Container"
+ type="javax.transaction.TransactionManager" factory="org.nuxeo.runtime.jtajca.NuxeoTransactionManagerFactory"
+ transactionTimeoutSeconds="300" />
+ <Transaction factory="org.nuxeo.runtime.jtajca.NuxeoUserTransactionFactory" />
<!--
For CollectionSpace services
validationQuery="SELECT 1"
logAbandoned="true"/>
- <Resource name="jdbc/NuxeoDS"
+ <Resource name="jdbc/NuxeoDS_CS"
auth="Container"
type="javax.sql.DataSource"
username="${db.nuxeo.user}"
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.services</groupId>
<artifactId>org.collectionspace.services.account.service</artifactId>
<name>services.account.service</name>
<packaging>jar</packaging>
- <properties>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
- </properties>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.collectionspace.services</groupId>
<artifactId>org.collectionspace.services.authentication.service</artifactId>
<name>services.authentication.service</name>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
</properties>
<dependencies>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.collectionspace.services.authorization-mgt.client</artifactId>
<name>services.authorization-mgt.client</name>
- <properties>
- <spring.version>3.0.0.RELEASE</spring.version>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
- </properties>
+
<dependencies>
<!-- keep slf4j dependencies on the top -->
<dependency>
<name>services.authorization-mgt.import</name>
<properties>
<generate_only>false</generate_only>
- <spring.version>3.0.0.RELEASE</spring.version>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
</properties>
<dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.version>3.0.0.RELEASE</spring.version>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
</properties>
<dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.version>3.0.0.RELEASE</spring.version>
- <spring.security.version>3.0.2.RELEASE</spring.security.version>
</properties>
<dependencies>
<dependency>
<groupId>org.nuxeo.ecm.core</groupId>
<artifactId>nuxeo-core-storage-sql-management</artifactId>
- <version>5.5.0-HF07</version>
+ <version>${nuxeo.general.release}</version>
</dependency>
<!-- keep slf4j dependencies on the top -->
import java.io.File;
public interface JEEServerDeployment {
- final public static String CONFIG_DIR_NAME = "config";
- final public static String CSPACE_DIR_NAME = "cspace";
- final public static String SERVICES_DIR_NAME = "services";
- final public static String DATABASE_SCRIPTS_DIR_NAME = "db";
- final public static String CONFIG_DIR_PATH = CONFIG_DIR_NAME + File.separator + SERVICES_DIR_NAME;
- final public static String CSPACE_CONFIG_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + CONFIG_DIR_PATH;
- final public static String CSPACE_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + SERVICES_DIR_NAME;
- final public static String DATABASE_SCRIPTS_DIR_PATH = CSPACE_SERVICES_DIR_PATH + File.separator + DATABASE_SCRIPTS_DIR_NAME;
+ final public static String CONFIG_DIR_NAME = "config";
+ final public static String CSPACE_DIR_NAME = "cspace";
+ final public static String SERVICES_DIR_NAME = "services";
+ final public static String DATABASE_SCRIPTS_DIR_NAME = "db";
+ final public static String CONFIG_DIR_PATH = CONFIG_DIR_NAME + File.separator + SERVICES_DIR_NAME;
+ final public static String CSPACE_CONFIG_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + CONFIG_DIR_PATH;
+ final public static String CSPACE_SERVICES_DIR_PATH = CSPACE_DIR_NAME + File.separator + SERVICES_DIR_NAME;
+ final public static String DATABASE_SCRIPTS_DIR_PATH = CSPACE_SERVICES_DIR_PATH + File.separator
+ + DATABASE_SCRIPTS_DIR_NAME;
+
+ final public static String TENANT_BINDINGS_FILENAME_PREFIX = "tenant-bindings";
+ final public static String TENANT_BINDINGS_PROTOTYPE_FILENAME = TENANT_BINDINGS_FILENAME_PREFIX + "-proto.xml";
+ final public static String TENANT_BINDINGS_ROOTDIRNAME = "tenants";
- final public static String TENANT_BINDINGS_FILENAME_PREFIX = "tenant-bindings";
- final public static String TENANT_BINDINGS_PROTOTYPE_FILENAME = TENANT_BINDINGS_FILENAME_PREFIX + "-proto.xml";
- final public static String TENANT_BINDINGS_ROOTDIRNAME = "tenants";
-
public final static String NUXEO_CLIENT_DIR = "nuxeo-client";
public final static String NUXEO_SERVER_DIR = "nuxeo-server";
public final static String NUXEO_CONFIG_DIR = CONFIG_DIR_NAME;
public final static String NUXEO_SERVER_CONFIG_DIR = NUXEO_SERVER_DIR + File.separator + NUXEO_CONFIG_DIR;
- public final static String NUXEO_REPO_CONFIG_FILENAME_SUFFIX = "-repo-config.xml";
- public final static String NUXEO_PROTOTYPE_CONFIG_FILENAME = "proto" + NUXEO_REPO_CONFIG_FILENAME_SUFFIX;
+ public final static String NUXEO_REPO_CONFIG_FILENAME_SUFFIX = "-repo-config.xml";
+ public final static String NUXEO_DATASOURCE_CONFIG_FILENAME_SUFFIX = "-datasource-config.xml";
+ public final static String NUXEO_PROTOTYPE_CONFIG_FILENAME = "proto" + NUXEO_REPO_CONFIG_FILENAME_SUFFIX;
+ public final static String NUXEO_PROTOTYPE_DATASOURCE_FILENAME = "proto" + NUXEO_DATASOURCE_CONFIG_FILENAME_SUFFIX;
public final static String NUXEO_PLUGINS_DIR = "plugins";
public final static String NUXEO_SERVER_PLUGINS_DIR = NUXEO_SERVER_DIR + File.separator + NUXEO_PLUGINS_DIR;
- public final static String NUXEO_DB_INIT_SCRIPT_FILENAME = "init_nuxeo_db.sql";
+ public final static String NUXEO_DB_INIT_SCRIPT_FILENAME = "init_nuxeo_db.sql";
}
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
private TenantBindingConfigReaderImpl tenantBindingConfigReader;
private UriTemplateRegistry uriTemplateRegistry = new UriTemplateRegistry();
-
private static final String COMPONENT_EXTENSION_XPATH = "/component/extension[@point='%s']";
- private static final String REPOSITORY_EXTENSION_POINT_XPATH =
- String.format(COMPONENT_EXTENSION_XPATH, "repository");
- private static final String REPOSITORIES_EXTENSION_POINT_XPATH =
- String.format(COMPONENT_EXTENSION_XPATH, "repositories");
+ private static final String DATASOURCE_EXTENSION_POINT_XPATH = String.format(COMPONENT_EXTENSION_XPATH, "datasources");
+ private static final String REPOSITORY_EXTENSION_POINT_XPATH = String.format(COMPONENT_EXTENSION_XPATH, "repository");
private static final String DROP_DATABASE_SQL_CMD = "DROP DATABASE";
private static final String DROP_DATABASE_IF_EXISTS_SQL_CMD = DROP_DATABASE_SQL_CMD + " IF EXISTS %s;";
private static final String DROP_USER_IF_EXISTS_SQL_CMD = DROP_USER_SQL_CMD + " IF EXISTS %s;";
private static final String DROP_OBJECTS_SQL_COMMENT = "-- drop all the objects before dropping roles";
-
private ServiceMain() {
- //empty
+ // Intentionally blank
}
/*
// In each tenant, set properties that don't already have values
// to their default values.
propagateConfiguredProperties();
-
+
// Create or update Nuxeo's per-repository configuration files.
+ createOrUpdateNuxeoDatasourceConfigFiles();
createOrUpdateNuxeoRepositoryConfigFiles();
// Create the Nuxeo-managed databases, along with the requisite
private String getNuxeoProtoConfigFilename() {
return JEEServerDeployment.NUXEO_PROTOTYPE_CONFIG_FILENAME;
}
-
- private String getNuxeoConfigFilename(String reponame) {
- return reponame + JEEServerDeployment.NUXEO_REPO_CONFIG_FILENAME_SUFFIX;
- }
+
+ private String getNuxeoProtoDatasourceFilename() {
+ return JEEServerDeployment.NUXEO_PROTOTYPE_DATASOURCE_FILENAME;
+ }
private String getDatabaseScriptsPath() {
DatabaseProductType dbType;
}
return uriTemplateRegistry;
}
+
+ /**
+ *
+ */
+ private void createOrUpdateNuxeoDatasourceConfigFiles() throws Exception {
+ // Get the prototype copy of the Nuxeo datasource config file.
+ File prototypeNuxeoDatasourceFile = new File(getCspaceServicesConfigDir() + File.separator
+ + getNuxeoProtoDatasourceFilename());
+ // FIXME: Consider checking for the presence of existing configuration files,
+ // rather than always failing outright if the prototype file for creating
+ // new or updated files can't be located.
+ if (prototypeNuxeoDatasourceFile.canRead() == false) {
+ String msg = String
+ .format("Could not find and/or read the prototype Nuxeo datasource file '%s'. "
+ + "Please redeploy this file by running 'ant deploy' from the Services layer source code's '3rdparty/nuxeo' module.",
+ prototypeNuxeoDatasourceFile.getCanonicalPath());
+ throw new RuntimeException(msg);
+ }
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Found and can read prototype Nuxeo config file at path %s",
+ prototypeNuxeoDatasourceFile.getAbsolutePath());
+ }
+
+ //
+ // For each tenant config we find, create the xml datasource config file and fill in the correct values.
+ //
+ Document prototypeConfigDoc = XmlTools.fileToXMLDocument(prototypeNuxeoDatasourceFile);
+ Document datasourceConfigDoc = null;
+
+ Hashtable<String, TenantBindingType> tenantBindingTypeMap = tenantBindingConfigReader.getTenantBindings();
+ for (TenantBindingType tbt : tenantBindingTypeMap.values()) {
+ List<String> repositoryNameList = ConfigUtils.getRepositoryNameList(tbt);
+ logger.debug("Getting repository name(s) for tenant " + tbt.getName());
+
+ if (repositoryNameList == null || repositoryNameList.isEmpty() == true) {
+ logger.error(String.format("Could not get repository name(s) for tenant %s", tbt.getName()));
+ continue; // break out of loop and go to the next tenant binding
+ } else {
+ for (String repositoryName : repositoryNameList) {
+ if (Tools.isBlank(repositoryName)) {
+ logger.error(String.format("Repository name(s) for tenant %s was empty.", tbt.getName()));
+ continue;
+ }
+ logger.debug(String.format("Repository name is %s", repositoryName));
+ //
+ // Clone the prototype copy of the Nuxeo datasource config file,
+ // thus creating a separate config file for the current repository.
+ //
+ datasourceConfigDoc = (Document) prototypeConfigDoc.clone();
+ // Update this config file by inserting values pertinent to the
+ // current repository.
+ datasourceConfigDoc = updateRepositoryDatasourceDoc(datasourceConfigDoc, repositoryName, this.getCspaceInstanceId());
+ logger.debug("Updated Nuxeo datasource config file contents=\n" + datasourceConfigDoc.asXML());
+
+ // Write this config file to the Nuxeo server config directory.
+ File repofile = new File(getNuxeoConfigDir() + File.separator + repositoryName
+ + JEEServerDeployment.NUXEO_DATASOURCE_CONFIG_FILENAME_SUFFIX);
+ logger.debug(String.format("Attempting to write Nuxeo datasource config file to %s", repofile.getAbsolutePath()));
+ XmlTools.xmlDocumentToFile(datasourceConfigDoc, repofile);
+ }
+ }
+ }
+ }
+
/**
* Ensure that Nuxeo repository configuration files exist for each repository
* specified in tenant bindings. Create or update these files, as needed.
prototypeNuxeoConfigFile.getCanonicalPath());
throw new RuntimeException(msg);
}
- if (logger.isTraceEnabled()) {
- logger.trace("Found and can read prototype Nuxeo config file at path %s", prototypeNuxeoConfigFile.getAbsolutePath());
+ if (logger.isInfoEnabled()) {
+ logger.info("Found and can read prototype Nuxeo config file at path %s", prototypeNuxeoConfigFile.getAbsolutePath());
}
+
+ //
+ // Create the xml config file and fill in the correct values.
+ //
Document prototypeConfigDoc = XmlTools.fileToXMLDocument(prototypeNuxeoConfigFile);
Document repositoryConfigDoc = null;
// FIXME: Can the variable below reasonably be made a class variable? Its value
repositoryName);
repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
- REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository", "name",
+ REPOSITORY_EXTENSION_POINT_XPATH + "/repository", "name",
repositoryName);
repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
- REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/binaryStore", "path",
+ REPOSITORY_EXTENSION_POINT_XPATH + "/repository/binaryStore", "path",
Tools.isBlank(binaryStorePath) ? repositoryName : binaryStorePath); // Can be either partial or full path. Partial path will be relative to Nuxeo's data directory
/* Create the JDBC url options if any exist */
String jdbcOptions = XmlTools.getElementValue(repoConfigDoc,
- REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='JDBCOptions']");
+ REPOSITORY_EXTENSION_POINT_XPATH + "/repository/property[@name='JDBCOptions']");
jdbcOptions = Tools.isBlank(jdbcOptions) ? "" : "?" + jdbcOptions;
repoConfigDoc = XmlTools.setElementValue(repoConfigDoc,
- REPOSITORY_EXTENSION_POINT_XPATH + "/repository/repository/property[@name='DatabaseName']",
+ REPOSITORY_EXTENSION_POINT_XPATH + "/repository/property[@name='DatabaseName']",
databaseName + jdbcOptions);
+
+ return repoConfigDoc;
+ }
+
+ /*
+ * This method is filling out the proto-datasource-config.xml file with tenant specific repository information.
+ */
+ private Document updateRepositoryDatasourceDoc(Document repoConfigDoc, String repositoryName,
+ String cspaceInstanceId) {
+ String databaseName = JDBCTools.getDatabaseName(repositoryName, cspaceInstanceId);
+
+ repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc, "/component", "name",
+ String.format("config:%s-datasource", repositoryName));
- // Text substitutions within second extension point, "repositories"
- repoConfigDoc = XmlTools.setElementValue(repoConfigDoc,
- REPOSITORIES_EXTENSION_POINT_XPATH + "/documentation",
- String.format("The %s repository", repositoryName));
+ // Set the <datasource> element's name attribute
+ String datasoureName = "jdbc/" + repositoryName;
+ repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/datasource", "name", datasoureName);
+ // Get the DB server name
+ String serverName = XmlTools.getElementValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/property[@name='ServerName']");
+ // Get the JDBC options
+ String jdbcOptions = XmlTools.getElementValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/property[@name='JDBCOptions']");
+ jdbcOptions = Tools.isBlank(jdbcOptions) ? "" : "?" + jdbcOptions;
+ // Get the DB port nubmer
+ String portNumber = XmlTools.getElementValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/property[@name='PortNumber']");
+ // Build the JDBC URL from the parts
+ String jdbcUrl = String.format("jdbc:postgresql://%s:%s/%s%s", //FIXME: 'postgresql' string should not be hard coded here
+ serverName, portNumber, databaseName, jdbcOptions);
+
+ // Set the <datasource> element's url attribute
repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
- REPOSITORIES_EXTENSION_POINT_XPATH + "/repository", "name",
- repositoryName);
+ DATASOURCE_EXTENSION_POINT_XPATH + "/datasource", "url", jdbcUrl);
+ logger.debug(String.format("Built up the following JDBC url: %s", jdbcUrl));
+ // Get the DB username
+ String username = XmlTools.getElementValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/property[@name='User']");
+ // Set the <datasource> element's user attribute
repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
- REPOSITORIES_EXTENSION_POINT_XPATH + "/repository", "label",
- String.format("%s Repository", repositoryName));
+ DATASOURCE_EXTENSION_POINT_XPATH + "/datasource", "username", username);
+
+ // Get the DB password
+ String password = XmlTools.getElementValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/property[@name='Password']");
+ // Set the <datasource> element's password attribute
+ repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/datasource", "password", password);
+
+ // Set the <link> element's name attribute
+ repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/link", "name", "jdbc/repository_" + repositoryName);
+ // Set the <link> element's global attribute
+ repoConfigDoc = XmlTools.setAttributeValue(repoConfigDoc,
+ DATASOURCE_EXTENSION_POINT_XPATH + "/link", "global", datasoureName);
return repoConfigDoc;
- }
+ }
/**
* Update the current copy of the Nuxeo databases initialization script file by
if (serviceName != null) {
if (logger.isDebugEnabled() == true) {
logger.debug(String.format(" * tenant:serviceBindings '%s'", serviceName));
- System.out.println(String.format(" * tenant:serviceBindings '%s'", serviceName)); // Debug only
+ //System.out.println(String.format(" * tenant:serviceBindings '%s'", serviceName)); // Debug only
}
result = getTenantQualifiedIdentifier(tenantId, serviceName.toLowerCase());
}
import javax.sql.rowset.RowSetProvider;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
-import org.collectionspace.services.common.ServiceMain;
/**
* User: laramie
public class JDBCTools {
public static HashMap<String, DataSource> cachedDataSources = new HashMap<String, DataSource>();
public static String CSPACE_DATASOURCE_NAME = "CspaceDS";
- public static String NUXEO_DATASOURCE_NAME = "NuxeoDS";
+ public static String NUXEO_DATASOURCE_NAME = "NuxeoDS_CS"; // Starting with v4.2 release we renamed this from NuxeoDS to NuxeoDS_CS to void namespace conflict with Nuxeo EP
// Default database names
// public static String DEFAULT_CSPACE_DATABASE_NAME = ConfigUtils.DEFAULT_CSPACE_DATABASE_NAME;
public static String DEFAULT_NUXEO_REPOSITORY_NAME = ConfigUtils.DEFAULT_NUXEO_REPOSITORY_NAME;
*/
public static String getDatabaseProductName(String dataSourceName,
String repositoryName,
- String cspaceInstanceId) {
+ String cspaceInstanceId) throws Exception {
+
+ @SuppressWarnings("unused")
+ Object driver = Class.forName("org.postgresql.Driver"); // For some reason, we need to make sure the org.postgresql.Driver class in on the classpath
+
if (DBProductName == null) {
Connection conn = null;
try {
if (logger.isTraceEnabled() == true) {
logger.trace(String.format("Could not open a connection. DataSource='%s' DB='%s'.",
dataSourceName, repositoryName));
+ throw e;
}
} finally {
try {
import java.util.Hashtable;
import java.util.Iterator;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import javax.servlet.ServletContext;
import org.collectionspace.services.common.api.JEEServerDeployment;
import org.nuxeo.ecm.core.api.DocumentModel;
import org.nuxeo.ecm.core.api.DocumentModelList;
-import org.nuxeo.ecm.core.api.repository.RepositoryManager;
-import org.nuxeo.ecm.core.model.Repository;
import org.nuxeo.osgi.application.FrameworkBootstrap;
-import org.nuxeo.runtime.api.Framework;
-import org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl;
-import org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionFactoryImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
fb = new FrameworkBootstrap(NuxeoConnectorEmbedded.class.getClassLoader(),
nuxeoHomeDir);
+ fb.setHostName("Tomcat");
+ fb.setHostVersion("7.0.57"); //FIXME: Should not be hard coded.
+
fb.initialize();
fb.start();
}
}
}
- /*
- * This is a debug-only method. Use to look at runtime values of Nuxeo internal
- * data structures.
- */
- public String getDatabaseName(String repoName) {
- String result = null;
-
-// TODO: Remove after CSPACE-6375 issue is resolved.
-// try {
-// List<RepositoryDescriptor> repositoryDescriptorList = this.getRepositoryDescriptor(repoName);
-// } catch (Exception e1) {
-// // TODO Auto-generated catch block
-// e1.printStackTrace();
-// }
-
- Repository repository = null;
- try {
- repository = this.lookupRepository(repoName);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- ConnectionFactoryImpl connectionFactory = (ConnectionFactoryImpl)repository;
- ManagedConnectionFactoryImpl managedConnectionFactory = connectionFactory.getManagedConnectionFactory();
- String property = managedConnectionFactory.getProperty();
-
- return result;
- }
-
/**
* releaseRepositorySession releases given repository session
*
CoreSessionInterface repoSession = getClient().openRepository(repoDomain);
if (logger.isDebugEnabled() && repoSession != null) {
- logger.debug("getRepositorySession() opened repository session");
String repoName = repoDomain.getRepositoryName();
- String databaseName = this.getDatabaseName(repoName); // For debugging purposes only
+ logger.debug("getRepositorySession() opened repository session on: %s repo",
+ repoName != null ? repoName : "unknown");
}
return repoSession;
}
- public Repository lookupRepository(String name) throws Exception {
- Repository repo;
- RepositoryManager repositoryManager = Framework.getService(RepositoryManager.class);
-
- try {
- // needed by glassfish
- repo = (Repository) new InitialContext().lookup("NXRepository/" + name);
- } catch (NamingException e) {
- try {
- // needed by jboss
- repo = (Repository) new InitialContext().lookup("java:NXRepository/"
- + name);
- } catch (NamingException ee) {
- repo = (Repository) repositoryManager.getRepository(
- name);
- }
- }
-
- if (repo == null) {
- throw new IllegalArgumentException("Repository not found: " + name);
- }
-
- return repo;
- }
// TODO: Remove after CSPACE-6375 issue is resolved.
// public List<RepositoryDescriptor> getRepositoryDescriptor(String name) throws Exception {
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
</dependency>
</dependencies>
package org.collectionspace.services.client;
import javax.ws.rs.core.MediaType;
+
import org.collectionspace.services.client.PayloadOutputPart;
import org.collectionspace.services.client.PoxPayloadOut;
import org.collectionspace.services.dimension.DimensionsCommon;
*/
public class DimensionFactory {
- static private final Logger logger =
+ @SuppressWarnings("unused")
+ static private final Logger logger =
LoggerFactory.getLogger(DimensionFactory.class);
final static String SERVICE_PATH_COMPONENT = "dimensions";
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>org.collectionspace.services</groupId>
+ <artifactId>org.collectionspace.services.common</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>jersey-server</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-servlet</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-core</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>