All Downloads are FREE. Search and download functionalities are using the official Maven repository.

OSGI-INF.blueprint.blueprint.xml Maven / Gradle / Ivy

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
       xsi:schemaLocation="
       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">

   <!-- OSGI blueprint property placeholder -->
   <cm:property-placeholder persistent-id="edu.amherst.acdc.exts.ore" update-strategy="reload">
     <cm:default-properties>
       <cm:property name="rest.port" value="9108"/>
       <cm:property name="rest.prefix" value="/ore"/>
       <cm:property name="rest.host" value="localhost"/>
       <cm:property name="ore.concurrency" value="10"/>
       <cm:property name="ore.timeout" value="30000"/>
       <cm:property name="fcrepo.baseUrl" value="http://localhost:8080/fcrepo/rest"/>
       <cm:property name="fcrepo.authUsername" value=""/>
       <cm:property name="fcrepo.authPassword" value=""/>
       <cm:property name="extension.load" value="false" />
       <cm:property name="extension.load.uri" value="http://apix/services//apix:load" />
       <cm:property name="extension.load.maximumRedeliveries" value="60" />
     </cm:default-properties>
   </cm:property-placeholder>

   <reference id="oreService" interface="edu.amherst.acdc.services.ore.OreService" filter="(osgi.jndi.service.name=acrepo/Ore)" />

  <camelContext id="AcrepoExtOre" xmlns="http://camel.apache.org/schema/blueprint">
    <package>edu.amherst.acdc.exts.ore</package>

    <route id="OreParser">
      <from uri="direct:parse"/>
      <setHeader headerName="CamelOreModel">
        <method ref="oreService" method="parseInto(${header[CamelOreModel]}, ${body}, ${header[Content-Type]})"/>
      </setHeader>
    </route>

    <route id="OreMembers">
      <from uri="direct:members"/>
      <setBody>
        <method ref="oreService" method="aggregates(${header[CamelOreModel]}, ${header[CamelOreSubject]})"/>
      </setBody>
    </route>

    <route id="OreSerialize">
      <from uri="direct:serialize"/>
      <setBody>
        <method ref="oreService" method="serialize(${header[CamelOreModel]}, ${header[CamelOreAccept]})"/>
      </setBody>
    </route>

    <!-- Self-register the loader service as an extension -->
    <route id="load-extension">
      <from uri="timer:register?repeatCount=1" />
      <onException>
        <exception>java.lang.Exception</exception>
        <redeliveryPolicy maximumRedeliveries="{{extension.load.maximumRedeliveries}}"
          logRetryAttempted="true" retryAttemptedLogLevel="INFO" />
      </onException>
      <setHeader headerName="Content-Type">
        <constant>text/plain</constant>
      </setHeader>
      <setHeader headerName="CamelHttpMethod">
        <constant>POST</constant>
      </setHeader>
      <setBody>
        <simple>http://{{rest.host}}:{{rest.port}}{{rest.prefix}}</simple>
      </setBody>
      <choice>
        <when>
          <simple>{{extension.load}}</simple>
          <to uri="jetty:{{extension.load.uri}}?okStatusCodeRange=200-399" />
        </when>
      </choice>
    </route>

  </camelContext>

</blueprint>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy