Archives de catégorie : Code

Implémentation de Crudify pour Lift MongoDB

Besoins d’une partie administration rapide pour votre application web Lift avec MongoDB?
Je peux au moins vous simplifier la vie avec une génération automatique des commandes CRUD List / Edit / Delete de votre modèle.

Ci-dessous en lien, une classe pour mongoDB de Crudify, elle gère que le premier niveau et les types simple, après, à vous de l’étendre.
Cette implémentation utilise la bibliothèque Rogue de FourSquare.

Classe

https://github.com/heralight/Lift-MongoDb-Crudify/blob/master/src/main/scala/code/lib/MongoCrudify.scala

Projet de test

https://github.com/heralight/Lift-MongoDb-Crudify

D’autres liens utiles sur Crudify et lift

https://github.com/timperrett/lift-in-action // Chapitre 5 pour Crudify
http://neuralmonkey.blogspot.fr/search/label/lift // crudify + lift
http://neuralmonkey.blogspot.fr/2009/08/lift-listing-entities-without-crudify.html
https://github.com/tromberg/Winglet/blob/master/src/main/scala/be/romberg/liftweb/util/MBindHelper.scala // Crudify like
http://www.assembla.com/spaces/liftweb/wiki/MapperBinder
https://github.com/oliverdaff/Lift-Shopping
http://www.assembla.com/wiki/show/liftweb/Creating_the_UI_for_Mapper_entities
https://groups.google.com/forum/?fromgroups#!topic/liftweb/r52KTSwpv2s // How to customize CRUDify HTML
https://groups.google.com/forum/?fromgroups#!searchin/liftweb/admin/liftweb/yzyMn0IKJ4Y/ViXKgFWzJ0QJ // CRUDify with SquerylRecord & one-to-many relationship

Si vous avez des suggestions…

INotifyPropertyChanged et PostSharp en AOP

Un petit retour nostalgique sur mon implémentation C# de l’interface INotifyPropertyChanged en AOP avec PostSharp.

http://www.sharpcrafters.com/forum/FindPost3630.aspx

Installer un miroir Maven sur un Nas Synology

But

Installer un miroir Maven sur un Nas Synology, pour accéder plus rapidement aux différents paquets, travailler en intranet,…etc.

Pré-requis

Java, pour l’installer vous pouvez suivre l’article Installer un miroir Maven sur un Nas Synology

Outils

Comme pour le serveur d’application web Java,  Il nous faut un serveur Maven léger. On peut exclure nexus et assimilé, trop complexe et trop gourmand pour nos besoins et surtout nos ressources.
Notre choix se porte sur maven-proxy de codehaus, simple mais efficace, disponible sur http://maven-proxy.codehaus.org/Downloads

Etapes

Passons dans le chroot

Nas>./initDebChroot.sh

L’installation est simple, on peut par exemple décompresser l’archive dans /opt:

Nas> mkdir /opt/mvnrepo
Nas> cd /opt/mvnrepo
Nas> wget http://dist.codehaus.org/maven-proxy/distributions/maven-proxy-standalone-0.2.zip
Nas> unzip maven-proxy-standalone-0.2.zip

Concernant la configuration, en voici une préconfigurer pour les dépôts de springsource. Ajouter, en priorisant, vos repositories dans la deuxième partie du fichier. N’oubliez pas de rajouter leur token dans la liste de la variable repo.list.

Un script pour simplifier le démarrage runMvnProxy.sh:

java  -jar /opt/mvnrepo/maven-proxy-standalone-0.2-app.jar /opt/mvnrepo/MavenProxy.properties

Exécutez-le et testez votre installation http://Nas:9999/

Utiliser ce miroir

sur vos postes de travail, vous devez modifier le fichier settings.xml de maven comme ceci:

<settings>
.
.
<mirrors>
    <mirror>
      <id>MavenMirror</id>
      <name>Home Maven Mirror</name>
      <url>http://NAS:9999/repository/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

.
.
</settings>

Pour plus de détails sur cette configuration http://maven.apache.org/guides/mini/guide-proxies.html

Lancer le serveur au démarrage du NAS

Après avoir automatisé l’initialisation du chroot debian,
Un script pour automatiser le démarrage de ce miroir maven, nous le nommerons S93MavenProxy.sh :

#!/bin/sh
#

SynoStop=/usr/bin/killall

case $1 in
start)
echo "Launch Maven Proxy ..."
chroot /opt/debian/chrootgnuspe /opt/mvnrepo/runMvnProxy.sh &amp;
;;
stop)
#$SynoStop tracd > /dev/null 2>&amp;1
;;
#restart)
#   $0 stop
#   $0 start
#   ;;
*)
echo "Usages: $0 [start|stop|restart]"
;;
esac

ajouter le script au répertoire rc.d:

NAS> ln -s yourVolume1Rc.dScript/S93MavenProxy.sh /usr/syno/etc.defaults/rc.d/

TODO:

supporter le stop et restart du script de service.