Ejemplo de proyecto maven multimodulo con cobertura de clases entre modulos.
En el ejemplo están separados los tests de integración y el código en módulos diferentes.
https://github.com/raulvillalbamedina/sonar-scanning-examples
martes, 30 de mayo de 2017
viernes, 5 de mayo de 2017
PrettyJson en java sin librerias externas
private static String prettyJson(String responseBody) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine scriptEngine = manager.getEngineByName("JavaScript");
scriptEngine.put("jsonString", responseBody);
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
return (String) scriptEngine.get("result");
}
miércoles, 3 de mayo de 2017
SchemaSpy en ubuntu
Hay que tener java8 instalado para poder ejecutar el jar.
Probar el comando java -version en linea de comandos.
Debería salir un mensaje de este estilo:
java version "1.8.xx"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Si no sale este mensaje seguir un tutorial de este tipo:
https://www.digitalocean.com/community/tutorials/instalar-java-en-ubuntu-con-apt-get-es
Descargas:
Hay que descargar/instalar 3 cosas:
- Schemaspy, el programa:
https://github.com/schemaspy/schemaspy/releases
- Conector a la base de datos (en mi caso mysql):
http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-5.1.6-bin.jar.zip
Por defecto busca el jar en /mysql/, así que deberás ponerlo en la raiz.
- Graphviz, sin esto funciona pero no se generan gráficos
http://www.graphviz.org/pub/graphviz/stable/ubuntu/ub13.10/x86_64/graphviz_2.38.0-1~saucy_amd64.deb
Tiene que estar incluido en el path, y poder ejecutarse el comando "dot" desde cualquier lugar
Comandos:
Dependiendo de tu base de datos hay que poner unos parámetros u otros, para saber cuales hay que poner, ejecutar:
java -jar schemaSpy_TU.VERSION.jar -dbhelp
En mi caso me fijo en esto
mysql:
MySQL
-host hostname[:port] host where database resides with optional port
-db database name
Una vez que tienes esto el comando completo sería éste, para mysql:
java -jar schemaSpy_TU.VERSION.jar -t mysql -host localhost -port 3306 -db database_dev -s schema_dev -u user1 -p mypass -o directory
Probar el comando java -version en linea de comandos.
Debería salir un mensaje de este estilo:
java version "1.8.xx"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Si no sale este mensaje seguir un tutorial de este tipo:
https://www.digitalocean.com/community/tutorials/instalar-java-en-ubuntu-con-apt-get-es
Descargas:
Hay que descargar/instalar 3 cosas:
- Schemaspy, el programa:
https://github.com/schemaspy/schemaspy/releases
- Conector a la base de datos (en mi caso mysql):
http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-5.1.6-bin.jar.zip
Por defecto busca el jar en /mysql/, así que deberás ponerlo en la raiz.
- Graphviz, sin esto funciona pero no se generan gráficos
http://www.graphviz.org/pub/graphviz/stable/ubuntu/ub13.10/x86_64/graphviz_2.38.0-1~saucy_amd64.deb
Tiene que estar incluido en el path, y poder ejecutarse el comando "dot" desde cualquier lugar
Comandos:
Dependiendo de tu base de datos hay que poner unos parámetros u otros, para saber cuales hay que poner, ejecutar:
java -jar schemaSpy_TU.VERSION.jar -dbhelp
En mi caso me fijo en esto
mysql:
MySQL
-host hostname[:port] host where database resides with optional port
-db database name
Una vez que tienes esto el comando completo sería éste, para mysql:
java -jar schemaSpy_TU.VERSION.jar -t mysql -host localhost -port 3306 -db database_dev -s schema_dev -u user1 -p mypass -o directory
lunes, 10 de abril de 2017
viernes, 31 de marzo de 2017
miércoles, 29 de marzo de 2017
arrancar aplicación springboot en segundo plano desde unix
nohup java -jar -Dspring.profiles.active=production example-springboot.jar > /dev/null 2>&1 &
miércoles, 15 de marzo de 2017
Spring data rest, HATEOAS exposeIds
Para que las rests HATEOAS muestren los campos id de cada elemento:
@Component
@Slf4j
public class SpringDataRestCustomization extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
listMatchingClasses(Entity.class).forEach(entity -> config.exposeIdsFor(entity));
}
public List<Class> listMatchingClasses(Class annotationClass) {
List<Class> classes = new LinkedList<Class>();
ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true);
scanner.addIncludeFilter(new AnnotationTypeFilter(annotationClass));
for (BeanDefinition bd : scanner.findCandidateComponents(Project.class.getPackage().getName())) {
try {
classes.add(Class.forName(bd.getBeanClassName()));
} catch (ClassNotFoundException e) {
log.error("listMatchingClasses problem", e);
}
}
return classes;
}
}
jueves, 2 de marzo de 2017
Spring4, cors, problema con seguridad
Paso 1. Añadir una clase de configuración para corsConfigurer:
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
};
}
}
Paso 2. Añadir Clase para seguridad
@EnableWebSecurity
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**").authorizeRequests().requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
.anyRequest().fullyAuthenticated().and().httpBasic().and().csrf().disable();
}
}
jueves, 26 de enero de 2017
miércoles, 25 de enero de 2017
martes, 24 de enero de 2017
postgresql dump y restore
Borrar todo:
Creación de dump:
pg_dump.exe -Uuser database > dump.dump
Restore de dump:
psql -Uuser -e "database" < "dump.dump"
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
Creación de dump:
pg_dump.exe -Uuser database > dump.dump
Restore de dump:
psql -Uuser -e "database" < "dump.dump"
Suscribirse a:
Entradas (Atom)