Skip to content

Instantly share code, notes, and snippets.

View milovtim's full-sized avatar

Timur milovtim

  • MTVv
  • Saint-Petersburg
View GitHub Profile
@milovtim
milovtim / jackson_databind_json_append.groovy
Last active October 13, 2017 14:09
Sample snipped showing how to setup virtual property/attribute in jackson objectmapper
import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.databind.JavaType
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SequenceWriter
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.databind.SerializerProvider
import com.fasterxml.jackson.databind.annotation.JsonAppend
import com.fasterxml.jackson.databind.annotation.JsonSerialize
import com.fasterxml.jackson.databind.cfg.MapperConfig
import com.fasterxml.jackson.databind.introspect.AnnotatedClass
@milovtim
milovtim / BenManesCaffeine.groovy
Created August 4, 2017 12:14
Simple usage example of sync LoadingCache
import com.github.benmanes.caffeine.cache.CacheLoader
import com.github.benmanes.caffeine.cache.LoadingCache
import com.github.benmanes.caffeine.cache.Caffeine
import com.github.benmanes.caffeine.cache.RemovalCause
static def threadName() {
"${Thread.currentThread().name}}"
}
LoadingCache<Integer, Integer> cache = Caffeine.newBuilder()
@milovtim
milovtim / groovySqlCopyData.groovy
Created June 14, 2017 13:18
Copy complex data between databases
import groovy.sql.Sql
import groovy.transform.Canonical
import groovy.transform.Field
Sql casinoDb = Sql.newInstance('jdbc:oracle:thin:@host1:1521/testdb1', 'uname', 'passwd')
Sql ewDb = Sql.newInstance('jdbc:oracle:thin:@host2:1521/testdb' , 'uname', 'passwd')
def sourceDataSql = new File('/some/file/path.sql').text
@Canonical
@milovtim
milovtim / TreeVisitor.groovy
Created April 26, 2017 12:39
Simple implementation and example of tree traversal strategies: deepth-first and breath-first
package com.panbet.tree
import groovy.transform.ToString
import spock.lang.Shared
import spock.lang.Specification
/**
* Simple example of deep-first and breath-first tree traversal
* Sample tree
* <pre>
@milovtim
milovtim / FSMonTest.groovy
Last active April 21, 2017 11:42
Monitor FS changes for dir/file create/delete/change
package com.panbet.tree
import org.apache.commons.io.IOCase
import org.apache.commons.io.monitor.FileAlterationListener
import org.apache.commons.io.monitor.FileAlterationMonitor
import org.apache.commons.io.monitor.FileAlterationObserver
import static org.apache.commons.io.filefilter.FileFilterUtils.*
@milovtim
milovtim / logback.xml
Created March 22, 2017 16:50
IntelliJ Idea file template
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="true">
<property name="FILE_LOG_PATTERN"
value="%d{dd/MM HH:mm:ss:SS} %level [%thread] %logger{10} [%file:%line] %msg%n"/>
<property name="LOG_PATH"
value="#[[$logPrefix$]]#" />
<!-- APPLICATION LOGGING-->
@milovtim
milovtim / getters-to-builder.groovy
Last active February 20, 2017 17:18
Get class FQN and compose builder methods
import groovy.text.SimpleTemplateEngine
import java.lang.reflect.Method
def classFQN = args.length > 0? args[0]: System.exit(1)
Class<?> clazz = Class.forName(classFQN, false, getClass().getClassLoader())
class BuilderTemplateWrapper {
final Class<?> clazz
@milovtim
milovtim / govorim-pravilno.m3u
Last active February 12, 2017 20:25
mayak-podcasts
#EXTM3U
#EXTINF:2061, Норма современного языка
http://audio.vgtrk.com/listen?id=1359030
#EXTINF:2539, Языковые изменения и проблемы орфографии
http://audio.vgtrk.com/listen?id=1360215
#EXTINF:2105, Латиница и кириллица: соперники или союзники?
http://audio.vgtrk.com/listen?id=1360846
#EXTINF:2223, Паронимы
http://audio.vgtrk.com/listen?id=1362651
#EXTINF:2035, Омонимы
interface DemoInterface {
HelloMsg sayHelloImpl(AddresseeRequest request);
@RequestMapping(value = "/hello")
default HelloMsg sayHello(@RequestBody AddresseeRequest request) {
return sayHelloImpl(request);
}
}
@RestController
@milovtim
milovtim / brendyatina.m3u
Last active February 12, 2017 16:15
Список воспроизведения подкастов радио "Маяк"
#EXTM3U
#EXTINF:1874, Metro-Goldwyn-Mayer
http://audio.vgtrk.com/listen?id=810182
#EXTINF:1427, Xerox
http://audio.vgtrk.com/listen?id=810233
#EXTINF:1491, Versace
http://audio.vgtrk.com/listen?id=810269
#EXTINF:1463, Siemens
http://audio.vgtrk.com/listen?id=810321
#EXTINF:1374, Хоккей