Le Blog de BiBiMax

Aller au contenu | Aller au menu | Aller à la recherche

mardi, avril 14 2009

Maven & Home Directory sont dans un bateau

Je viens d'être confronté à un bug très gênant et difficile à détecter avec Maven.

Dans le settings.xml, celui-ci ne comprend pas :

<localRepository>~/.m2/repository</localRepository>

il faut mettre le chemin complet :

<localRepository>/home/bibi/.m2/repository</localRepository>

sinon maven crée un répertoire tilde à la racine du home directory : /home/bibi/~/ et ne retrouve donc pas ses petits.

mardi, octobre 14 2008

Accélérer le parsing XML STAX en ne téléchargeant pas les TLDs

Et bien tout est dans le titre ;)

Pour accélérer le parsing d'un document XML, il est parfois utile de ne pas télécharger les TLDs.

XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty("javax.xml.stream.supportDTD", false); // ne télécharge pas les TLDs
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
InputStream reader = new FileInputStream(file);
XMLEventReader parser = factory.createXMLEventReader(reader);

vendredi, mars 7 2008

Anyedit : un plugin plutot pratique pour Eclipse

Qui n'a jamais voulu supprimer tous les espaces inutiles en fin de ligne ou encore remplacer les espaces par des tabulations dans ses projets Java ?

AnyEdit est fait pour vous, il permet de supprimer les fameux "trailling whitespace" dans les JSP et même de convertir les espaces en tabulations (et vice-versa).

L'avantage par rapport à la fonction native d'Eclipse, c'est que celui-ci ne se contente pas que des fichiers.JAVA. :-)

vendredi, décembre 21 2007

Ant, Eclipse et SSH sont dans un bateau

Quelque chose qui peut être pratique avec ant est la possibilité d'éxécuter des commandes sur un serveur linux ou copier des fichiers via ssh.

Pour cela il vous faut un jar : jsch.jar.

Il faut ensuite ajouter ce jar au classpath des external tools d'Eclipse

Pour y arriver :

  • afficher la vue ANT
  • Drag and Dropper votre script ANT dans cette vue
  • clique droit sur le script dans la vue -> Run as... -> Open External Tool Dialog
  • Classpath
  • Additional Tasks & Support
  • Add External Jars...
  • Ajouter jsch.jar

Au niveau du script ANT:

build.properties

temp=D://Temp//
integration.url=192.168.0.1
integration.export=/home/j2ee/export/
integration.tomcat=/home/j2ee/tomcat/
integration.user=j2ee
integration.password=j2ee

build.xml

<target name="update_integration" description="Mets a jour le serveur d'intégration">
		<echo message="Déployement sur le vserver" />
		<delete file="${temp}maWebapp.zip" />
		<zip destfile="${temp}maWebapp.zip" basedir=".">
			<exclude name="WEB-INF/classes/log4j.properties" />
			<exclude name="work" />
			<exclude name=".**" />
			<exclude name="build*" />
			<exclude name="build.xml" />
		</zip>

		<echo message="Copie du zip sur vserver" />
		<scp trust="true" file="${temp}maWebapp.zip" todir="${integration.user}@${integration.url}:${integration.export}" password="${integration.password}" />

		<echo message="Arrêt tomcat" />
		<sshexec trust="true" host="${integration.url}" username="${integration.user}" password="${integration.password}" command="${integration.tomcat}bin/shutdown.sh" />
		<echo message="Attente 10 secondes arrêt tomcat" />
		<sleep seconds="10" />

		<echo message="Decompression distante" />
		<sshexec trust="true" host="${integration.url}" username="${integration.user}" password="${integration.password}" command="unzip -o ${integration.export}maWebapp.zip -d ${integration.tomcat}webapps/maWebapp/" />

		<echo message="Redémarrage du tomcat" />
		<sshexec trust="true" host="${integration.url}" username="${integration.user}" password="${integration.password}" command="${integration.tomcat}bin/startup.sh" />
	</target>

Note : Je conseille pour le transfert de fichier de compresser les fichiers et ensuite les décompresser sur le serveur. Si vous avez trop de fichiers, le scp ne semble pas apprécier alors que l'envoi d'un unique gros fichier (un zip) ne pose pas de soucis.

mercredi, septembre 5 2007

JMimeMagic : une librairie java pour détecter le mime type d'un fichier

JMimeMagic est une bibliothèque java qui permet de déterminer le type MIME d'un fichier ou d'un flux.

Et voici un bout de code pour l'utiliser

File file = new File("/home/bibi/monfichieratester");
InputStream inputStream = new FileInputStream(file);
ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();
int readByte;
while ((readByte = inputStream.read()) != -1) {
    byteArrayStream.write(readByte);
}
String mimetype = "";
byte[] bytes = byteArrayStream.toByteArray();

MagicMatch m = Magic.getMagicMatch(bytes);
mimetype = m.getMimeType();

- page 1 de 2