Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

This online supplement to the documentation for version 3.0 .0 of the Open eGov MessageHandler  shows concrete configuration examples. Please refer to the documentation for details of the configurations options.

...

Code Block
languagehtml/xml
titleconfig.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case1/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case1/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case1/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case1/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case1/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case1/application"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/5 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/5 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/5 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case1/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <nativeApp participantId="T7-4-1" > <!-- die lokale sedexId -->
        <outbox dirPath="outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case1/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
        </outbox>
        <inbox dirPath="inbox" msgTypes="10301"/>
    </nativeApp>
</config>

...

Code Block
languagehtml/xml
titleconfig.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case2/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case2/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case2/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case2/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case2/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case2"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case2/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <nativeApp participantId="T7-4-2" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationA/outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case2/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
        </outbox>
        <inbox dirPath="applicationA/inbox" msgTypes="10301"/>
    </nativeApp>
    <nativeApp participantId="T7-4-3" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationB/outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case2/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
        </outbox>
        <inbox dirPath="applicationB/inbox" msgTypes="10301"/>
    </nativeApp>
</config>

...

Code Block
languagehtml/xml
titleconfig.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case3/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case3/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case3/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case3/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case3/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case3"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case3/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <nativeApp participantId="T7-4-1" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationA/outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case3/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
        </outbox>
        <inbox dirPath="applicationA/inbox" msgTypes="10301"/>
    </nativeApp>
    <transparentApp participantId="T7-4-1" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationB/outbox" />
        <inbox dirPath="applicationB/inbox" msgTypes="112"/>
        <receipts dirPath="applicationB/receipts" msgTypes="112"/>
    </transparentApp>
</config>

...

Code Block
languagehtml/xml
titleconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case4/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case4/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case4/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case4/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case4/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case4"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case4/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <transparentApp participantId="T7-4-2" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationA/outbox" /> 
        <inbox dirPath="applicationA/inbox" msgTypes="112"/>
        <receipts dirPath="applicationA/receipts" msgTypes="112"/>
    </transparentApp>
    <transparentApp participantId="T7-4-3" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationB/outbox" />
        <inbox dirPath="applicationB/inbox" msgTypes="112"/>
        <receipts dirPath="applicationB/receipts" msgTypes="112"/>
    </transparentApp>
</config>

...

Code Block
languagehtml/xml
titleconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
    xmlns="http://msghandler.suis.admin.ch/xmlns/config"
    version="3.01">
    
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case5/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case5/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case5/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case5/sedex/sent</sentDir>
    </sedexAdapter>
    
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
            corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case5/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case5"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case5/mh/working-dir/db" 
            dataHoldTimeInDays="2" resend="true"/>
        <localRecipients>
            <localRecipient recipientId="T7-4-2" msgTypes="112" />
            <localRecipient recipientId="T7-4-3" msgTypes="112" />
        </localRecipients>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    
    <transparentApp participantId="T7-4-2" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationA/outbox" />
        <inbox dirPath="applicationA/inbox" msgTypes="112"/>
        <receipts dirPath="applicationA/receipts" msgTypes="112"/>
    </transparentApp>
    
    <transparentApp participantId="T7-4-3" > <!-- die lokale sedexId -->
        <outbox dirPath="applicationB/outbox" />
        <inbox dirPath="applicationB/inbox" msgTypes="112"/>
        <receipts dirPath="applicationB/receipts" msgTypes="112"/>
    </transparentApp>
</config>

...

  • One eSchKG/e-LP/e-LEF application (message type = 10301) has to be connected to the sedex network.
  • The application uses a single signing outbox to sign PDF files by the MHThe configuration parameter for signing will be read from the sedex certificate configuration file (CertificateConfiguration.xml).
  • One nativeApp -> Native Mode.

...

Code Block
titleDirectory structure
/mh_examples/case6/
.
+-- application
¦   +-- inbox
¦   +-- outbox
¦   +-- processed
¦   +-- signing-outbox
+-- log
¦   +-- mh
¦   +-- sedex
+-- mh
¦   +-- install-dir
¦   ¦   +-- bin
¦   ¦   +-- conf
¦   ¦   ¦   +-- certificate.p12 ¦   ¦   ¦   +-- config.xml
¦   ¦   ¦   +-- config.xsd
¦   ¦   ¦   +-- log4j.properties
¦   ¦   ¦   +-- recipientIdResolver.groovy
¦   ¦   ¦   +-- signature.properties
¦   ¦   +-- lib
¦   +-- working-dir
¦       +-- corrupted
¦       +-- db
¦       +-- sent
¦       +-- tmp
¦       ¦   +-- preparing
¦       ¦   +-- receiving
¦       +-- unknown
+-- sedex
    +-- inboxcertificate
    ¦   +-- outboxcertificate1.p12
    +-- conf
receipts    ¦   +-- sent
Code Block
languagehtml/xml
titleconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlnscertificateConfiguration.xml
    ¦   +-- CertificateConfiguration-1-0.xsd
    +-- inbox
    +-- outbox
    +-- receipts
    +-- sent
Code Block
languagehtml/xml
titleconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case6/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case6/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case6/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case6/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case6/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case6/application"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case6/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <nativeApp participantId="T7-4-1" > <!-- die lokale sedexId -->
        <outbox dirPath="outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case6/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
            <signingOutbox dirPath="signing-outbox" processedDir="processed" signingProfilePath="/mh_examples/case6/mh/install-dir/conf/signature.properties">
                <certificateConfigFile 
<certificate filePath="/                   filePath="/mh_examples/case6/mh/install-dirsedex/conf/certificate.p12" password="secretcertificateConfiguration.xml"/>
            </signingOutbox>
        </outbox>
        <inbox dirPath="inbox" msgTypes="10301"/>
    </nativeApp>
</config>

...

  • One eSchKG/e-LP/e-LEF application (message type = 10301) has to be connected to the sedex network.
  • The application uses two signing outboxes to sign PDF files by the MH. One of these outboxes is configured with a p12 file and password, the other is configured with the sedex certificate configuration file (CertificateConfiguration.xml).
  • One nativeApp -> Native Mode.

...

Code Block
titleDirectory structure
/mh_examples/case7/
.
+-- application
¦   +-- inbox
¦   +-- outbox
¦   +-- signing-outbox1
¦   +-- signing-outbox2
+-- log
¦   +-- mh
¦   +-- sedex
+-- mh
¦   +-- install-dir
¦   ¦   +-- bin
¦   ¦   +-- conf
¦   ¦   ¦   +-- certificate1.p12
¦   ¦   ¦   +-- certificate2config.p12xml
¦   ¦   ¦   +-- config.xmlxsd
¦   ¦   ¦   +-- configlog4j.xsdproperties
¦   ¦   ¦   +-- log4jrecipientIdResolver.propertiesgroovy
¦   ¦   ¦   +-- recipientIdResolversignature1.groovyproperties
¦   ¦   ¦   +-- signature1signature2.properties
¦   ¦   +-- lib
¦   +-- signature2.properties
¦working-dir
¦       +-- corrupted
¦       +-- db
¦       +-- libsent
¦       +-- working-dirtmp
¦       ¦   +-- corruptedpreparing
¦       ¦   +-- dbreceiving
¦       +-- sentunknown
¦+--  sedex
    +-- tmp
¦  certificate
    ¦   +-- preparingcertificate2.p12
  ¦  +-- conf
    ¦   +-- receivingcertificateConfiguration.xml
¦    ¦   +-- unknown
+CertificateConfiguration-1- sedex0.xsd
    +-- inbox
    +-- outbox
    +-- receipts
    +-- sent
Code Block
languagehtml/xml
titleconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://msghandler.suis.admin.ch/xmlns/config config.xsd"
        xmlns="http://msghandler.suis.admin.ch/xmlns/config"
        version="3.01">
    <sedexAdapter>
        <participantId>T7-4-1</participantId>
        <inboxDir>/mh_examples/case7/sedex/inbox</inboxDir>
        <outboxDir>/mh_examples/case7/sedex/outbox</outboxDir>
        <receiptDir>/mh_examples/case7/sedex/receipts</receiptDir>
        <sentDir>/mh_examples/case7/sedex/sent</sentDir>
    </sedexAdapter>
    <messageHandler>
        <!-- In diesem Pfad mssen die MH Basis-Verzeichnisse sein: 
        corrupted, tmp, unkown, etc. -->
        <workingDir dirPath="/mh_examples/case7/mh/working-dir"/>
        <!-- Wo starten relative Pfade -->
        <baseDir dirPath="/mh_examples/case7/application"/>
        <!--  wie oft wird die sedex inbox geprft -->
        <sedexInboxDirCheck cron="0/30 * * * * ?" />
        <!--  wie oft wird das sedex receipts directoty geprft -->
        <sedexReceiptDirCheck cron="0/30 * * * * ?" />
        <!-- jede *outbox kann Wert berschreiben -->
        <defaultOutboxCheck cron="0/30 * * * * ?" />
        <webserviceInterface host="localhost" port="18080"/>
        <statusDatabase dirPath="/mh_examples/case7/mh/working-dir/db" 
        dataHoldTimeInDays="2" resend="true"/>
        <protocol createPerMessageProtocols="false"/>
    </messageHandler>
    <nativeApp participantId="T7-4-1" > <!-- die lokale sedexId -->
        <outbox dirPath="outbox" msgType="10301"> 
            <recipientIdResolver filePath="/mh_examples/case7/mh/install-dir/conf/recipientIdResolver.groovy" method="resolve" />
            <signingOutbox dirPath="signing-outbox1" signingProfilePath="/mh_examples/case7/mh/install-dir/conf/signature1.properties">
                <certificate filePath="/mh_examples/case7/mh/install-dir/conf/certificate1.p12" password="secret"/>
            </signingOutbox>
            <signingOutbox dirPath="signing-outbox2" signingProfilePath="/mh_examples/case7/mh/install-dir/conf/signature2.properties">
                <certificate<certificateConfigFile 
                    filePath="/mh_examples/case7/mh/install-dirsedex/conf/certificate2certificateConfiguration.p12" password="secret"xml"/>
            </signingOutbox>
        </outbox>
        <inbox dirPath="inbox" msgTypes="10301"/>
    </nativeApp>
</config>

 recipientIdResolver.groovy: same as in case 1 

signature1.properties and signature2.properties: See case 6