Skip to content

Instantly share code, notes, and snippets.

@arthurtsang
arthurtsang / module-context.xml
Last active December 15, 2015 09:39
dynamic service activator
<bean id="svcDynamicServiceActivator" class="DynamicServiceActivator">
<property name="expressionToReplyChannel">
<map>
<entry>
<key><value>getServices</value></key>
<list>
<value>@bean.getServices(headers['user'])</value>
<value>aggregateSvcRequests</value>
</list>
</entry>
@arthurtsang
arthurtsang / applicationContext-test-springintegration.xml
Created March 25, 2013 19:17
dynamic service activator with custom namespace
<int-ext:dynamic-service-activator id="dynamicServiceActivator">
<int-ext:method name="getService" expression="@bean.getService(headers['serviceId'],payload)" reply-channel="serviceResponse"/>
<int-ext:method name="getServices" expression="@bean.getServices(headers['user'])" reply-channel="aggregateSvcRequests" />
</int-ext:dynamic-service-activator>
@arthurtsang
arthurtsang / hpui-springintegration-extension.xsd
Last active December 15, 2015 12:28
using spring tool to verify the type of bean object
<xs:annotation>
<xs:documentation>
The input channel of the chain.
</xs:documentation>
<xs:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="org.springframework.integration.channel.DirectChannel" />
</tool:annotation>
</xs:appinfo>
</xs:annotation>
@arthurtsang
arthurtsang / ZooInstall.java
Last active December 15, 2015 13:29
ZooKeeper watcher without loosing events
private void getConfigsFromZookeeper() throws IOException {
logger.debug("Connected to Zookeeper");
synchronized(lock) {
try {
configs = trackChildren(configs);
} catch (Exception e) {
logger.error("Error tracking Zookeeper config", e);
}
}
}
@arthurtsang
arthurtsang / DynamicServiceActivator.java
Created March 29, 2013 01:21
Create a Spring Integration Channel programatically and register that as a Spring bean
private SubscribableChannel createInputChannel(String inputChannelName) {
PublishSubscribeChannel channel = new PublishSubscribeChannel();
channel.setBeanName(inputChannelName);
channel.setBeanFactory(applicationContext);
//channel.setApplySequence(true);
((ConfigurableApplicationContext)applicationContext).getBeanFactory().registerSingleton(inputChannelName, channel);
return channel;
}
@arthurtsang
arthurtsang / DynamicServiceActivatorBeanDefinitionParser.java
Last active March 18, 2020 09:23
Bean definition parser for custom spring namespace
public class DynamicServiceActivatorBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
protected Class getBeanClass(Element element) {
return DefaultDynamicServiceActivator.class;
}
@Override
protected void doParse(Element element, BeanDefinitionBuilder bean) {
List<Element> methodElements = DomUtils.getChildElementsByTagName(element, "method");
ManagedMap<String, BeanDefinition> methodMetadataMap = null;
@arthurtsang
arthurtsang / gist:36ed4c105e5ec79fee4c
Created February 8, 2015 18:10
ratpack + gradle + docker
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'io.ratpack:ratpack-gradle:0.9.13'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0'
classpath 'com.bmuschko:gradle-docker-plugin:2.0'
}
}
@arthurtsang
arthurtsang / gist:73003ba728466058c756
Created February 8, 2015 18:16
Dockerfile for microservice using openjdk 8
FROM peelsky/zulu-openjdk-busybox
WORKDIR /app
USER daemon
ADD ./build/libs/msvc-search-1.0-all.jar /app/msvc-search-1.0-all.jar
CMD [ "java", "-jar", "/app/msvc-search-1.0-all.jar" ]
@arthurtsang
arthurtsang / gist:b03b1458f7141e3b1c8a
Created February 8, 2015 18:37
dockerignore for ratpack shadow jar
.git
gradle*
.gradle
src
out
jumpstart*
msvc*
build/dependency-cache
build/classes
build/installShadow
@arthurtsang
arthurtsang / gist:a0f4db90e175481c71f5
Created February 8, 2015 21:22
gradle shadow plugin with build date in manifest
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'io.ratpack:ratpack-gradle:0.9.13'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0'
}
}