2017-06-02 2 views
0

Ich versuche die in Karaf gespeicherten Eigenschaften in meinen Camel/Spring-Service zu injizieren. Bisher habe ich versucht, die Eigenschaften wie in Fuse documentation und Spring dokumentiert zu injizieren. Beide scheinen jedoch veraltet zu sein: Die osgix:cm-properties kann nicht von der aktuellen Spring-Version geparst werden (Fuse 6.3 verwendet 3.2.16).Wie benutzt man die Eigenschaften von OSGI/Karaf ConfigurationAdminService mit Spring-Abhängigkeits-Injektion?

Auf der anderen Seite scheint Apache Widder etwas zu haben, das jetzt verwendet werden könnte. Die aries-blueprint-spring Funktion enthält zwei Bündel:

  • aries.blueprint.spring
  • aries.blueprint.spring.extender

ich eine alte Benutzer-Liste Post gefunden, die zu diesem Bündel verweist. Aber ich kann keine Dokumentation oder ein Beispiel dafür finden. Wir müssen nur die Eigenschaften injizieren.

Antwort

2

Haben OSGi Service Compendium für irgendwann jetzt und unten ist ein Auszug aus einem meiner Projekte, hoffe es hilft.

Wichtig ist die Erklärung von Kompendium Namespace und es ist Präfix osgix

Auch als das gleiche, die Erklärung von persistent-ID beachten Sie hat in Karaf Konfigurationsdatei definiert werden, innerhalb erstellt werden usw. Verzeichnis Ihrer Container-Instanz. Jetzt

gibt es Frühling Immobilien-Platzhalter Bezug Eigenschaften Erklärung und propertyPlaceholder innerhalb CamelContext osgix. Beide sind erforderlich, wenn Sie auf Eigenschaften außerhalb - $ {propName} und innerhalb - {{propName}} CamelContext zugreifen möchten.

Um den Zugriff Eigenschaften außerhalb Syntax Camel Kontext ist $ {property}
Eigenschaften innen syntnax Camel Kontext zuzugreifen {{property}}


<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:osgix="http://www.springframework.org/schema/osgi-compendium" xmlns:ctx="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd  
    http://camel.apache.org/schema/spring    http://camel.apache.org/schema/spring/camel-spring.xsd 
    http://www.springframework.org/schema/osgi   http://www.springframework.org/schema/osgi/spring-osgi.xsd 
    http://www.springframework.org/schema/osgi-compendium  http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd 
    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd"> 



    <!-- A. Configuration Management --> 
    <osgix:cm-properties id="cachingServicesProp" persistent-id="com.fsafrica.cachingservices.cm"> 
     <prop key="amqBrokerUrl">tcp://localhost:61616</prop> 
     <prop key="amqUsername">admin</prop> 
     <prop key="amqPassword">admin</prop> 
     <prop key="queueName">jms/SRK_CACHE_QUEUE</prop> 
    </osgix:cm-properties> 

    <!-- Required for resolving properties for Beans outside CamelContext --> 
    <ctx:property-placeholder properties-ref="cachingServicesProp" /> 



    <!-- B. ActiveMQ --> 
    <bean class="org.apache.activemq.camel.component.ActiveMQComponent" id="activemq"> 
     <property name="brokerURL" value="${amqBrokerUrl}" /> 
     <property name="userName" value="${amqUsername}" /> 
     <property name="password" value="${amqPassword}" /> 
    </bean> 



    <camelContext id="CC-CachingMain" xmlns="http://camel.apache.org/schema/spring"> 

     <!-- Required for resolving properties inside CamelContext --> 
     <propertyPlaceholder id="properties" location="ref:cachingServicesProp"/> 



     <!-- JMS INTERFACE --> 
     <route id="Route-JMSMasterData"> 

      <from uri="activemq:queue:{{queueName}}?transacted=false" /> 

      <log message="#### After putting some data in the Queue (jms/SRK_CACHE_QUEUE) you should be able read this text on Karaf console" /> 

     </route> 

    </camelContext> 

</beans> 
+0

danke, aber ich habe genau diesen Weg. Das Problem ist, dass Spring die XML nicht analysieren kann. Es scheint, dass aktuelle Frühlingsversionen Unterstützung für dieses Zeug fallen ließen ?! – dermoritz