우리는 karaf
에 osgi
응용 프로그램이 있고 소스에서 로깅 설정을 (현재 그들이 karaf/etc/org.ops4j.pax.logging.cfg
에)logback
가 UPDATE 유지하기 위해 번들 항아리 내부 로깅 속성을 갖고 싶어 : 사실 지금 우리는 계속 Karaf CM Admin 서비스에 config를 로깅하십시오. 각 릴리스에서 작은 로깅 변경을 수행하기 위해 운영 팀에 특별 지침을 작성해야하기 때문에 문제가됩니다. 게다가 우리는 여러 karaf 노드 (~ 10)를 가지고 있고 각각에 대해 이러한 작업을 반복하는 것은 복잡하고 오류가 발생하기 쉬운 작업입니다. 물론 우리는 각 karaf 노드에 Cellar
를 인스톨 한후에 수 있지만 가장 간단한 방법은 단지 소스에
내가 봤 한을 설정을 유지 그래서는 OSGI의 ENV를 복잡하게하고 그것을 위해 어떤 지원을 필요로하는 easiest way to create a separate bundle와 함께 실제 로깅 물건을한다 모든 종속성 (logback, slf4j, config)은 내부에서 org.slf4
을 내 보냅니다.
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<unpackBundle>true</unpackBundle>
<instructions>
<Embed-Dependency>*;groupId=!junit|org.springframework|log4j|javax.jms|javax.mail</Embed-Dependency>
<Embed-Transitive>false</Embed-Transitive>
<Embed-Directory>target/dependency</Embed-Directory>
<Embed-StripGroup>true</Embed-StripGroup>
<Export-Package>org.slf4j</Export-Package>
<Import-Package>
*
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeGroupIds>junit,org.springframework,log4j</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>com.springsource.ch.qos.logback.classic</artifactId>
<version>0.9.15</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>com.springsource.ch.qos.logback.core</artifactId>
<version>0.9.15</version>
</dependency>
을하지만 javax.mail/jms
같은 추가 dependecies의 매니페스트 많이 번들 등 둔다 :
나는이 pom.xml
과 노력
Import-Package: javax.jms,javax.mail,javax.mail.internet,javax.management,javax.naming,javax.servlet,javax.servlet.http,javax.sql,javax.xml.parsers,org.codehaus.janino,org.slf4j;version="1.6",org.xml.sax,org.xml.sax.helpers,sun.reflect
확실히 그것은 좋은 방법 배포 아니에요 모든 필요를 그들을 해결하기 위해 카라프에 물건을.
내부적으로 모든 로깅 종속성이있는 단일 번들을 작성하는 방법은 무엇입니까?
정확하게, 나는 우리가 이미 모든 로그 CONFIGS이 쓴'karaf/등/org.ops4j.pax.logging.cfg' 즉, karaf Conf Admin Service이며 각 릴리스에서 작은 로깅 변경을 수행하기 위해 운영 팀에 특별 지침을 작성해야하기 때문에 문제가됩니다. 게다가 우리는 여러 개의 karaf 노드 (~ 10)를 가지고 있으며 각각 반복해서 거대한 작업을합니다. 물론 그들은 각각의 karaf 노드에'Cellar '를 호출 한 후에 그것을 할 수 있지만 그것은 osgi env를 복잡하게 할 것이고 각 노드에서 지하 저장기를 지원할 것을 요구할 것입니다 – yetanothercoder