Skip to content

Instantly share code, notes, and snippets.

View odrotbohm's full-sized avatar
👨‍💻
@ home

Oliver Drotbohm odrotbohm

👨‍💻
@ home
View GitHub Profile
@odrotbohm
odrotbohm / FizzBuzz.java
Last active March 21, 2017 16:48
FizzBuzz functional style inspired by @Dierk's talk on Frege
/**
* FizzBuzz functional style. Inspired by @mittie's Frege talk and @kevlinhenney.
*
* Uses Protonpack's {@code StreamUtils} for zipping
*
* @see https://github.com/poetix/protonpack
*/
public class FizzBuzz {
public static void main(String[] args) {
{
"_embedded" : {
"orders" : [ {
"items" : [ {
"description" : "Lakewood guitar",
"price" : 1299.00,
"_embedded" : {
"product" : {
"name" : "Lakewood guitar",
@odrotbohm
odrotbohm / hal-browser.png
Last active October 15, 2015 10:43
Images for "What's new in Spring Data Gosling?" blog post
hal-browser.png
@odrotbohm
odrotbohm / StoreRepository.java
Last active October 22, 2021 09:08
Dynamic, Querydsl-based filter bindings using Spring Data REST
public interface StoreRepository extends PagingAndSortingRepository<Store, String>,
QueryDslPredicateExecutor<Store>, QuerydslBinderCustomizer<QStore> {
@RestResource(rel = "by-location")
Page<Store> findByAddressLocationNear(Point location, Distance distance, Pageable pageable);
default void customize(QuerydslBindings bindings, QStore store) {
bindings.bind(store.address.city).single((path, value) -> path.startsWith(value));
bindings.bind(String.class).single((StringPath path, String value) -> path.contains(value));
}
class Context<T extends Property> {
Path<T> getPath(String dotPath) { … } // foo.bar.foobar
}
class Path<T> { … }
class ResultException { // ResultException<T> is not allowed
Path<T> getResolvedPath() { … }
}
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (22):
1.8.0_45, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
1.8.0_40, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
1.8.0_25, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
1.8.0_11, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/Java8/Contents/Home
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_71, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
@odrotbohm
odrotbohm / there-is-no-spring-vs-javaee.adoc
Last active August 29, 2015 14:23
Translation of a comment I wrote for the German Java Magazin to oppose the impression of a "Spring VS JavaEE" created in another article. https://jaxenter.de/von-einem-spring-versus-javaee-zu-reden-ist-faktisch-eigentlich-falsch-20965

There is no Spring VS. JavaEE

"Why Spring 5 is planning without JavaEE 7" — the opposite of that is true. The framework already supports a lot of specifications of the JavaEE 7 release: Servlet 3.1, JTA 1.2 (@Transactional), JPA 2.1, WebSocket 1.0 etc. are already supported by Spring 4. The JCache support in Spring is so old (introduced in 4.0), many Java developers don’t even realize that the spec hasn’t been included in any official JavaEE release yet.

It’s a matter of fact that for a lot of projects that run on application servers like IBM WebSphere and Oracle Weblogic using Spring as a platform is the only way to use these n

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [infrastructure.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: spring-data-jpa] Unable to build Hibernate SessionFactory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) ~[spring-b
@odrotbohm
odrotbohm / notes.adoc
Last active August 29, 2015 14:19
Talk notes - Microservices @ unKonf 2015
@odrotbohm
odrotbohm / gist:2f2a070e535b4254cce2
Created April 16, 2015 13:33
hibernate-5-exception.txt
Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.443 sec <<< FAILURE!
supportForExpressionBasedQueryMethods(org.springframework.data.jpa.repository.MappedTypeRepositoryIntegrationTests) Time elapsed: 0 sec <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:94)
at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:72)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassR