NOTE: this also enforces ownership of each of the three databases/datasources by three respective users (jboss, nuxeo, and cspace), with associated passwords. You MUST set the environment variables: DB_PASSWORD_JBOSS, DB_PASSWORD_NUXEO, DB_PASSWORD_CSPACE in addition to DB_PASSWORD. The current default values are (still) embedded in
src/main/resources/db/mysql/init_db.sql, but this will get changed to use the environment variables as well.
Also added the jboss-ds.xml datasource configuration to our source tree to simplify managing the default jboss datasource.
<echo message="Setting the Nuxeo database templates directory ..."/>
<propertyfile file="${nuxeo.active.config.file}">
<entry key="nuxeo.templates" operation="=" value="${collectionspace.template.dir}"/>
+ <entry key="nuxeo.db.user" operation="=" value="${db.nuxeo.user}"/>
+ <entry key="nuxeo.db.password" operation="=" value="${db.nuxeo.user.password}"/>
</propertyfile>
</target>
--- /dev/null
+<?xml version="1.0"?>\r
+<component name="default-repository-config">\r
+ <extension target="org.nuxeo.ecm.core.repository.RepositoryService"\r
+ point="repository">\r
+ <repository name="default"\r
+ factory="org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryFactory">\r
+ <repository name="default">\r
+ <schema>\r
+ <field type="largetext">imd:user_comment</field> <!-- Needed for large image metadata (image_metadata) that gets inserted here. -->\r
+ <field type="largetext">note</field>\r
+ <field type="largetext">webp:content</field>\r
+ <field type="largetext">webc:welcomeText</field>\r
+ <field type="largetext">comment:comment</field>\r
+ <field type="largetext">post</field>\r
+ <field type="largetext">mail:mail</field>\r
+ \r
+ <!-- Text fields that may possibly not require largetext -->\r
+ <!-- designation and might need further review are marked as follows: -->\r
+ <!-- * -->\r
+ \r
+ <!-- =========================================================== -->\r
+ <!-- Acquisition -->\r
+ <!-- =========================================================== -->\r
+\r
+ <field type="largetext">acquisitionFundingSourceProvisos</field>\r
+ <field type="largetext">acquisitions_common:acquisitionNote</field>\r
+ <field type="largetext">acquisitions_common:acquisitionProvisos</field>\r
+ <field type="largetext">acquisitions_common:acquisitionReason</field>\r
+ <field type="largetext">acquisitions_common:creditLine</field>\r
+\r
+ \r
+ <!-- =========================================================== -->\r
+ <!-- Blob -->\r
+ <!-- =========================================================== -->\r
+\r
+ <!-- No largetext fields identified to date -->\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- CollectionObject / Cataloging -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <!-- Object Identification Information -->\r
+ <!-- ================================= -->\r
+ \r
+ <!-- FIXME: The following field may be removed from this configuration when it is confirmed -->\r
+ <!-- that the App/UI layers are using a repeatable other number group. -->\r
+ <field type="largetext">collectionobjects_common:otherNumber</field> <!-- * -->\r
+\r
+ <!-- FIXME: Change this to otherNumberValue if and when the field name itself is so changed. -->\r
+ <field type="largetext">numberValue</field> <!-- * -->\r
+\r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:briefDescriptions</field>\r
+ \r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:comments</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:distinguishingFeatures</field>\r
+ \r
+ <field type="largetext">objectNameNote</field>\r
+\r
+ <field type="largetext">title</field>\r
+ <field type="largetext">titleTranslation</field>\r
+ \r
+ <!-- Object Description Information -->\r
+ <!-- ============================== -->\r
+\r
+ <field type="largetext">collectionobjects_common:ageQualifier</field>\r
+ <field type="largetext">collectionobjects_common:color</field>\r
+ <field type="largetext">collectionobjects_common:contentDescription</field>\r
+ <field type="largetext">collectionobjects_common:contentNote</field>\r
+ <field type="largetext">collectionobjects_common:contentObject</field>\r
+ <field type="largetext">collectionobjects_common:copyNumber</field> <!-- * -->\r
+ <field type="largetext">collectionobjects_common:editionNumber</field> <!-- * -->\r
+ \r
+ <!-- FIXME: Will become group repeatable in a post-1.3 release -->\r
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->\r
+ <field type="largetext">collectionobjects_common:inscriptionContent</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentInterpretation</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentTranslation</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentTransliteration</field>\r
+ \r
+ <!-- FIXME: Will become group repeatable in a post-1.3 release -->\r
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionInterpretation</field>\r
+ \r
+ <field type="largetext">materialComponentNote</field>\r
+ <field type="largetext">materialName</field> <!-- * -->\r
+ \r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:physicalDescription</field>\r
+ \r
+ <field type="largetext">objectComponentInformation</field>\r
+\r
+ <!-- Object Production Information -->\r
+ <!-- ============================= -->\r
+ \r
+ <field type="largetext">collectionobjects_common:objectProductionNote</field>\r
+ \r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:objectProductionReason</field>\r
+\r
+ <!-- Object History and Association Information -->\r
+ <!-- ========================================== -->\r
+ \r
+ <field type="largetext">assocActivityNote</field>\r
+ <field type="largetext">assocConceptNote</field>\r
+ <field type="largetext">assocCulturalContextNote</field>\r
+ <field type="largetext">assocDateNote</field>\r
+\r
+ <!-- FIXME: Will become group repeatable in a post-1.3 release. -->\r
+ <!-- Remove the schema name(s) from the value(s) below when this occurs. -->\r
+ <field type="largetext">collectionobjects_common:assocEventName</field> <!-- * -->\r
+ <field type="largetext">collectionobjects_common:assocEventNote</field>\r
+ <field type="largetext">collectionobjects_common:assocEventType</field> <!-- * -->\r
+\r
+ <field type="largetext">assocObject</field>\r
+ <field type="largetext">assocOrganizationNote</field>\r
+ <field type="largetext">assocPeopleNote</field>\r
+ <field type="largetext">assocPersonNote</field>\r
+ <field type="largetext">assocPlaceNote</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:objectHistoryNote</field>\r
+ <field type="largetext">collectionobjects_common:ownershipExchangeNote</field>\r
+ <field type="largetext">usageNote</field>\r
+\r
+ <!-- Object Owner's Contribution Information -->\r
+ <!-- ======================================= --> \r
+ \r
+ <field type="largetext">collectionobjects_common:ownersPersonalExperience</field>\r
+ <field type="largetext">collectionobjects_common:ownersPersonalResponse</field>\r
+ \r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:ownersReference</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:ownersContributionNote</field>\r
+ \r
+ <!-- Object Viewer's Contribution Information -->\r
+ <!-- ======================================== --> \r
+ \r
+ <field type="largetext">collectionobjects_common:viewersRole</field>\r
+ <field type="largetext">collectionobjects_common:viewersPersonalExperience</field>\r
+ <field type="largetext">collectionobjects_common:viewersPersonalResponse</field>\r
+ \r
+ <!-- FIXME: multivalued field - need to verify schema and field name -->\r
+ <field type="largetext">collectionobjects_common:viewersReference</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:viewersContributionNote</field>\r
+\r
+ <!-- Reference Information -->\r
+ <!-- ===================== -->\r
+ \r
+ <field type="largetext">collectionobjects_common:catalogNumber</field> <!-- * -->\r
+ \r
+ <!-- Object Collection Information -->\r
+ <!-- ============================= --> \r
+\r
+ <field type="largetext">collectionobjects_common:fieldCollectionNote</field>\r
+ <field type="largetext">collectionobjects_common:fieldCollectionNumber</field> <!-- * -->\r
+ \r
+ <!--\r
+ Additional non-text fields configured as 'largetext' to\r
+ avoid the following error when Nuxeo is configured to use MySQL:\r
+ \r
+ com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException.\r
+ message: Row size too large. The maximum row size for the\r
+ used table type, not counting BLOBs, is 65535.\r
+ \r
+ Some of the fields below may be repeatable or in\r
+ repeatable groups, and the schema and field names\r
+ below might thus require verification to match actual values.\r
+ -->\r
+ \r
+ <field type="largetext">collectionobjects_common:objectNumber</field>\r
+ <field type="largetext">collectionobjects_common:otherNumber</field>\r
+ <field type="largetext">collectionobjects_common:otherNumberType</field>\r
+ <field type="largetext">collectionobjects_common:numberOfObjects</field>\r
+ <field type="largetext">collectionobjects_common:collection</field>\r
+ <field type="largetext">collectionobjects_common:recordStatus</field>\r
+ <field type="largetext">collectionobjects_common:age</field>\r
+ <field type="largetext">collectionobjects_common:ageQualifier</field>\r
+ <field type="largetext">collectionobjects_common:ageUnit</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:contentDate</field>\r
+ <field type="largetext">collectionobjects_common:contentLanguages</field>\r
+ <field type="largetext">collectionobjects_common:contentOrganizations</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:dimensionSummary</field>\r
+ \r
+ <!-- FIXME: The set of dimensions-related fields below may be removed -->\r
+ <!-- altogether when it is confirmed that the App/UI layers are using -->\r
+ <!-- a repeatable dimensions group. -->\r
+ <field type="largetext">collectionobjects_common:dimension</field>\r
+ <field type="largetext">collectionobjects_common:dimensionMeasuredPart</field>\r
+ <field type="largetext">collectionobjects_common:dimensionMeasurementUnit</field>\r
+ <field type="largetext">collectionobjects_common:dimensionValue</field>\r
+ <field type="largetext">collectionobjects_common:dimensionValueDate</field>\r
+ <field type="largetext">collectionobjects_common:dimensionValueQualifier</field>\r
+ \r
+ <field type="largetext">collectionobjects_common:editionNumber</field>\r
+\r
+ <field type="largetext">collectionobjects_common:inscriptionContentInscriber</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentDate</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentLanguage</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentMethod</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentPosition</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentScript</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionContentType</field>\r
+\r
+ <field type="largetext">collectionobjects_common:inscriptionDescription</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionInscriber</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionDate</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionMethod</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionPosition</field>\r
+ <field type="largetext">collectionobjects_common:inscriptionDescriptionType</field>\r
+\r
+ <field type="largetext">collectionobjects_common:objectStatus</field>\r
+ <field type="largetext">collectionobjects_common:phase</field>\r
+ <field type="largetext">collectionobjects_common:sex</field>\r
+ <field type="largetext">collectionobjects_common:ownershipAccess</field>\r
+ <field type="largetext">collectionobjects_common:ownershipCategory</field>\r
+ <field type="largetext">collectionobjects_common:ownershipDates</field>\r
+ <field type="largetext">collectionobjects_common:ownershipExchangeMethod</field>\r
+ <field type="largetext">collectionobjects_common:ownershipExchangePriceCurrency</field>\r
+ <field type="largetext">collectionobjects_common:ownershipExchangePriceValue</field>\r
+ <field type="largetext">collectionobjects_common:ownershipPlace</field>\r
+ <field type="largetext">collectionobjects_common:fieldCollectionNumber</field>\r
+ <field type="largetext">collectionobjects_common:fieldCollectionMethod</field>\r
+ <field type="largetext">collectionobjects_common:fieldCollectionPlace</field>\r
+ <field type="largetext">collectionobjects_common:fieldCollectionDate</field>\r
+ \r
+ <!-- FIXME: This sample set of date field can be removed when Cataloging -->\r
+ <!-- records are using structured date fields, or earlier when it is confirmed that -->\r
+ <!-- the App/UI layers are not using this vestigial part of the Cataloging schema. -->\r
+ <field type="largetext">collectionobjects_common:dateAssociation</field>\r
+ <field type="largetext">collectionobjects_common:dateEarliestSingle</field>\r
+ <field type="largetext">collectionobjects_common:dateEarliestSingleCertainty</field>\r
+ <field type="largetext">collectionobjects_common:dateEarliestSingleQualifier</field>\r
+ <field type="largetext">collectionobjects_common:dateLatest</field>\r
+ <field type="largetext">collectionobjects_common:dateLatestCertainty</field>\r
+ <field type="largetext">collectionobjects_common:dateLatestQualifier</field>\r
+ <field type="largetext">collectionobjects_common:datePeriod</field>\r
+ <field type="largetext">collectionobjects_common:dateText</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Contact -->\r
+ <!-- =========================================================== -->\r
+ <field type="largetext">contacts_common:addressPlace</field>\r
+ \r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Group -->\r
+ <!-- =========================================================== -->\r
+ <field type="largetext">groups_common:scopeNote</field>\r
+ \r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Intake -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">intakes_common:entryNote</field>\r
+ <field type="largetext">intakes_common:packingNote</field>\r
+ <field type="largetext">intakes_common:fieldCollectionNote</field>\r
+ <field type="largetext">intakes_common:insuranceNote</field>\r
+ <field type="largetext">intakes_common:conditionCheckNote</field>\r
+ <field type="largetext">currentLocationNote</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Loan In -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">loansin_common:loanInConditions</field>\r
+ <field type="largetext">loansin_common:loanInNote</field>\r
+ \r
+ \r
+ <!-- =========================================================== -->\r
+ <!-- Loan Out -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">loansout_common:specialConditionsOfLoan</field>\r
+ <field type="largetext">loansout_common:loanOutNote</field> \r
+ <field type="largetext">loansout_common:loanPurpose</field>\r
+ <field type="largetext">loanedObjectStatusNote</field>\r
+\r
+ \r
+ <!-- =========================================================== -->\r
+ <!-- Movement / Location and Movement Control -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">movements_common:currentLocationNote</field>\r
+ <field type="largetext">movements_common:movementNote</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Media / Media Handling -->\r
+ <!-- =========================================================== -->\r
+\r
+ <field type="largetext">media_common:copyrightStatement</field>\r
+ <field type="largetext">media_common:description</field>\r
+ <field type="largetext">media_common:title</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Note -->\r
+ <!-- =========================================================== -->\r
+\r
+ <field type="largetext">notes_common:content</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Object Exit -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">objectexit_common:exitNote</field>\r
+ <field type="largetext">objectexit_common:packingNote</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Organization -->\r
+ <!-- =========================================================== -->\r
+ \r
+ <field type="largetext">shortName</field>\r
+ <field type="largetext">longName</field>\r
+ <field type="largetext">nameAdditions</field>\r
+ <field type="largetext">historyNote</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Person -->\r
+ <!-- =========================================================== -->\r
+ <field type="largetext">persons_common:bioNote</field>\r
+ <field type="largetext">persons_common:nameNote</field>\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Relation -->\r
+ <!-- =========================================================== -->\r
+\r
+ <!-- No largetext fields identified to date -->\r
+\r
+\r
+ <!-- =========================================================== -->\r
+ <!-- Storage Location / Location -->\r
+ <!-- =========================================================== -->\r
+ <field type="largetext">locations_common:name</field>\r
+ <!-- conditionNote will be made part of a repeatable group of fields in a future release -->\r
+ <field type="largetext">locations_common:conditionNote</field>\r
+ <field type="largetext">locations_common:securityNote</field>\r
+ <field type="largetext">locations_common:accessNote</field>\r
+ \r
+ </schema>\r
+ <indexing>\r
+ <fulltext analyzer="english">\r
+ <index name="default">\r
+ <!-- all props implied -->\r
+ </index>\r
+ <index name="title">\r
+ <field>dc:title</field>\r
+ </index>\r
+ <index name="description">\r
+ <field>dc:description</field>\r
+ </index>\r
+ </fulltext>\r
+ </indexing>\r
+ </repository>\r
+ </repository>\r
+ </extension>\r
+</component>\r
--- /dev/null
+<?xml version="1.0"?>\r
+<component name="default-repository-config">\r
+ <extension target="org.nuxeo.ecm.core.repository.RepositoryService"\r
+ point="repository">\r
+ <repository name="default"\r
+ factory="org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryFactory">\r
+ <repository name="default">\r
+ <schema>\r
+ <field type="largetext">note</field>\r
+ <field type="largetext">webp:content</field>\r
+ <field type="largetext">webc:welcomeText</field>\r
+ <field type="largetext">comment:comment</field>\r
+ <field type="largetext">post</field>\r
+ <field type="largetext">mail:mail</field>\r
+ </schema>\r
+ <indexing>\r
+ <fulltext analyzer="english">\r
+ <index name="default"> \r
+ <!-- all props implied -->\r
+ </index>\r
+ <index name="title">\r
+ <field>dc:title</field>\r
+ </index>\r
+ <index name="description">\r
+ <field>dc:description</field>\r
+ </index>\r
+ </fulltext> \r
+ </indexing>\r
+ </repository>\r
+ </repository>\r
+ </extension>\r
+</component>\r
--- /dev/null
+# Jena database type and transaction mode\r
+org.nuxeo.ecm.sql.jena.databaseType=PostgreSQL\r
+org.nuxeo.ecm.sql.jena.databaseTransactionEnabled=true\r
--- /dev/null
+<?xml version="1.0"?>\r
+<connection-factories>\r
+ <tx-connection-factory>\r
+ <jndi-name>NXRepository/default</jndi-name>\r
+ <xa-transaction/>\r
+ <track-connection-by-tx/>\r
+ <adapter-display-name>Nuxeo SQL Repository DataSource</adapter-display-name>\r
+ <rar-name>nuxeo.ear#nuxeo-core-storage-sql-ra-1.6.2.rar</rar-name>\r
+ <connection-definition>org.nuxeo.ecm.core.storage.sql.Repository</connection-definition>\r
+ <config-property name="name">default</config-property>\r
+ <max-pool-size>${nuxeo.vcs.max-pool-size}</max-pool-size>\r
+ \r
+ <config-property name="xaDataSource" type="java.lang.String">org.postgresql.xa.PGXADataSource</config-property>\r
+ <config-property name="property" type="java.lang.String">ServerName=${nuxeo.db.host}</config-property>\r
+ <config-property name="property" type="java.lang.String">PortNumber/Integer=${nuxeo.db.port}</config-property>\r
+ <config-property name="property" type="java.lang.String">DatabaseName=${nuxeo.db.name}</config-property>\r
+ <config-property name="property" type="java.lang.String">User=${nuxeo.db.user}</config-property>\r
+ <config-property name="property" type="java.lang.String">Password=${nuxeo.db.password}</config-property>\r
+ </tx-connection-factory>\r
+</connection-factories>\r
--- /dev/null
+<?xml version="1.0"?>\r
+<connection-factories>\r
+ <tx-connection-factory>\r
+ <jndi-name>NXRepository/default</jndi-name>\r
+ <xa-transaction/>\r
+ <track-connection-by-tx/>\r
+ <adapter-display-name>Nuxeo SQL Repository DataSource</adapter-display-name>\r
+ <rar-name>nuxeo.ear#nuxeo-core-storage-sql-ra-1.6.2.rar</rar-name>\r
+ <connection-definition>org.nuxeo.ecm.core.storage.sql.Repository</connection-definition>\r
+ <config-property name="name">default</config-property>\r
+ <max-pool-size>${nuxeo.vcs.max-pool-size}</max-pool-size>\r
+ \r
+ <config-property name="xaDataSource" type="java.lang.String">org.postgresql.xa.PGXADataSource</config-property>\r
+ <config-property name="property" type="java.lang.String">ServerName=${nuxeo.db.host}</config-property>\r
+ <config-property name="property" type="java.lang.String">PortNumber/Integer=${nuxeo.db.port}</config-property>\r
+ <config-property name="property" type="java.lang.String">DatabaseName=${nuxeo.db.name}</config-property>\r
+ <config-property name="property" type="java.lang.String">User=${nuxeo.db.user}</config-property>\r
+ <config-property name="property" type="java.lang.String">Password=${nuxeo.db.password}</config-property>\r
+ </tx-connection-factory>\r
+</connection-factories>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<datasources>\r
+ <xa-datasource>\r
+ <jndi-name>NuxeoDS</jndi-name>\r
+ <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>\r
+ <xa-datasource-property name="ServerName">${nuxeo.db.host}</xa-datasource-property>\r
+ <xa-datasource-property name="PortNumber">${nuxeo.db.port}</xa-datasource-property>\r
+ <xa-datasource-property name="DatabaseName">${nuxeo.db.name}</xa-datasource-property>\r
+ <xa-datasource-property name="User">${nuxeo.db.user}</xa-datasource-property>\r
+ <xa-datasource-property name="Password">${nuxeo.db.password}</xa-datasource-property>\r
+ <max-pool-size>${nuxeo.db.max-pool-size}</max-pool-size> \r
+ <track-connection-by-tx/>\r
+ </xa-datasource>\r
+</datasources>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<datasources>\r
+ <xa-datasource>\r
+ <jndi-name>NuxeoDS</jndi-name>\r
+ <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>\r
+ <xa-datasource-property name="ServerName">${nuxeo.db.host}</xa-datasource-property>\r
+ <xa-datasource-property name="PortNumber">${nuxeo.db.port}</xa-datasource-property>\r
+ <xa-datasource-property name="DatabaseName">${nuxeo.db.name}</xa-datasource-property>\r
+ <xa-datasource-property name="User">${nuxeo.db.user}</xa-datasource-property>\r
+ <xa-datasource-property name="Password">${nuxeo.db.password}</xa-datasource-property>\r
+ <max-pool-size>${nuxeo.db.max-pool-size}</max-pool-size> \r
+ <track-connection-by-tx/>\r
+ </xa-datasource>\r
+</datasources>\r
--- /dev/null
+## DO NOT EDIT THIS FILE, USE nuxeo.conf ##\r
+nuxeo.template.includes=common\r
+\r
+nuxeo.db.host=localhost\r
+nuxeo.db.port=5432\r
+nuxeo.db.name=nuxeo\r
+nuxeo.db.user=nuxeo\r
+nuxeo.db.password=password\r
#nuxeo main config file\r
nuxeo.main.config.file=${jboss.bin}/nuxeo.conf\r
\r
-#database\r
+#database - select one or the other (not both!), and then uncomment the\r
+# appropriate section below the common settings\r
+#db=mysql|postgresql\r
db=mysql\r
-db.script.dir=${basedir}/src/main/resources/db/${db}\r
-db.user=${env.DB_USER}\r
-db.user.password=${env.DB_PASSWORD}\r
-db.host=localhost\r
+#For mysql, uncomment this, and comment out postgres section\r
db.port=3306\r
db.driver.jar=${jboss.lib.cspace}/mysql-connector-java-5.1.7-bin.jar\r
-db.jdbc.url=jdbc:${db}://${db.host}:${db.port}/cspace\r
db.jdbc.driver.class=com.mysql.jdbc.Driver\r
db.dialect=org.hibernate.dialect.MySQLDialect\r
+db.typemapping=mySQL\r
+db.exceptionsorter=org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter\r
+\r
+#For postgresql, uncomment this, and comment out mysql section\r
+#db.port=5432\r
+#db.driver.jar=${jboss.lib.cspace}/postgresql-8.3-604.jdbc3.jar\r
+#db.jdbc.driver.class=org.postgresql.Driver\r
+#db.dialect=org.hibernate.dialect.PostgreSQLDialect\r
+#db.typemapping=PostgreSQL 8.0\r
+#db.exceptionsorter=org.jboss.resource.adapter.jdbc.vendor.PostgreSQLExceptionSorter\r
\r
+\r
+#database common settings\r
+db.script.dir=${basedir}/src/main/resources/db/${db}\r
+db.user=${env.DB_USER}\r
+db.user.password=${env.DB_PASSWORD}\r
+db.nuxeo.user=nuxeo\r
+db.nuxeo.user.password=${env.DB_PASSWORD_NUXEO}\r
+db.cspace.user=cspace\r
+db.cspace.user.password=${env.DB_PASSWORD_CSPACE}\r
+db.jboss.user=jboss\r
+db.jboss.user.password=${env.DB_PASSWORD_JBOSS}\r
+db.host=localhost\r
+db.jdbc.baseurl=jdbc:${db}://${db.host}:${db.port}\r
+db.jdbc.jboss.url=${db.jdbc.baseurl}/jbossdb\r
+db.jdbc.nuxeo.url=${db.jdbc.baseurl}/nuxeo\r
+db.jdbc.cspace.url=${db.jdbc.baseurl}/cspace\r
\r
<!-- copy datasources -->\r
<copy todir="${basedir}/${dist.deploy.cspace}">\r
- <fileset dir="${src}/main/resources/config"/>\r
+ <fileset dir="${src}/main/resources/config/${db}"/>\r
</copy>\r
<ant antfile="3rdparty/build.xml" target="dist" inheritAll="false"/>\r
<ant antfile="services/build.xml" target="dist" inheritAll="false"/>\r
<ant antfile="services/build.xml" target="gen_ddl" inheritAll="false"/>\r
</target>\r
\r
- <target name="create_db"\r
+ <target name="create_db" \r
description="create database(s), grant privileges to test users">\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}"\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.baseurl}"\r
userid="${db.user}"\r
password="${db.user.password}"\r
src="${db.script.dir}/init_db.sql"\r
<ant antfile="services/build.xml" target="import" inheritAll="false"/>\r
</target>\r
\r
- <target name="deploy" depends="install"\r
+ <target name="deploy" depends="install,setup_jbossds.cfg,setup_cspaceds.cfg"\r
description="deploy services in ${jboss.server.cspace}">\r
<!-- copy db scripts, etc. -->\r
- <copy todir="${jboss.server.cspace}/cspace/services">\r
- <fileset dir="${src}/main/resources/"/>\r
+ <copy todir="${jboss.server.cspace}/cspace/services/scripts">\r
+ <fileset dir="${src}/main/resources/scripts/"/>\r
</copy>\r
- <!-- copy datasources -->\r
+ <!-- copy datasources, including default jboss ds -->\r
+ <!--\r
+ Now handled in dependent targets\r
<copy todir="${jboss.deploy.cspace}">\r
- <fileset dir="${src}/main/resources/config"/>\r
- </copy>\r
+ <fileset dir="${src}/main/resources/config/${db}"/>\r
+ </copy>\r
+ -->\r
<ant antfile="3rdparty/build.xml" target="deploy" inheritAll="false"/>\r
<ant antfile="services/build.xml" target="deploy" inheritAll="false"/>\r
\r
</target>\r
\r
+ <target name="setup_jbossds.cfg"\r
+ description="copy jboss-ds.xml, replacing keywords">\r
+ <property name="src.jbossds.cfg" value="${src}/main/resources/config/jboss-ds.xml"/>\r
+ <delete file="${jboss.deploy.cspace}/jboss-ds.xml" failonerror="false" />\r
+ <copy file="${src.jbossds.cfg}" todir="${jboss.deploy.cspace}">\r
+ <filterset>\r
+ <filter token="DB_URL" value="${db.jdbc.jboss.url}" />\r
+ <filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
+ <filter token="DB_USER" value="${db.jboss.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_JBOSS}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_DIALECT" value="${db.dialect}" />\r
+ <filter token="DB_TYPE_MAPPING" value="${db.typemapping}" />\r
+ <filter token="DB_EXCEPTION_SORTER" value="${db.exceptionsorter}" />\r
+ </filterset>\r
+ </copy>\r
+ </target>\r
+\r
+ <target name="setup_cspaceds.cfg"\r
+ description="copy cspace-ds.xml, replacing keywords">\r
+ <property name="src.cspaceds.cfg" value="${src}/main/resources/config/cspace-ds.xml"/>\r
+ <delete file="${jboss.deploy.cspace}/cspace-ds.xml" failonerror="false" />\r
+ <copy file="${src.cspaceds.cfg}" todir="${jboss.deploy.cspace}">\r
+ <filterset>\r
+ <filter token="DB_CSPACE_URL" value="${db.jdbc.cspace.url}" />\r
+ <filter token="DB_NUXEO_URL" value="${db.jdbc.nuxeo.url}" />\r
+ <filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
+ <filter token="DB_CSPACE_USER" value="${db.cspace.user}" />\r
+ <filter token="DB_NUXEO_USER" value="${db.nuxeo.user}" />\r
+ <filter token="DB_CSPACE_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_NUXEO_PASSWORD" value="${env.DB_PASSWORD_NUXEO}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_DIALECT" value="${db.dialect}" />\r
+ <filter token="DB_TYPE_MAPPING" value="${db.typemapping}" />\r
+ <filter token="DB_EXCEPTION_SORTER" value="${db.exceptionsorter}" />\r
+ </filterset>\r
+ </copy>\r
+ </target>\r
+\r
+\r
<target name="undeploy"\r
description="undeploy services from ${jboss.server.cspace}">\r
<ant antfile="services/build.xml" target="undeploy" inheritAll="false"/>\r
<ant antfile="3rdparty/build.xml" target="undeploy" inheritAll="false"/>\r
- <delete failonerror="false" file="${jboss.deploy.cspace}/cspace-ds.xml"/>\r
+ <!-- Delete mysql-ds.xml to clean up pre-1.8 bundles -->\r
+ <delete failonerror="false" file="${jboss.deploy.cspace}/mysql-ds.xml"/>\r
+ <delete failonerror="false" file="${jboss.deploy.cspace}/jboss-ds.xml"/>\r
+ <delete failonerror="false" file="${jboss.deploy.cspace}/cspace-ds.xml"/>\r
<delete failonerror="false" dir="${jboss.server.cspace}/cspace/services"/>\r
<delete failonerror="false" dir="${jboss.server.cspace}/cspace/config/services"/>\r
</target>\r
<property file="build.properties" />\r
<property name="src" location="src"/>\r
\r
- <property name="db" value="mysql"/>\r
+ <!-- <property name="db" value="mysql"/> -->\r
<property name="db.script.dir" location="${basedir}/db/${db}"/>\r
\r
<condition property="osfamily-unix">\r
<exec executable="echo">\r
<arg value="Installer: Creating necessary databases and associated users and privileges." />\r
</exec>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://localhost:3306/cspace"\r
- userid="root"\r
- password="admin"\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.baseurl}"\r
+ userid="${db.user}"\r
+ password="${db.user.password}"\r
src="${db.script.dir}/init_db.sql">\r
<classpath>\r
- <pathelement path="${jboss.lib.cspace}/mysql-connector-java-5.1.7-bin.jar"/>\r
+ <pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
\r
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" />\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
\r
<target name="create_db"\r
description="create tables(s), indices for account service">\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
src="${db.script.dir}/account.sql"\r
- onerror="continue"\r
- >\r
+ onerror="continue" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/account_index.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/account_index.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
- </sql>\r
+ </sql>\r
+ <!-- No longer used.\r
<sql driver="com.mysql.jdbc.Driver"\r
url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
userid="${db.user}"\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
- </sql>\r
+ </sql> -->\r
</target>\r
<target name="deploy" depends="install"\r
description="deploy account service in ${jboss.server.cspace}">\r
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
\r
<target name="create_db"\r
description="create tables(s), indices for authentication service">\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/authentication.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/authentication.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/authentication_index.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/authentication_index.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/test_authentication.sql"\r
- >\r
+ <!-- No longer used\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/test_authentication.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
- </sql>\r
+ </sql> -->\r
</target>\r
\r
<target name="deploy" depends="install"\r
<target name="setup_hibernate.cfg" description="replace property keywords in hibernate.cfg.xml" depends="install">\r
<property name="src.hibernate.cfg" value="${basedir}/src/main/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/classes/hibernate.cfg.xml"/>\r
+ <property name="src.appContext.cfg" value="${basedir}/src/main/resources/applicationContext-authorization-test.xml"/>\r
+ <property name="dest.appContext.cfg" value="${basedir}/target/classes/applicationContext-authorization-test.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <delete file="${dest.appContext.cfg}" verbose="true" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.jboss.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy tofile="${dest.hibernate.cfg}" file="${src.hibernate.cfg}" filtering="true"/>\r
+ <copy tofile="${dest.appContext.cfg}" file="${src.appContext.cfg}" filtering="true"/>\r
</target>\r
\r
\r
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/cspace"/>
- <property name="username" value="test"/>
- <property name="password" value="test"/>
+ <property name="driverClassName" value="@DB_DRIVER_CLASS@"/>
+ <property name="url" value="@DB_URL@"/>
+ <property name="username" value="@DB_USER@"/>
+ <property name="password" value="@DB_PASSWORD@"/>
</bean>
<bean id="lookupStrategy" class="org.springframework.security.acls.jdbc.BasicLookupStrategy">
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
\r
<target name="create_db"\r
description="create tables(s), indices for authorization service">\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
src="${db.script.dir}/authorization.sql"\r
- onerror="continue"\r
- >\r
+ onerror="continue" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/authorization_index.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/authorization_index.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/acl.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/acl.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
</sql>\r
+ <!-- No longer used\r
<sql driver="com.mysql.jdbc.Driver"\r
url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
src="${db.script.dir}/test_authorization.sql"\r
>\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
- </sql>\r
+ </sql> -->\r
</target>\r
\r
<target name="deploy" depends="install"\r
<target name="create_db"
description="create tables(s), indices for id service">
- <sql driver="com.mysql.jdbc.Driver"
- url="jdbc:mysql://${db.host}:${db.port}/cspace"
- userid="${db.user}"
- password="${db.user.password}"
- src="${db.script.dir}/create_id_generators_table.sql"
- >
+ <sql driver="${db.jdbc.driver.class}"
+ url="${db.jdbc.cspace.url}"
+ userid="${db.cspace.user}"
+ password="${db.cspace.user.password}"
+ src="${db.script.dir}/create_id_generators_table.sql" >
<classpath>
<pathelement path="${db.driver.jar}"/>
</classpath>
</sql>
- <sql driver="com.mysql.jdbc.Driver"
- url="jdbc:mysql://${db.host}:${db.port}/cspace"
- userid="${db.user}"
- password="${db.user.password}"
- src="${db.script.dir}/load_id_generators.sql"
- >
+ <sql driver="${db.jdbc.driver.class}"
+ url="${db.jdbc.cspace.url}"
+ userid="${db.cspace.user}"
+ password="${db.cspace.user.password}"
+ src="${db.script.dir}/load_id_generators.sql" >
<classpath>
<pathelement path="${db.driver.jar}"/>
</classpath>
<property name="src.hibernate.cfg" value="${basedir}/src/test/resources/hibernate.cfg.xml"/>\r
<property name="dest.hibernate.cfg" value="${basedir}/target/test-classes/hibernate.cfg.xml"/>\r
<delete file="${dest.hibernate.cfg}" verbose="true" />\r
- <filter token="DB_URL" value="${db.jdbc.url}" />\r
+ <filter token="DB_URL" value="${db.jdbc.cspace.url}" />\r
<filter token="DB_DRIVER_CLASS" value="${db.jdbc.driver.class}" />\r
- <filter token="DB_USER" value="${env.DB_USER}" /> <!-- double-sub from ${db.user} fails -->\r
- <filter token="DB_PASSWORD" value="${env.DB_PASSWORD}" /> <!-- double-sub from ${db.user.password} fails -->\r
+ <filter token="DB_USER" value="${db.cspace.user}" /> <!-- double-sub from ${db.user} fails -->\r
+ <filter token="DB_PASSWORD" value="${env.DB_PASSWORD_CSPACE}" /> <!-- double-sub from ${db.cspace.user.password} fails -->\r
<filter token="DB_DIALECT" value="${db.dialect}" />\r
<copy todir="${basedir}/target/test-classes" filtering="true">\r
<fileset dir="${basedir}/src/test/resources">\r
\r
<target name="create_db"\r
description="create tables(s), indices for security service">\r
- <sql driver="com.mysql.jdbc.Driver"\r
- url="jdbc:mysql://${db.host}:${db.port}/cspace"\r
- userid="${db.user}"\r
- password="${db.user.password}"\r
- src="${db.script.dir}/test_authn.sql"\r
- >\r
+ <sql driver="${db.jdbc.driver.class}"\r
+ url="${db.jdbc.cspace.url}"\r
+ userid="${db.cspace.user}"\r
+ password="${db.cspace.user.password}"\r
+ src="${db.script.dir}/test_authn.sql" >\r
<classpath>\r
<pathelement path="${db.driver.jar}"/>\r
</classpath>\r
<local-tx-datasource>
<jndi-name>CspaceDS</jndi-name>
<use-java-context>false</use-java-context>
- <connection-url>jdbc:mysql://localhost:3306/cspace</connection-url>
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <user-name>test</user-name>
- <password>test</password>
- <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
+ <connection-url>@DB_CSPACE_URL@</connection-url>
+ <driver-class>@DB_DRIVER_CLASS@</driver-class>
+ <user-name>@DB_CSPACE_USER@</user-name>
+ <password>@DB_CSPACE_PASSWORD@</password>
+ <exception-sorter-class-name>@DB_EXCEPTION_SORTER@</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
- <type-mapping>mySQL</type-mapping>
+ <type-mapping>@DB_TYPE_MAPPING@</type-mapping>
</metadata>
</local-tx-datasource>
<local-tx-datasource>
<jndi-name>NuxeoDS</jndi-name>
<use-java-context>false</use-java-context>
- <connection-url>jdbc:mysql://localhost:3306/nuxeo</connection-url>
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <user-name>test</user-name>
- <password>test</password>
- <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
+ <connection-url>@DB_NUXEO_URL@</connection-url>
+ <driver-class>@DB_DRIVER_CLASS@</driver-class>
+ <user-name>@DB_NUXEO_USER@</user-name>
+ <password>@DB_NUXEO_PASSWORD@</password>
+ <exception-sorter-class-name>@DB_EXCEPTION_SORTER@</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
- <type-mapping>mySQL</type-mapping>
+ <type-mapping>@DB_TYPE_MAPPING@</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!-- $Id: mysql-ds.xml 71535 2008-04-01 07:05:03Z adrian@jboss.org $ -->\r
+<!-- Datasource config for MySQL using 3.0.9 available from:\r
+http://www.mysql.com/downloads/api-jdbc-stable.html\r
+-->\r
+\r
+<datasources>\r
+ <local-tx-datasource>\r
+ <jndi-name>DefaultDS</jndi-name>\r
+ <connection-url>@DB_URL@</connection-url>\r
+ <driver-class>@DB_DRIVER_CLASS@</driver-class>\r
+ <user-name>@DB_USER@</user-name>\r
+ <password>@DB_PASSWORD@</password>\r
+ <!--\r
+ If and when there is a reliable Postgres exception sorter, can enable this\r
+ and remove the new-connect-sql\r
+ <exception-sorter-class-name>@DB_EXCEPTION_SORTER@</exception-sorter-class-name>\r
+ <new-connection-sql>select 1</new-connection-sql>\r
+ <check-valid-connection-sql>select 1</check-valid-connection-sql>\r
+ -->\r
+ <metadata>\r
+ <type-mapping>@DB_TYPE_MAPPING@</type-mapping>\r
+ </metadata>\r
+ </local-tx-datasource>\r
+</datasources>\r
+\r
--\r
-- grant privileges to test user on nuxeo and jbossdb databases\r
--\r
-GRANT ALL PRIVILEGES ON jbossdb.* TO 'test'@'localhost' IDENTIFIED BY 'test' WITH GRANT OPTION;\r
+GRANT ALL PRIVILEGES ON jbossdb.* TO 'jboss'@'localhost' IDENTIFIED BY 'jbpw' WITH GRANT OPTION;\r
FLUSH PRIVILEGES;\r
-GRANT ALL PRIVILEGES ON cspace.* TO 'test'@'localhost' IDENTIFIED BY 'test' WITH GRANT OPTION;\r
+GRANT ALL PRIVILEGES ON cspace.* TO 'cspace'@'localhost' IDENTIFIED BY 'cspw' WITH GRANT OPTION;\r
FLUSH PRIVILEGES;\r
-GRANT ALL PRIVILEGES ON nuxeo.* TO 'test'@'localhost' IDENTIFIED BY 'test' WITH GRANT OPTION;\r
+GRANT ALL PRIVILEGES ON nuxeo.* TO 'nuxeo'@'localhost' IDENTIFIED BY 'nuxpw' WITH GRANT OPTION;\r
--\r
-- Grant privileges to read-only user on Nuxeo, for reporting. \r
--\r
--- /dev/null
+-- drop all the objects before dropping roles\r
+DROP database IF EXISTS jbossdb;\r
+DROP database IF EXISTS cspace;\r
+DROP database IF EXISTS nuxeo;\r
+\r
+DROP USER IF EXISTS nuxeo;\r
+DROP USER IF EXISTS cspace;\r
+DROP USER IF EXISTS jboss;\r
+\r
+CREATE ROLE nuxeo WITH PASSWORD 'nuxpw' LOGIN;\r
+CREATE ROLE cspace WITH PASSWORD 'cspw' LOGIN;\r
+CREATE ROLE jboss WITH PASSWORD 'jbpw' LOGIN;\r
+CREATE ROLE reader WITH PASSWORD 'read' LOGIN;\r
+\r
+--\r
+-- recreate jbossdb, cspace, and nuxeo databases\r
+--\r
+CREATE database jbossdb OWNER jboss;\r
+CREATE DATABASE cspace ENCODING 'UTF8' OWNER cspace;\r
+CREATE DATABASE nuxeo ENCODING 'UTF8' OWNER nuxeo;\r
+\r
+--\r
+-- Grant privileges to read-only user on Nuxeo, for reporting. \r
+--\r
+-- GRANT SELECT ON ALL TABLES IN DATABASE nuxeo TO reader;\r
+-- Will have to do this with a script after the nuxeo DB has been started,\r
+-- since there is no wildcard syntax for grants (!). If nuxeo used a schema, \r
+-- it would be easy. Check that.\r