Skip to content

Instantly share code, notes, and snippets.

@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
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 / 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;
@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;