Updated Branches: refs/heads/master 67f562cf0 -> 07a0b9e1b
Upgraded to Avro 1.7.5 and Snappy-Java 1.1.0.1 (which itself is already an OSGi bundle, so no need for a SMX bundle anymore). Fixed and enabled the camel-infinispan Karaf feature. Also fixed and enabled the two Karaf Tests CamelDisruptorTest and CamelInfinispanTest. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/07a0b9e1 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/07a0b9e1 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/07a0b9e1 Branch: refs/heads/master Commit: 07a0b9e1b7cb356a1ce0aac58c026e25cfe230c6 Parents: 67f562c Author: Babak Vahdat <bvah...@apache.org> Authored: Thu Nov 28 17:52:46 2013 +0100 Committer: Babak Vahdat <bvah...@apache.org> Committed: Thu Nov 28 17:52:46 2013 +0100 ---------------------------------------------------------------------- .../camel/component/avro/AvroListener.java | 418 +++++++++---------- .../component/avro/AvroReflectResponder.java | 72 ++-- .../component/avro/AvroSpecificResponder.java | 2 +- parent/pom.xml | 6 +- .../features/src/main/resources/features.xml | 8 +- .../camel/itest/karaf/AbstractFeatureTest.java | 1 + .../camel/itest/karaf/CamelDisruptorTest.java | 2 - .../camel/itest/karaf/CamelInfinispanTest.java | 2 - 8 files changed, 252 insertions(+), 259 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java ---------------------------------------------------------------------- diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java index c593080..60aedcf 100644 --- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java +++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java @@ -1,210 +1,208 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.avro; - -import java.net.InetSocketAddress; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -import org.apache.avro.Protocol; -import org.apache.avro.Schema; -import org.apache.avro.ipc.HttpServer; -import org.apache.avro.ipc.NettyServer; -import org.apache.avro.ipc.Server; -import org.apache.avro.ipc.specific.SpecificResponder; -import org.apache.avro.specific.SpecificData; -import org.apache.camel.Exchange; -import org.apache.camel.util.ExchangeHelper; -import org.apache.commons.lang.StringUtils; -import org.mortbay.log.Log; - -import static org.apache.camel.component.avro.AvroConstants.AVRO_HTTP_TRANSPORT; -import static org.apache.camel.component.avro.AvroConstants.AVRO_NETTY_TRANSPORT; - - -/** - * This class holds server that listen to given protocol:host:port combination and dispatches messages to - * different routes mapped. - */ -public class AvroListener { - - private ConcurrentMap<String, AvroConsumer> consumerRegistry = new ConcurrentHashMap<String, AvroConsumer>(); - private AvroConsumer defaultConsumer; - private final Server server; - private final AvroConfiguration configuration; - - public AvroListener(AvroEndpoint endpoint) throws Exception { - configuration = endpoint.getConfiguration(); - server = initAndStartServer(endpoint.getConfiguration()); - } - - /** - * Initializes and starts http or netty server on basis of transport protocol from configuration. - * - * - * @param configuration - * @return Initialized and started server - * @throws java.io.IOException - */ - private Server initAndStartServer(AvroConfiguration configuration) throws Exception { - SpecificResponder responder; - Server server; - - if (configuration.isReflectionProtocol()) { - responder = new AvroReflectResponder(configuration.getProtocol(), this); - } else { - responder = new AvroSpecificResponder(configuration.getProtocol(), this); - } - - - if (AVRO_HTTP_TRANSPORT.equalsIgnoreCase(configuration.getTransport())) { - server = new HttpServer(responder, configuration.getPort()); - } else if (AVRO_NETTY_TRANSPORT.equalsIgnoreCase(configuration.getTransport())) { - server = new NettyServer(responder, new InetSocketAddress(configuration.getHost(), configuration.getPort())); - } else { - throw new IllegalArgumentException("Unknown transport " + configuration.getTransport()); - } - - server.start(); - - return server; - } - - /** - * Registers consumer by appropriate message name as key in registry. - * - * @param messageName message name - * @param consumer avro consumer - * @throws AvroComponentException - */ - public void register(String messageName, AvroConsumer consumer) throws AvroComponentException { - if (messageName == null) { - if (this.defaultConsumer != null) { - throw new AvroComponentException("Default consumer already registered for uri: " + consumer.getEndpoint().getEndpointUri()); - } - this.defaultConsumer = consumer; - } else { - if (consumerRegistry.putIfAbsent(messageName, consumer) != null) { - throw new AvroComponentException("Consumer already registered for message: " + messageName + " and uri: " + consumer.getEndpoint().getEndpointUri()); - } - } - } - - /** - * Unregisters consumer by message name. - * Stops server in case if all consumers are unregistered and default consumer is absent or stopped. - * - * @param messageName message name - * @return true if all consumers are unregistered and defaultConsumer is absent or null. - * It means that this responder can be unregistered. - */ - public boolean unregister(String messageName) { - if (!StringUtils.isEmpty(messageName)) { - if (consumerRegistry.remove(messageName) == null) { - Log.warn("Consumer with message name " + messageName + " was already unregistered."); - } - } else { - defaultConsumer = null; - } - - if ((defaultConsumer == null) && (consumerRegistry.isEmpty())) { - if (server != null) { - server.close(); - } - return true; - } - return false; - } - - public Object respond(Protocol.Message message, Object request, SpecificData data) throws Exception { - AvroConsumer consumer = this.defaultConsumer; - if (this.consumerRegistry.containsKey(message.getName())) { - consumer = this.consumerRegistry.get(message.getName()); - } - - if (consumer == null) { - throw new AvroComponentException("No consumer defined for message: " + message.getName()); - } - - Object params = extractParams(message, request, consumer.getEndpoint().getConfiguration().isSingleParameter(), data); - - return processExchange(consumer, message, params); - } - - /** - * Extracts parameters from RPC call to List or converts to object of appropriate type - * if only one parameter set. - * - * @param message Avro message - * @param request Avro request - * @param singleParameter Indicates that called method has single parameter - * @param dataResolver Extracts type of parameters in call - * @return Parameters of RPC method invocation - */ - private static Object extractParams(Protocol.Message message, Object request, boolean singleParameter, SpecificData dataResolver) { - - if (singleParameter) { - Schema.Field field = message.getRequest().getFields().get(0); - return dataResolver.getField(request, field.name(), field.pos()); - } else { - int i = 0; - Object[] params = new Object[message.getRequest().getFields().size()]; - for (Schema.Field param : message.getRequest().getFields()) { - params[i] = dataResolver.getField(request, param.name(), param.pos()); - i++; - } - return params; - } - } - - /** - * Creates exchange and processes it. - * - * @param consumer Holds processor and exception handler - * @param message Message on which exchange is created - * @param params Params of exchange - * @return Response of exchange processing - * @throws Exception - */ - private static Object processExchange(AvroConsumer consumer, Protocol.Message message, Object params) throws Exception { - Object response; - Exchange exchange = consumer.getEndpoint().createExchange(message, params); - - try { - consumer.getProcessor().process(exchange); - } catch (Throwable e) { - consumer.getExceptionHandler().handleException(e); - } - - if (ExchangeHelper.isOutCapable(exchange)) { - response = exchange.getOut().getBody(); - } else { - response = null; - } - - boolean failed = exchange.isFailed(); - if (failed) { - if (exchange.getException() != null) { - throw exchange.getException(); - } else { - // failed and no exception, must be a fault - throw new AvroComponentException("Camel processing error."); - } - } - return response; - } -} +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.avro; + +import java.net.InetSocketAddress; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import org.apache.avro.Protocol; +import org.apache.avro.Schema; +import org.apache.avro.ipc.HttpServer; +import org.apache.avro.ipc.NettyServer; +import org.apache.avro.ipc.Server; +import org.apache.avro.ipc.specific.SpecificResponder; +import org.apache.avro.specific.SpecificData; +import org.apache.camel.Exchange; +import org.apache.camel.util.ExchangeHelper; +import org.apache.commons.lang.StringUtils; +import org.mortbay.log.Log; + +import static org.apache.camel.component.avro.AvroConstants.AVRO_HTTP_TRANSPORT; +import static org.apache.camel.component.avro.AvroConstants.AVRO_NETTY_TRANSPORT; + + +/** + * This class holds server that listen to given protocol:host:port combination and dispatches messages to + * different routes mapped. + */ +public class AvroListener { + + private ConcurrentMap<String, AvroConsumer> consumerRegistry = new ConcurrentHashMap<String, AvroConsumer>(); + private AvroConsumer defaultConsumer; + private final Server server; + + public AvroListener(AvroEndpoint endpoint) throws Exception { + server = initAndStartServer(endpoint.getConfiguration()); + } + + /** + * Initializes and starts http or netty server on basis of transport protocol from configuration. + * + * + * @param configuration + * @return Initialized and started server + * @throws java.io.IOException + */ + private Server initAndStartServer(AvroConfiguration configuration) throws Exception { + SpecificResponder responder; + Server server; + + if (configuration.isReflectionProtocol()) { + responder = new AvroReflectResponder(configuration.getProtocol(), this); + } else { + responder = new AvroSpecificResponder(configuration.getProtocol(), this); + } + + + if (AVRO_HTTP_TRANSPORT.equalsIgnoreCase(configuration.getTransport())) { + server = new HttpServer(responder, configuration.getPort()); + } else if (AVRO_NETTY_TRANSPORT.equalsIgnoreCase(configuration.getTransport())) { + server = new NettyServer(responder, new InetSocketAddress(configuration.getHost(), configuration.getPort())); + } else { + throw new IllegalArgumentException("Unknown transport " + configuration.getTransport()); + } + + server.start(); + + return server; + } + + /** + * Registers consumer by appropriate message name as key in registry. + * + * @param messageName message name + * @param consumer avro consumer + * @throws AvroComponentException + */ + public void register(String messageName, AvroConsumer consumer) throws AvroComponentException { + if (messageName == null) { + if (this.defaultConsumer != null) { + throw new AvroComponentException("Default consumer already registered for uri: " + consumer.getEndpoint().getEndpointUri()); + } + this.defaultConsumer = consumer; + } else { + if (consumerRegistry.putIfAbsent(messageName, consumer) != null) { + throw new AvroComponentException("Consumer already registered for message: " + messageName + " and uri: " + consumer.getEndpoint().getEndpointUri()); + } + } + } + + /** + * Unregisters consumer by message name. + * Stops server in case if all consumers are unregistered and default consumer is absent or stopped. + * + * @param messageName message name + * @return true if all consumers are unregistered and defaultConsumer is absent or null. + * It means that this responder can be unregistered. + */ + public boolean unregister(String messageName) { + if (!StringUtils.isEmpty(messageName)) { + if (consumerRegistry.remove(messageName) == null) { + Log.warn("Consumer with message name " + messageName + " was already unregistered."); + } + } else { + defaultConsumer = null; + } + + if ((defaultConsumer == null) && (consumerRegistry.isEmpty())) { + if (server != null) { + server.close(); + } + return true; + } + return false; + } + + public Object respond(Protocol.Message message, Object request, SpecificData data) throws Exception { + AvroConsumer consumer = this.defaultConsumer; + if (this.consumerRegistry.containsKey(message.getName())) { + consumer = this.consumerRegistry.get(message.getName()); + } + + if (consumer == null) { + throw new AvroComponentException("No consumer defined for message: " + message.getName()); + } + + Object params = extractParams(message, request, consumer.getEndpoint().getConfiguration().isSingleParameter(), data); + + return processExchange(consumer, message, params); + } + + /** + * Extracts parameters from RPC call to List or converts to object of appropriate type + * if only one parameter set. + * + * @param message Avro message + * @param request Avro request + * @param singleParameter Indicates that called method has single parameter + * @param dataResolver Extracts type of parameters in call + * @return Parameters of RPC method invocation + */ + private static Object extractParams(Protocol.Message message, Object request, boolean singleParameter, SpecificData dataResolver) { + + if (singleParameter) { + Schema.Field field = message.getRequest().getFields().get(0); + return dataResolver.getField(request, field.name(), field.pos()); + } else { + int i = 0; + Object[] params = new Object[message.getRequest().getFields().size()]; + for (Schema.Field param : message.getRequest().getFields()) { + params[i] = dataResolver.getField(request, param.name(), param.pos()); + i++; + } + return params; + } + } + + /** + * Creates exchange and processes it. + * + * @param consumer Holds processor and exception handler + * @param message Message on which exchange is created + * @param params Params of exchange + * @return Response of exchange processing + * @throws Exception + */ + private static Object processExchange(AvroConsumer consumer, Protocol.Message message, Object params) throws Exception { + Object response; + Exchange exchange = consumer.getEndpoint().createExchange(message, params); + + try { + consumer.getProcessor().process(exchange); + } catch (Throwable e) { + consumer.getExceptionHandler().handleException(e); + } + + if (ExchangeHelper.isOutCapable(exchange)) { + response = exchange.getOut().getBody(); + } else { + response = null; + } + + boolean failed = exchange.isFailed(); + if (failed) { + if (exchange.getException() != null) { + throw exchange.getException(); + } else { + // failed and no exception, must be a fault + throw new AvroComponentException("Camel processing error."); + } + } + return response; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java ---------------------------------------------------------------------- diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java index 16fd712..0b45738 100644 --- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java +++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java @@ -1,36 +1,36 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.avro; - -import org.apache.avro.Protocol; -import org.apache.avro.ipc.reflect.ReflectResponder; -import org.apache.avro.reflect.ReflectData; - -public class AvroReflectResponder extends ReflectResponder { - private AvroListener listener; - - public AvroReflectResponder(Protocol protocol, AvroListener listener) throws Exception { - super(protocol, null); - this.listener = listener; - } - - @Override - public Object respond(Protocol.Message message, Object request) throws Exception { - return listener.respond(message, request, ReflectData.get()); - } - -} +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.avro; + +import org.apache.avro.Protocol; +import org.apache.avro.ipc.reflect.ReflectResponder; +import org.apache.avro.reflect.ReflectData; + +public class AvroReflectResponder extends ReflectResponder { + private AvroListener listener; + + public AvroReflectResponder(Protocol protocol, AvroListener listener) throws Exception { + super(protocol, listener); + this.listener = listener; + } + + @Override + public Object respond(Protocol.Message message, Object request) throws Exception { + return listener.respond(message, request, ReflectData.get()); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java ---------------------------------------------------------------------- diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java index 98a5d82..3387ef2 100644 --- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java +++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java @@ -25,7 +25,7 @@ public class AvroSpecificResponder extends SpecificResponder { public AvroSpecificResponder(Protocol protocol, AvroListener listener) throws Exception { - super(protocol, null); + super(protocol, listener); this.listener = listener; } http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 6dbbde3..ed0c32f 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -58,8 +58,8 @@ <atomikos-transactions-version>3.8.0</atomikos-transactions-version> <avalon-bundle-version>4.3.1_1</avalon-bundle-version> <avalon-version>4.3.1</avalon-version> - <avro-version>1.7.3</avro-version> - <avro-bundle-version>1.7.3_1</avro-bundle-version> + <avro-version>1.7.5</avro-version> + <avro-bundle-version>1.7.5_1</avro-bundle-version> <aws-java-sdk-bundle-version>1.6.3_1</aws-java-sdk-bundle-version> <aws-java-sdk-version>1.6.3</aws-java-sdk-version> <axiom-version>1.2.14</axiom-version> @@ -366,7 +366,7 @@ <slf4j-version>1.7.5</slf4j-version> <smack-bundle-version>3.2.1_1</smack-bundle-version> <smack-version>3.2.1</smack-version> - <snappy-bundle-version>1.0.4.1_1</snappy-bundle-version> + <snappy-version>1.1.0.1</snappy-version> <snmp4j-version>2.2.2_1</snmp4j-version> <solr-bundle-version>4.5.1_1</solr-bundle-version> <solr-version>4.5.1</solr-version> http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/platforms/karaf/features/src/main/resources/features.xml ---------------------------------------------------------------------- diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml index 98623a3..e8c6c43 100644 --- a/platforms/karaf/features/src/main/resources/features.xml +++ b/platforms/karaf/features/src/main/resources/features.xml @@ -91,13 +91,13 @@ <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-core-asl/${jackson-version}</bundle> <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson-version}</bundle> <bundle dependency='true'>mvn:io.netty/netty/${netty3-version}</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snappy-java/${snappy-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.paranamer/${paranamer-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avro/${avro-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avro-ipc/${avro-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.commons/commons-compress/${commons-compress-version}</bundle> <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty/${jetty6-bundle-version}</bundle> + <bundle dependency='true'>mvn:org.xerial.snappy/snappy-java/${snappy-version}</bundle> <bundle>mvn:org.apache.camel/camel-avro/${project.version}</bundle> </feature> <feature name='camel-aws' version='${project.version}' resolver='(obr)' start-level='50'> @@ -424,7 +424,6 @@ <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}</bundle> <bundle dependency='true'>mvn:org.codehaus.jettison/jettison/${jettison-version}</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snappy-java/${snappy-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.paranamer/${paranamer-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avro/${avro-bundle-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avro-ipc/${avro-bundle-version}</bundle> @@ -436,6 +435,7 @@ <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-servlet_3.0_spec/${geronimo-servlet-spec-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jets3t/0.9.0_2</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jopt-simple/4.3_1</bundle> + <bundle dependency='true'>mvn:org.xerial.snappy/snappy-java/${snappy-version}</bundle> <bundle dependency='true'>wrap:mvn:bsf/bsf/2.4.0</bundle> </feature> <feature name='camel-hdfs' version='${project.version}' resolver='(obr)' start-level='50'> @@ -511,7 +511,6 @@ <feature version='${project.version}'>camel-core</feature> <bundle>mvn:org.apache.camel/camel-ical/${project.version}</bundle> </feature> - <!-- TODO: infinispan-client-hotrod has flawed MANIFEST.MF <feature name='camel-infinispan' version='${project.version}' resolver='(obr)' start-level='50'> <bundle dependency='true'>mvn:org.infinispan/infinispan-core/${infinispan-version}</bundle> <bundle dependency='true'>mvn:org.infinispan/infinispan-commons/${infinispan-version}</bundle> @@ -521,10 +520,9 @@ <bundle dependency='true'>wrap:mvn:org.jboss.marshalling/jboss-marshalling/${jboss-marshalling-version}</bundle> <bundle dependency='true'>wrap:mvn:org.jboss.marshalling/jboss-marshalling-river/${jboss-marshalling-version}</bundle> <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle> - <feature version='${project.version}'>camel-core</feature> + <feature version='${project.version}'>camel-avro</feature> <bundle>mvn:org.apache.camel/camel-infinispan/${project.version}</bundle> </feature> ---> <feature name='camel-irc' version='${project.version}' resolver='(obr)' start-level='50'> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.irclib/${irclib-bundle-version}</bundle> <feature version='${project.version}'>camel-core</feature> http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java ---------------------------------------------------------------------- diff --git a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java index bc1987a..1495218 100644 --- a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java +++ b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java @@ -163,6 +163,7 @@ public abstract class AbstractFeatureTest { // override the config.properties (to fix pax-exam bug) replaceConfigurationFile("etc/config.properties", new File("src/test/resources/org/apache/camel/itest/karaf/config.properties")), replaceConfigurationFile("etc/custom.properties", new File("src/test/resources/org/apache/camel/itest/karaf/custom.properties")), + replaceConfigurationFile("etc/jre.properties", new File("../../platforms/karaf/features/src/main/resources/config.properties")), // we need INFO logging otherwise we cannot see what happens logLevel(LogLevelOption.LogLevel.INFO), // install the cxf jaxb spec as the karaf doesn't provide it by default http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelDisruptorTest.java ---------------------------------------------------------------------- diff --git a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelDisruptorTest.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelDisruptorTest.java index 728d894..5b56939 100644 --- a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelDisruptorTest.java +++ b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelDisruptorTest.java @@ -16,7 +16,6 @@ */ package org.apache.camel.itest.karaf; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; @@ -24,7 +23,6 @@ import org.ops4j.pax.exam.junit.Configuration; import org.ops4j.pax.exam.junit.JUnit4TestRunner; @RunWith(JUnit4TestRunner.class) -@Ignore("disruptor requries sun.misc package") public class CamelDisruptorTest extends AbstractFeatureTest { @Test http://git-wip-us.apache.org/repos/asf/camel/blob/07a0b9e1/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelInfinispanTest.java ---------------------------------------------------------------------- diff --git a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelInfinispanTest.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelInfinispanTest.java index 3e7624d..d11c400 100644 --- a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelInfinispanTest.java +++ b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelInfinispanTest.java @@ -16,7 +16,6 @@ */ package org.apache.camel.itest.karaf; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; @@ -24,7 +23,6 @@ import org.ops4j.pax.exam.junit.Configuration; import org.ops4j.pax.exam.junit.JUnit4TestRunner; @RunWith(JUnit4TestRunner.class) -@Ignore("infinispan-client-hotrod has invalid MANIFEST.MF") public class CamelInfinispanTest extends AbstractFeatureTest { public static final String COMPONENT = extractName(CamelInfinispanTest.class);