Skip to content

Instantly share code, notes, and snippets.

@arthurtsang
arthurtsang / gist:f7a3f3bd4af39c789c28
Created February 9, 2015 00:55
simple application.yaml for ratpack
server:
port: 9500
idol:
host: localhost
indexPort: 9001
searchPort: 9000
@arthurtsang
arthurtsang / gist:d1c77f7a84443d893646
Created February 9, 2015 00:48
Ratpack 0.9.13 main
public class MyAppMain {
private final static Logger logger = LoggerFactory.getLogger(MyAppMain.class);
private final static String ENV_PREFIX_PROPERTY = "MYAPP_ENV_PREFIX";
private final static String ENV_PREFIX_DEFAULT = "MYAPP_";
public static void main(String[] args) {
String propertyPrefix = System.getenv().getOrDefault(ENV_PREFIX_PROPERTY, ENV_PREFIX_DEFAULT);
ConfigData configData = ConfigData.of()
.yaml(ClassLoader.getSystemResource("application.yaml"))
@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'
}
}
@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: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: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 / 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 / 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 / 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 / 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>