Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Changed Acquisition method into a controlled list field
Wiki Markup
{composition-setup}{composition-setup}

1. changed the <options> ... </options> section to the acquisitionMethod definition in base-procedure-acquisition.xmlunmigrated-inline-wiki-markup

{toggle-cloak:id=a11}
Wiki Markup
{cloak:id=a11}
Code Block
controlstrue
languagexml
linenumberstrue
<field id="acquisitionMethod" seperate_ui_container="true">
	<selector>acquisition-acquisition-method</selector>
	<options>
		<option id="gift" default="yes">Gift</option>
		<option id="purchase">Purchase</option>
		<option id="bequest">Bequest</option>
		<option id="loan">Loan</option>
		<option id="restrictedgifts">Restricted Gifts</option>
	</options>
</field>
Note

Note the string structure for the term list options: all lower-case and no space between words.

Wiki Markup
{cloak}

2. build using mini-build script

Wiki Markup
{toggle-cloak:id=a12}

Wiki Markup
{cloak:id=a12}
Code Block
controls
Code Block
controlstrue
languagexml
linenumberstrue
cd /tmp/tenant-customizations-v1.9/application
ant deploy

Then restart cspace server.

...

...

{cloak}
Add new text field:
Extent

...

  • a. add a custom acquisition schema file acquisitions_mmi.xsd with new field name acquisitionExtent

    Wiki Markup
    {toggle-cloak:id=a21a}

    Wiki Markup
    {cloak:id=a21a}
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <!--
        MMI Acquisition schema (XSD)
        Entity  : Acquisition
        Part    : Local - Museum of the Moving Image (MMI)
        Used for: Nuxeo EP core document type
        $LastChangedRevision: $
        $LastChangedDate: $
    -->
    <xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:ns="http://collectionspace.org/services/acquisition/local/mmi"
        xmlns="http://collectionspace.org/services/acquisition/local/mmi"
        targetNamespace="http://collectionspace.org/services/acquisition/local/mmi"
        version="0.1">
        <xs:element name="acquisitionExtent" type="xs:string"/>
    </xs:schema>
    
    Wiki Markup
    {cloak}

  • b. edit MANIFEST.MF to reference new mmi module

    Wiki Markup
    {toggle-cloak:id=a21b}

    Wiki Markup
    {cloak:id=a21b}
    Note references to Note references to lowercase mmi tenant string name on lines 3, 4, and 18.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    Manifest-Version: 1.0
    Bundle-ManifestVersion: 1
    Bundle-Name: org.collectionspace.acquisitiontenant42
    Bundle-SymbolicName: org.collectionspace.acquisitiontenant42;singleton:=true
    Bundle-Version: 1.0.0
    Bundle-Localization: plugin
    Bundle-Vendor: Nuxeo
    Require-Bundle: org.nuxeo.runtime,
     org.nuxeo.ecm.core.api,
     org.nuxeo.ecm.core,
     org.nuxeo.ecm.core.api,
     org.nuxeo.ecm.platform.types.api,
     org.nuxeo.ecm.platform.versioning.api,
     org.nuxeo.ecm.platform.ui,
     org.nuxeo.ecm.platform.forms.layout.client,
     org.nuxeo.ecm.platform.ws,
     org.collectionspace.collectionspace_core
    Provide-Package: org.collectionspace.acquisitiontenant42
    Nuxeo-Component: OSGI-INF/core-types-contrib.xml,
      OSGI-INF/life-cycle-contrib.xml,
      OSGI-INF/ecm-types-contrib.xml,
      OSGI-INF/layouts-contrib.xml
    
    Wiki Markup
    {cloak}

  • c. add a custom schema to parent document type core-types-contrib.xml and reference new acquisition schema

    Wiki Markup
    {toggle-cloak:id=a21c}

    Wiki Markup
    {cloak:id=a21c}
    Note reference to mmi schema names and tenant string names on line 2, 4, 7 and 16.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0"?>
    <component name="org.collectionspace.AcquisitionTenant42.coreTypes">
      <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
        <schema name="acquisitions_mmi" prefix="acquisitions_mmi" src="schemas/acquisitions_mmi.xsd"/>
      </extension>
      <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
        <doctype name="AcquisitionTenant42" extends="Acquisition">
          <schema name="common"/>
          <schema name="dublincore"/>
          <schema name="collectionspace_core"/>
          <schema name="acquisitions_common"/>
          <schema name="acquisitions_mmi"/>
          <prefetch>
            acquisitions_common:acquisitionReferenceNumber
            acquisitions_common:acquisitionSources
            acquisitions_common:owners</prefetch>      
        </doctype>
      </extension>
    </component>
    
    Wiki Markup
    {cloak}

  • dd. edit ecm-types-contrib.xml to reference new mmi component

    Wiki Markup{toggle-cloak:id=a21d}

    Wiki Markup
    {cloak:id=a21d}
    Note reference to mmi tenant string name on lines 2, 4, 5, 11, 17 and 23.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0"?>
    <component name="org.collectionspace.AcquisitionTenant42.ecm.types">
      <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
        <type id="AcquisitionTenant42" coretype="AcquisitionTenant42">
          <label>org.collectionspace.AcquisitionTenant42</label>
          <!--icon>/icons/file.gif</icon-->
          <default-view>view_documents</default-view>
    
          <layouts mode="any">
            <layout>heading</layout>
            <layout>collectionspace_core</layout>
            <layout>AcquisitionTenant42</layout>
          </layouts>
        </type>
    
        <type id="Folder" coretype="Folder">
          <subtypes>
            <type>AcquisitionTenant42</type>
          </subtypes>
        </type>
    
        <type id="Workspace" coretype="Workspace">
          <subtypes>
            <type>AcquisitionTenant42</type>
          </subtypes>
        </type>
    
      </extension>
    </component>
    
    Wiki Markup
    {cloak}

  • e. edit layouts-contrib.xml to reference new mmi component

    Wiki Markup
    {toggle-cloak:id=a21e}

    Wiki Markup
    {cloak:id=a21e}
    Note reference to mmi tenant string name on lines 3 and 8. Code Blockcontrols Note reference to mmi tenant string name on lines 3 and 8.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0"?>
    
    <component name="org.collectionspace.AcquisitionTenant42.layouts.webapp">
    
      <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
        point="layouts">
    
        <layout name="AcquisitionTenant42">
          <templates>
    
    ...
    
    Wiki Markup
    {cloak}

  • f. edit life-cycle-contrib.xml to reference new mmi component

    Wiki Markup
    {toggle-cloak:id=a21f}

    Wiki Markup
    {cloak:id=a21f}
    Note reference to mmi tenant string name on lines 2 and 7. Code Block Note reference to mmi tenant string name on lines 2 and 7.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0"?>
    <component name="org.collectionspace.ecm.platform.AcquisitionTenant42.LifeCycleManagerExtensions">
    
      <extension target="org.nuxeo.ecm.core.lifecycle.LifeCycleService"
                 point="types">
        <types>
          <type name="AcquisitionTenant42">default</type>
        </types>
      </extension>
    
    </component>
    
    Wiki Markup
    {cloak}

  • g. edit 3rdparty/nuxeo-platform-cs-acquisition-mmi/build.xml so to build the custom sub-module

    Wiki Markup
    {toggle-cloak:id=a21g}

    Wiki Markup
    {cloak:id=a21g}
    Note reference to mmi project name on line 1, and tenant string name on lines 13 and 15.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <project name="nuxeo-platform-cs-acquisition-mmi" default="package" basedir=".">
        <description>
            acquisition nuxeo document type
        </description>
        <!-- set global properties for this build -->
        <property name="services.trunk" value="../../../.."/>
        <!-- environment should be declared before reading build.properties -->
        <property environment="env" />
        <property file="${services.trunk}/build.properties" />
        <property name="mvn.opts" value="" />
        <property name="src" location="src"/>
        <property name="nuxeo.acquisition.jar"
            value="org.collectionspace.services.AcquisitionTenant42.3rdparty.nuxeo-${cspace.release}.jar"/>
        <property name="nuxeo.acquisition.jars.all"
            value="org.collectionspace.services.AcquisitionTenant42.3rdparty.nuxeo-*.jar"/>
    
    ...
    
    Wiki Markup
    {cloak}

  • h. edit h. edit 3rdparty/nuxeo-platform-cs-acquisition-mmi/pom.xml to reference new mmi component

    unmigrated-inline-wiki-markup

    {toggle-cloak:id=a21h}

    Wiki Markup
    {cloak:id=a21h}
    Note reference to mmi tenant string name on lines 12, 13, and description on line 15.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <parent>
            <groupId>org.collectionspace.services</groupId>
            <artifactId>org.collectionspace.services.acquisition.3rdparty</artifactId>
            <version>1.9-SNAPSHOT</version>
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.collectionspace.services</groupId>
        <artifactId>org.collectionspace.services.AcquisitionTenant42.3rdparty.nuxeo</artifactId>
        <name>services.AcquisitionTenant42.3rdparty.nuxeo</name>
        <packaging>jar</packaging>
        <description> MMI Acquisition Nuxeo Document Type </description>
    
    ...
    
    Wiki Markup
    {cloak}

  • i. edit 3rdparty/build.xml so to build the custom sub-module

    Wiki Markup
    {toggle-cloak:id=a21i}

    Wiki Markup
    {cloak:id=a21i}
    {align:mode|class=myclass} Note reference to {{mmi}} custom module on lines 11, 116, 122 and 128. {newcode:language=xml|linenumbers=true|controls=true}
    Wiki Markup
    Align
    alignmode
    classmyclass

    Note reference to mmi custom module on lines 11, 116, 122 and 128.

    Code Block
    controlstrue
    languagexml
    linenumberstrue
    
    <project name="acquisition.3rdparty" default="package" basedir=".">
        <description>
            acquisition service 3rdparty
        </description>
      <!-- set global properties for this build -->
        <property name="services.trunk" value="../../.."/>
        <!-- enviornment should be declared before reading build.properties -->
        <property environment="env" />
        <property file="${services.trunk}/build.properties" />
        <property name="nuxeo-platform-acquisition" value="nuxeo-platform-acquisition"/>
        <property name="nuxeo-platform-acquisition-mmi" value="nuxeo-platform-acquisition-mmi"/>
    
    ...
    
    {newcode}

    and

    further

    down

    the

    file {newcode:language=xml|linenumbers=true|controls=true|firstline=113}

    file

    Code Block
    controlstrue
    languagexml
    firstline113
    linenumberstrue
    
        <target name="deploy" depends="install"
            description="deploy acquisition in ${jboss.server.nuxeo}">
            <ant antfile="nuxeo-platform-cs-acquisition/build.xml" target="deploy" inheritall="false"/>
            <ant antfile="nuxeo-platform-cs-acquisition-mmi/build.xml" target="deploy" inheritall="false"/>
        </target>
    
        <target name="undeploy"
            description="undeploy acquisition from ${jboss.server.nuxeo}">
            <ant antfile="nuxeo-platform-cs-acquisition/build.xml" target="undeploy" inheritall="false"/>
            <ant antfile="nuxeo-platform-cs-acquisition-mmi/build.xml" target="undeploy" inheritall="false"/>
        </target>
    
        <target name="dist"
            description="generate distribution for acquisition" depends="package">
            <ant antfile="nuxeo-platform-cs-acquisition/build.xml" target="dist" inheritall="false"/>
            <ant antfile="nuxeo-platform-cs-acquisition-mmi/build.xml" target="dist" inheritall="false"/>
        </target>
    
    
    </project>
    
    {newcode} {align}
    Wiki Markup
    {cloak}

  • j. edit 3rdparty/pom.xml to reference new mmi component

    Wiki Markup
    {toggle-cloak:id=a21j}

    Wiki Markup
    {cloak:id=a21j}
    Note reference to mmi custom module on line 21.
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <parent>
            <groupId>org.collectionspace.services</groupId>
            <artifactId>org.collectionspace.services.acquisition</artifactId>
            <version>1.9-SNAPSHOT</version>
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.collectionspace.services</groupId>
        <artifactId>org.collectionspace.services.acquisition.3rdparty</artifactId>
        <packaging>pom</packaging>
        <name>services.acquisition.3rdparty</name>
        <description>
            3rd party build for acquisition service
        </description>
    
        <modules>
            <module>nuxeo-platform-cs-acquisition</module>
            <module>nuxeo-platform-cs-acquisition-mmi</module>
        </modules>
    </project>
    
    Wiki Markup
    {cloak}

  • kk. add schema extension to tenant binding tenant-bindings-delta.xml

    Wiki Markup
    {toggle-cloak:id=a21k}

    Wiki Markup
    {cloak:id=a21k}
    unmigrated-inline-wiki-markup
    Code Block
    controlstrue
    languagexml
    linenumberstrue
    <?xml version="1.0" encoding="UTF-8"?>
    <tenant:TenantBindingConfig
            xmlns:merge='http://xmlmerge.el4j.elca.ch'
            xmlns:tenant='http://collectionspace.org/services/common/tenant'>
                     
        <tenant:tenantBinding id="42" name="movingimage.us" displayName="MovingImage CollectionSpace Tenant" version="0.1">
            <tenant:repositoryDomain name="default-domain" storageName="mmi-domain" repositoryClient="nuxeo-java" />
                     <!-- Acquisition -->
    		 <tenant:serviceBindings merge:matcher="id" id="Acquisitions">
                    <service:object xmlns:service="http://collectionspace.org/services/common/service" >
                            <service:part id="42" merge:matcher="skip" merge:action="insert" control_group="Managed" versionable="true" auditable="false" label="acquisitions_mmi" updated="" order="42">
                              <service:content contentType="application/xml">
                                    <service:xmlContent namespaceURI="http://collectionspace.org/services/acquisition/local/mmi" schemaLocation="http://collectionspace.org/services/acquisition/local/mmi http://collectionspace.org/services/acquisition/local/acquisitions_mmi.xsd" />
                              </service:content>
                            </service:part>
                    </service:object>
            </tenant:serviceBindings>
    		
        </tenant:tenantBinding>
                           
    </tenant:TenantBindingConfig>
    
    {cloak}

2. add field id and selector to domain-procedure-acquisition.xml

Wiki Markup
{toggle-cloak:id=a22}

unmigrated-inline-wiki-markup

{cloak:id=a22}

Note the section attribute for the new field. Every new field will have this identifying attribute.

Code Block
controlstrue
languagexml
linenumberstrue
<section id="domaindata">
        <field id="acquisitionExtent" section="mmi">
                <selector>acquisition-acquisitionExtent</selector>
        </field>
</section>
Wiki Markup
{cloak}

3. edit base-procedure-acquisition.xml to point to new schema

Wiki Markup
{toggle-cloak:id=a23}

Wiki Markup{cloak:id=a23}3. edit base-procedure-acquisition.xml to point to new schema

Note the id attribute on line 5. This connects with the section attribute from the domain-procedure-acquisition.xml file.

Code Block
controlstrue
languagexml
linenumberstrue
<record id="acquisition" in-findedit="yes" type="record,procedure">
     <services-url>acquisitions</services-url>
     <services-tenant-singular>Acquisition</services-tenant-singular>
     <services-list-path>abstract-common-list/list-item</services-list-path>
     <services-record-path id="mmi">acquisitions_mmi:http://collectionspace.org/services/acquisition/local/mmi,acquisitions_mmi</services-record-path>
     <services-record-path>acquisitions_common:http://collectionspace.org/services/acquisition,acquisitions_common</services-record-path>
     <services-record-path id="collectionspace_core">collectionspace_core:http://collectionspace.org/collectionspace_core/,collectionspace_core</services-record-path>

...
Wiki Markup
{cloak}

4. add field label to core-messages.properties

Wiki Markup
{toggle-cloak:id=a24}

Wiki Markup
{cloak:id=a24}
Code Block
controlstrue
languagexml
linenumberstrue
acquisition-acquisitionExtentLabel: Extent
Wiki Markup
{cloak} Extent

5. add html for new field to AcquisitionTemplate.html Wiki Markup{toggle-cloak:id=a25}

Wiki Markup
{cloak:id=a25}
Code Block
controlstrue
languagehtml
linenumberstrue
<div class="info-pair">
   <div class="header">
       <div class="label csc-acquisition-acquisitionExtent-label">Extent</div>
   </div>
   <div class="content">
        <input type="text" class="csc-acquisition-acquisitionExtent" />
   </div>
</div>
Wiki Markup
{cloak}

6. run mini-build scripts to deploy changes across all layers and then build & deploy updated services module from source

Wiki Markup
{toggle-cloak:id=a26}

Wiki Markup{cloak:id=a26}all layers and then build & deploy updated services module from source

Code Block
controlstrue
languagexml
linenumberstrue
cd /tmp/tenant-customizations-v1.9/application
ant deploy
cd /tmp/tenant-customizations-v1.9/ui
ant deploy
cd /tmp/v1.9/services/acquisition
mvn clean install -DskipTests
cd /tmp/v1.9/services/
ant undeploy deploy
Wiki Markup
{cloak}

7. Testing new field with payload

Wiki Markup
{toggle-cloak:id=a27}

Wiki Markup
{cloak:id=a27}

sample.xml

Code Block
controlstrue
languagexml
linenumberstrue
<?xml version="1.0" encoding="utf-8"?>
<document name="acquisitions">
 <ns2:acquisitions_common
xmlns:ns2="http://collectionspace.org/services/acquisition"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <titleGroupList>
     <titleGroup>
       <title>A title</title>
     </titleGroup>
   </titleGroupList>
   <acquisitionReferenceNumber>2011.2.5</acquisitionReferenceNumber>
 </ns2:acquisitions_common>
 <ns2:acquisitions_mmi xmlns:ns2="http://collectionspace.org/services/acquisition/local/mmi"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <acquisitionExtent>foobar</acquisitionExtent>
 </ns2:acquisitions_mmi>
</document>

...

Code Block
controlstrue
linenumberstrue
curl -i -u admin@movingimage.us:Administrator -X POST \
-H "Content-Type: application/xml" \
http://localhost:8180/cspace-services/acquisitions \
-T sample.xml
Wiki Markup
{cloak}
Removed two fields:
Transfer of title number and Field Collection event name

1. Commented out references in base-procedure-acquisition.xml

Wiki Markup
{toggle-cloak:id=a31}

unmigrated-inline-wiki-markup

{cloak:id=a31}
Code Block
controlstrue
languagexml
firstline184
linenumberstrue
<section id="objectCollectionInformation">
        <!--<repeat id="fieldCollectionEventNames">
             <selector>acquisition-fieldCollectionEventName</selector>
             <field id="fieldCollectionEventName"></field>
        </repeat>-->
</section>
Code Block
controlstrue
languagexml
firstline106
linenumberstrue
<!--<field id="transferOfTitleNumber" datatype="largetext">
          <selector>acquisition-transfer-of-title-number</selector>
</field>-->
Wiki Markup
{cloak}

2. Removed references in core-messages.properties

Wiki Markup
{toggle-cloak:id=a32}

Wiki Markup
{cloak:id=a32}/field>-->

2. Removed references in core-messages.properties

Code Block
controlstrue
languagexml
firstline99
linenumberstrue
#acquisition-fieldCollectionEventNamesLabel: Field collection event name
#acquisition-transferOfTitleNumberLabel: Transfer of Title Number
Wiki Markup
{cloak}

3. Removed reference in AcquisitionTemplate.html

4. run mini-build scripts to deploy changes across app and ui layers

Wiki Markup
{toggle-cloak:id=a34}

Wiki Markup
{cloak:id=a34}
Code Block
cd /tmp/tenant-customizations-v1.9/application
ant deploy
cd /tmp/tenant-customizations-v1.9/ui
ant deploy

re-init application layer: collectionspace/chain/init
Wiki Markup
{cloak}