Skip to content

Instantly share code, notes, and snippets.

@mroger
mroger / Dockerfile
Created July 14, 2018 17:23
Dockerfile for ubuntu-jdk8 image
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y python-software-properties software-properties-common
RUN apt-get install -y iputils-ping
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get install -y vim
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 boolean true" | debconf-set-selections
RUN apt-get update && apt-get install -y oracle-java8-installer
@mroger
mroger / MagicMatcherElse.java
Last active June 2, 2016 23:10
MagicMatcherElse
public class MagicMatcher <T> implements InvocationHandler {
//...
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if () {
//...
@mroger
mroger / MagicMatcher.java
Last active June 2, 2016 00:47
Hamcrest custom matcher using dynamic proxy
public class MagicMatcher <T> implements InvocationHandler {
//...
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if ("matches".equals(method.getName())) {
for (Entry<String, Object> entry : methodMap.entrySet()) {
String field = entry.getKey().substring(entry.getKey().indexOf("with") + 4);
Object objectValue = extractObjectValue((T) args[0], entry.getKey());
@mroger
mroger / PersonMatcher.java
Created June 1, 2016 01:11
Proxied interface
public interface PersonMatcher extends Matcher<Person> {
PersonMatcher withName(String expected);
PersonMatcher withName(Matcher<? super String> matching);
PersonMatcher withAge(int expected);
PersonMatcher withAge(Matcher<Integer> matching);
PersonMatcher withOptions(List<String> options);
}
@mroger
mroger / PersonTest.java
Last active June 1, 2016 00:56
Test class using custom matcher
public class PersonTest {
private Person person;
@Before
public void setUp() {
person = new Person();
}
@Test
@mroger
mroger / Person.java
Last active May 31, 2016 01:05
Person entity for proxy matcher
package br.org.roger.model;
import java.util.List;
public class Person {
private String name;
private int age;
private List<String> options;
@mroger
mroger / MyHandlerResolver.java
Last active May 29, 2016 21:39
Adding a handler to client messages
public static void main(String[] args) {
SimpleWebServiceService wsClient = new SimpleWebServiceService();
wsClient.setHandlerResolver(new MyHandlerResolver());
final SimpleWebService simpleWebServicePort = wsClient.getSimpleWebServicePort();
System.out.println(simpleWebServicePort.sayHello("Guest"));
}
public static class MyHandlerResolver implements HandlerResolver {
public List<Handler> getHandlerChain(PortInfo portInfo) {
List<Handler> handlers = new ArrayList<Handler>();
@mroger
mroger / logback.xml
Created July 17, 2013 01:10
Arquivo de configuração simples de exemplo do logback com ativação do JMX.
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
<jmxConfigurator />
<statusListener class=
"ch.qos.logback.core.status.OnConsoleStatusListener"/>
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
@mroger
mroger / html5_phone_regex
Last active December 19, 2015 13:29
Exemplo de validação de telefone usando regex em form HTML 5.
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Form Validation</title>
</head>
<body>
<form action='teste.asp'>
Telefone:
<input
type="text"
@mroger
mroger / pom.xml
Last active October 23, 2015 02:06
Adding dependencies to JDBC wrapper driver
...
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>