Como cambiar el idioma a español en el SonarQube


Sonar nació para ser utilizada en desarrollos Java, pero actualmente soporta más de 20 lenguajes incluyendo Java, C#, JavaScript, TypeScript, C/C++, COBOL  y mas   integrándose  con  Maven, Ant y herramientas de integración continua como Atlassian Bamboo y Jenkins.

SonarQube es pues  una potente herramienta open software  que permite analizar el código fuente  informándonos ,entre otras cosas, sobre código duplicado, estándares de codificación, pruebas unitarias, cobertura de código, complejidad ciclomática y mucho mas.

 

Instalación  automática plugins

SonarQube puede extender su funcionalidad por medio de la instalación de los famosos  plugins, los cuales atienden  a funcionalidades ampliadas  como pueden ser lenguajes soportados ( los mas normales son c#, java y js), otras herramientas de desarrollo,integración y gobierno así como otros  Idiomas soportados para el interfaz de Sonar

De  forma general  siempre que queramos instalar un plugin debemos asegurarnos que dicho plugin está disponible para la versión de SonarQube que estamos usando   comprobándolo antes en la  matriz de versiones para cerciorarnos de que dicho plugin es compatible con nuestra versión

Para instalar un plugin  de  forma automática por medio del Update Center  solamente hay que ir  Administration –> System  –>Update Center

En el caso de querer instalar el  idioma español el plugin se llama Spanish Pack 

Pulsaremos Install  sobre la opción Spanish  Pack el lado derecho    y luego realizada la descarga     no  olvidemos pulsar  el boton   Restart  en la parte superior y

 

Instalación manual de Plugins

Para instalar un plugin de forma manual  basta con ubicar el archivo JAR en la carpeta
\sonarqube-XXXX\extensions\plugins y en el siguiente inicio de Sonar ya se contará con el plugin.

En caso de no tener el archivo JAR tendremos que ejecutar un mvn package, mover el jar al directorio de plugins  y reiniciar el Sonar, procedimiento que podemos seguir por ejemplo  para cambiar el idioma del Sonar a esapañol .

Para  instalar el  plugin para tener Sonar en Castellano  podemos seguir los siguientes pasos:

1-Comprobamos también  antes en la  matriz de versiones para cerciorarnos de que dicho plugin es compatible con nuestra versión  pudiéndose instalar éstos  tanto de forma automática por medio del Update Center como de forma manual.

En el caso de idioma español el plugin como hemos dicho , se llama Spanish Pack  y es compatible con todas las versiones del Sonar:

spanishpack.PNG

2- En la matriz de plugin  citada pulsamos en el link de Spanish Pack lo que nos lleva al repositorio de GitHub del siguiente pantallazo.
Obtenemos asi la URL en la parte inferior derecha para, mediante git, clonar el repositorio. La  url del Git  seria:https://github.com/SonarQubeCommunity/sonar-l10n-es 

github.PNG

3-  Descargaremos el  archivo   ZIP   ,   descomprimiendo después el fichero en un directorio del ordenador

4-Ahora , desde una ventana de comandos nos iremos al directorio donde los descargamos y  ejecutamos:  mvn  package

consola

Al finalizar el proceso , que como vemos tarda unos 13 minutos , en la carpeta target dentro de la  carpeta que descomprimimos, ya    tendremos el archivo JAR

español.PNG

Ahora  solo nos toca  copiar   dicho ficjero jar al directorio de Plugins  del sonnar  , y ya nos  servirá como plugin para modificar el idioma en cuanto se reinicie.

sonarplugins

Si esta el sonar ejecutándose sobre Windows habría que matar los procesos  java relacionados con el Sonar  o si no nos importa reiniciamos el equipo , y  volvemos a lanzar el Sonar

 

Tanto si lo hace de forma automática como si hace la instalación del  plugin de forma manual al reiniciar ya debería tener el idioma español:

 

Mas información  en  SonarQube,org

Anuncios

Cambiar permisos en Solaris desde java


Como es sabido , hay 3 atributos básicos en Unix  para archivos simples: lectura, escritura y ejecutar.

  •  R  , es decir permiso de lectura (read):Si tiene permiso de lectura de un archivo, puede ver su contenido.
  • W , es decir  permiso de escritura (write):Si tiene permiso de escritura de un archivo, puede modificar el archivo. Puede agregar, sobrescribir o borrar su contenido.
  • X, es decir permiso de ejecución (execute):Si el archivo tiene permiso de ejecución, entonces puedes decirle al sistema operativo que lo ejecute como si fuera un programa. Si es un programa llamado “foo” lo podremos ejecutar como cualquier comando.

En este punto es muy interesante saber que un script en Cshell  (interprete) necesitara permisos de lectura y ejecución para poderlo lanzar, pero sin embargo un programa compilado  en java( por ejemplo en un jar) solo necesitara permisos de lectura  .

Para  cambiar los permisos tanto en directorios como en ficheros en todas las versiones de unix y variantes   usamos el comando  chmod (change mode)  pudiéndose agregar o remover permisos a uno o mas archivos con + (mas) o – (menos)

La representación octal de chmod es muy sencilla:

  • Lectura tiene el valor de 4
  • Escritura tiene el valor de 2
  • Ejecución tiene el valor de 1

Entonces:

 rwx | 7 | Lectura, escritura y ejecución |
rw- | 6 | Lectura, escritura |
r-x | 5 | Lectura y ejecución |
r– | 4 | Lectura |
-wx | 3 | Escritura y ejecución |
-w- | 2 | Escritura |
–x | 1 | Ejecución |
— | 0 | Sin permisos |

Por lo tanto:

chmod u=rwx,g=rwx,o=rwx | chmod 777 |
chmod u=rwx,g=rx,o= | chmod 760 |
chmod u=rw,g=r,o=r | chmod 644 |
chmod u=rw,g=r,o= | chmod 640 |
chmod u=rw,go= | chmod 600 |
chmod u=rwx,go= | chmod 700 |

Es decir para asignar a  un fichero o directorio permisos totales usaremos  el comando

chmod 777  fichero

Es una tarea habitual  que  nuestras aplicaciones java necesiten cambiar permisos  en el sistema de ficheros no solo windows sino tambien en la maquina donde se ejecutaran ( Solaris, Unix,etc)

La forma tradicional de hacerlo a partir de Jr6   es mediante las primitivas  setReadable, setExecutable  o setWritable  del   objeto fichero (file)

Por ejemplo para dar permisos totales (777) sobre un objeto file,   esta es  la sintaxis a usar:

     file.setReadable(true, false);

     file.setExecutable(true, false);

     file.setWritable(true, false);

Por  desgracia   aunque podamos compilar código java mediante las primitivas  setReadable, setExecutable  o setWritable ,por ejemplo para dar permisos totales (777) sobre un objeto file ,   puede que en la maquina donde se ejecute  nos falle  porque tenga otra versión de java inferior

 

Una solución bastante potente que  resuelve el problema es usar  el metodo untime.getRuntime().exec     que nos permite invocar  a otro programa java o incluso comandos del sistema operativo ( en nuestro  caso chmod 77)

 

Como ejemplo ,  os  muestro una clase que cambia los permisos a 777 un fichero o directorio que se le pase como parámetro:

public static void permisos777 (final String pathname)
{

Process theProcess = null;

//intentamos cambiar los permisos del fichero recien creado
System.out.println(“Cambiamos permisos 777 a “+pathname);
try
{
theProcess = Runtime.getRuntime().exec(“chmod 777 “+ pathname);
}
catch(IOException e)
{
System.out.println(“Error en el método exec()”);
}
//fin de cambio de permisos

}