Skip to content

Instantly share code, notes, and snippets.

@dimitrisli
dimitrisli / gist:e85ee179e7f9358be5d1
Created February 25, 2015 03:22
ScalaForexRatesDSL
object ScalaForexRatesDSL {
implicit class ccy2money(ccy :Symbol) {
def apply(amount: BigDecimal) = Money(amount, ccy)
}
}
case class FromToCcy(ccyFrom: Symbol, ccyTo: Symbol)
case class Money(amount:BigDecimal, ccy:Symbol) {
@dimitrisli
dimitrisli / Scala99Problems
Created March 2, 2015 13:38
Scala 99 Problems
//P01
def last(ls: List[Int]): Int = ls match {
case le::Nil => le
case _::tail => last(tail)
case _ => throw new IllegalArgumentException
}
//P02
def penultimate(ls: List[Int]): Int = ls match {
case pmate::_::Nil => pmate
@dimitrisli
dimitrisli / Spring4MultipleDBsConfig.java
Created October 14, 2015 16:32
Spring 4 DB Config - Spring Data JPA and Hibernate - Multiple DBs - Separate Datasources/TransactionManagers/EntityManagers/
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:my/db.properties")
@EnableJpaRepositories(
entityManagerFactoryRef = "DB1EntityManagerFactory",
transactionManagerRef = "DB1TransactionManager",
basePackages = "package.to.db1.dao")
public class DB1Config {
@Autowired private Environment env;
package coolcode
import java.io.File
import java.util.Properties
import org.scalatra.ScalatraServlet
class StaticFileServlet extends ScalatraServlet {
get("/*") {
val resourcePath = getResourcePath
@dimitrisli
dimitrisli / ScalaTennisHistoricalDataRetriever
Created January 14, 2014 17:37
Scala Tennis Historical Data Retriever
package data.analysis.tennis
import scala.io.Source
import java.util.Date
import java.text.SimpleDateFormat
object TennisDataAnalysis extends App{
def wrapStringInt(stringInt:String) = if(stringInt=="") None else Some(stringInt.toInt)
@dimitrisli
dimitrisli / Mail.scala
Last active March 22, 2017 08:51 — forked from mariussoutier/Mail.scala
Makes sense to wrap in Some instead of Option since the case is exhaustive
package object mail {
implicit def stringToSeq(single: String): Seq[String] = Seq(single)
implicit def liftToOption[T](t: T): Option[T] = Some(t)
sealed abstract class MailType
case object Plain extends MailType
case object Rich extends MailType
case object MultiPart extends MailType
@dimitrisli
dimitrisli / App.java
Created January 4, 2018 22:57 — forked from thomasdarimont/App.java
How to use custom SpEL functions in @value with Spring Boot
package demo;
import static java.lang.reflect.Modifier.*;
import java.util.Arrays;
import java.util.Set;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanExpressionResolver;
@dimitrisli
dimitrisli / RegEx Greek Words
Created July 15, 2019 23:03
RegEx Greek Words
[αΑβΒΓγΔδΕεζΖΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣσΤτΥυφΦΧχΨψΩωΆάΈέΉήΊίόΌύΎώΏ]+
@dimitrisli
dimitrisli / LoggingClientHttpRequestInterceptor.java
Created February 29, 2020 09:13 — forked from jkuipers/LoggingClientHttpRequestInterceptor.java
RestTemplate-interceptor that logs outgoing requests and resulting responses
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpRequest;
import org.springframework.http.MediaType;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.util.StreamUtils;
@dimitrisli
dimitrisli / HttpClientAutoConfiguration.java
Created February 29, 2020 09:13 — forked from jkuipers/HttpClientAutoConfiguration.java
Spring Boot auto-configuration example for an Apache Components HTTP client and its usage in all RestTemplates created by the RestTemplateBuilder, plus trace logging support
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.client.RestTemplateCustomizer;