Skip to content

Instantly share code, notes, and snippets.

# file name must be .travis.yml
language: java
jdk: openjdk10
before_install:
- wget http://services.gradle.org/distributions/gradle-5.4.1-bin.zip
- unzip -qq gradle-5.4.1-bin.zip
- export GRADLE_HOME=$PWD/gradle-5.4.1
- export PATH=$GRADLE_HOME/bin:$PATH
- gradle -v
public class SchemaParser {
private Lexer lexer;
private TokenType currentToken;
public SchemaParser(Reader r) {
lexer = new Lexer(r);
}
private RawSchema parse() throws SyntaxError {
RawSchemaBuilder rawSchemaBuilder = new RawSchemaBuilder();
public class Lexer {
private StreamTokenizer input;
public enum TokenType {
INTERFACE("INTERFACE"),
ENTITY("ENTITY"),
EMBEDABLE("EMBEDABLE"),
IMPLEMENTS("IMPLEMENTS"),
L_BRACE("{"),
R_BRACE("}"),
@h4t0n
h4t0n / ExceptionHandlerExample.java
Created December 9, 2018 11:37
[GEMINI] ExceptionHandlerExample
@ExceptionHandler(EntityRecordException.class)
public ResponseEntity<?> handleEntityFoundException(EntityRecordException exception) {
HttpStatus httpStatus = HttpStatus.INTERNAL_SERVER_ERROR;
switch (exception.getErrorCode()) {
case MULTIPLE_LK_FOUND:
httpStatus = HttpStatus.CONFLICT;
break;
case LK_NOTFOUND:
case INSERTED_RECORD_NOT_FOUND:
httpStatus = HttpStatus.NOT_FOUND;
@h4t0n
h4t0n / ErrorService.java
Created December 5, 2018 22:48
[Gemini] ErrorService
@Service
public class ErrorService implements InitializingBean {
private List<String> ERROR_CODES = new ArrayList<>();
@Override
public void afterPropertiesSet() throws Exception {
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new AssignableTypeFilter(GeminiException.class));
Set<BeanDefinition> components = provider.findCandidateComponents("it.at7.gemini");
for (BeanDefinition component : components) {
@h4t0n
h4t0n / EntityRecordException.java
Created December 5, 2018 22:02
[Gemini] EntityRecordException
public class EntityRecordException extends GeminiException {
public enum Code {
MULTIPLE_LK_FOUND,
LK_NOTFOUND,
INSERTED_RECORD_NOT_FOUND
}
private final Entity entity;
private final Collection<? extends Record.FieldValue> lk;
private final Code errorCode;
@h4t0n
h4t0n / GeminiException.java
Last active December 4, 2018 22:35
Spring Error Handling Pattern
public class GeminiException extends Exception {
String errorCodeName;
protected GeminiException(String errorCodeName) {
super(errorCodeName);
this.errorCodeName = errorCodeName;
}
protected GeminiException(String errorCodeName, String message) {
super(message);
@h4t0n
h4t0n / gmaps_hashtag.ipynb
Last active December 17, 2019 00:42
gmaps hashtag jupyter
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@h4t0n
h4t0n / google-dorks
Created May 5, 2017 18:52 — forked from stevenswafford/google-dorks
Listing of a number of useful Google dorks.
" _ _ "
" _ /|| . . ||\ _ "
" ( } \||D ' ' ' C||/ { % "
" | /\__,=_[_] ' . . ' [_]_=,__/\ |"
" |_\_ |----| |----| _/_|"
" | |/ | | | | \| |"
" | /_ | | | | _\ |"
It is all fun and games until someone gets hacked!
@h4t0n
h4t0n / RetweetInfluencer.java
Last active May 4, 2017 21:29
Retweet from Influencer with Spring Boot and Twitter4j
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import twitter4j.*;
import javax.annotation.PostConstruct;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;