]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-3546, CSPACE-2903, CSPACE-2421, CSPACE-2170, CSPACE-2000, CSPACE-1894. Reworki...
authorPatrick Schmitz <pschmitz@berkeley.edu>
Tue, 7 Jun 2011 16:27:51 +0000 (16:27 +0000)
committerPatrick Schmitz <pschmitz@berkeley.edu>
Tue, 7 Jun 2011 16:27:51 +0000 (16:27 +0000)
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.

25 files changed:
3rdparty/nuxeo/nuxeo-database-templates/build.xml
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml.orig [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/sql.properties [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml.orig [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml.orig [new file with mode: 0644]
3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/nuxeo.defaults [new file with mode: 0644]
build.properties
build.xml
installer/build.xml
services/account/client/build.xml
services/account/pstore/build.xml
services/authentication/client/build.xml
services/authentication/pstore/build.xml
services/authorization-mgt/import/build.xml
services/authorization-mgt/import/src/main/resources/applicationContext-authorization-test.xml
services/authorization/pstore/build.xml
services/id/service/build.xml
services/security/client/build.xml
src/main/resources/config/cspace-ds.xml
src/main/resources/config/jboss-ds.xml [new file with mode: 0644]
src/main/resources/db/mysql/init_db.sql
src/main/resources/db/postgresql/init_db.sql [new file with mode: 0644]

index e015286f88271a9bb57fb9cfb9b80dafaeb0f405..f2a1e73b4a042493eb0e75ff6d5989213e8ba488 100644 (file)
@@ -45,6 +45,8 @@
         <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>
     
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml
new file mode 100644 (file)
index 0000000..bde5bdb
--- /dev/null
@@ -0,0 +1,371 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml.orig b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/default-repository-config.xml.orig
new file mode 100644 (file)
index 0000000..75bb6f9
--- /dev/null
@@ -0,0 +1,32 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/sql.properties b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/config/sql.properties
new file mode 100644 (file)
index 0000000..289bbf2
--- /dev/null
@@ -0,0 +1,3 @@
+# Jena database type and transaction mode\r
+org.nuxeo.ecm.sql.jena.databaseType=PostgreSQL\r
+org.nuxeo.ecm.sql.jena.databaseTransactionEnabled=true\r
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml
new file mode 100644 (file)
index 0000000..d4049ce
--- /dev/null
@@ -0,0 +1,20 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml.orig b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/default-repository-ds.xml.orig
new file mode 100644 (file)
index 0000000..d4049ce
--- /dev/null
@@ -0,0 +1,20 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml
new file mode 100644 (file)
index 0000000..517e34a
--- /dev/null
@@ -0,0 +1,14 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml.orig b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/datasources/unified-nuxeo-ds.xml.orig
new file mode 100644 (file)
index 0000000..517e34a
--- /dev/null
@@ -0,0 +1,14 @@
+<?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
diff --git a/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/nuxeo.defaults b/3rdparty/nuxeo/nuxeo-database-templates/postgresql/collectionspace_postgresql/nuxeo.defaults
new file mode 100644 (file)
index 0000000..f2df119
--- /dev/null
@@ -0,0 +1,8 @@
+## 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
index 7716220163e58c0c1cf32335b6a3b3966a06bf2f..ddceb388b9450f9885f5a18ecae7b2f0ec695980 100644 (file)
@@ -65,15 +65,39 @@ nuxeo.templates.dir=${jboss.home}/${nuxeo.templates}
 #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
index 849b79fb2e7776160d8d8db392e0f3575a6e4d35..8d149d9778ff777d5b2cd6c4607bc4d24fe1cc9d 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -34,7 +34,7 @@
 \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
index 3b4014dd3d954ab5431cc8d92f0c82226c45fa67..73021a7174c41856291c78f4d32b0bf5fc988867 100644 (file)
@@ -8,7 +8,7 @@
     <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
index a51d2431df40280aae991b9d1dd00157f5a82aa9..633b8e16171244020a4b19357177b4250fe60859 100644 (file)
         <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
index c158ba18b02e11810a67d50ebdb50d326620b763..12827d7303decb4e1e7c7a2022be59ce17389569 100644 (file)
         <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
index d379ef97926725b31e39b77e4e67d2e3a3a7c2d6..26abbbff8e98b786c54d50d236afe8f195763bf9 100644 (file)
         <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
index 5d2473e151dcebd89841afc9b4c34fdf09150cdd..dda450f8353c3d3c43d7e834b80ffcb495255506 100644 (file)
         <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
index 6b55f19a83ed33878b050eba030ad409e73579fc..f328d3d413f5c22733cf260b012d9df8265299bc 100644 (file)
     <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
index 2dcbb630bc8be2de3b3435f992f5e96ca7dcdedc..f394cefdca93fd7419ae25dd3b7a96f682f52d1b 100644 (file)
     </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">
index ad2bbcef01a2b5da6df32a3252f3410110111f7f..ef4ea09c50e4920190d7e96ea9a2b687c02bc5ba 100644 (file)
         <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
index d38027be6f7702cf923c9d33d3d25d2988b068db..5c024266f819974d6cee0a7c25ddc11b5d7d4b5c 100644 (file)
 
     <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>
index 736790c2fe6b494bb85188038f7e0506ecccedfd..4c3cb31a4ff145e917138557e8ce2c6cc2ff6f91 100644 (file)
         <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
index b8bd83d222027b850ce46ee246092f19d9523ce3..d4831c2e7b1e26b48f0aacccb30c3b06a831fc2c 100644 (file)
@@ -9,11 +9,11 @@ http://www.mysql.com/downloads/api-jdbc-stable.html
   <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>
     -->
@@ -26,17 +26,17 @@ http://www.mysql.com/downloads/api-jdbc-stable.html
 
     <!-- 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>
     -->
@@ -49,7 +49,7 @@ http://www.mysql.com/downloads/api-jdbc-stable.html
 
     <!-- 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>
diff --git a/src/main/resources/config/jboss-ds.xml b/src/main/resources/config/jboss-ds.xml
new file mode 100644 (file)
index 0000000..e315846
--- /dev/null
@@ -0,0 +1,27 @@
+<?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
index 03e8875e4a87403bb9f9b24695366f7460c01d98..18cf584bbe11ae8ccfdd6d260503f866cdd4709e 100644 (file)
@@ -32,11 +32,11 @@ CREATE database nuxeo DEFAULT CHARACTER SET utf8;
 --\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
diff --git a/src/main/resources/db/postgresql/init_db.sql b/src/main/resources/db/postgresql/init_db.sql
new file mode 100644 (file)
index 0000000..0d44a49
--- /dev/null
@@ -0,0 +1,28 @@
+-- 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