Accueil > scala, veille > Scala & Spring : Combiner le meilleur des deux mondes

Scala & Spring : Combiner le meilleur des deux mondes

Aujourd’hui un article sur Scala et Spring a été publié sur le site InfoQ. Je ne connais pas Scala donc forcément, ça m’intéresse.

L’article se nomme Scala & Spring: Combine the best of both worlds. L’article est intéressant et le billet que vous êtes en train de lire parle de comment mettre en place l’environnement de développement pour tester en vrai les exemples!

J’explique pas à pas comment faire, et dans la partie Bétisier vous trouverez les problèmes que j’ai pu rencontrer et comment je les ai réglé.

Récupération des sources avec Git.

Git est un système de gestion de versions décentralisé Open Source.

Pour l’installer, sous Ubuntu, c’est simple

sudo apt-get install git-core

Ensuite, il suffit d’exécuter la commande suivante pour rappatrier les sources de l’auteur

git clone git://github.com/upeter/Scala-Spring-Integration.git

Sortie console

remote: Counting objects: 93, done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 93 (delta 19), reused 0 (delta 0)
Receiving objects: 100% (93/93), 18.33 KiB, done.
Resolving deltas: 100% (19/19), done.

On obtient un dossier  Scala-Spring-Integration avec le contenu suivant

.
|– pom.xml
|– ScalaSpringIntegration.iml
`– src
|– main
|   |– java
|   |   `– org
|   |       `– jsi
|   |           `– di
|   |               `– spring
|   |                   `– RichDomainObjectFactory.java
|   |– resources
|   |   |– ctx-datasource.xml
|   |   |– ctx-jpa.xml
|   |   |– hibernate
|   |   |   `– Person.hbm.xml
|   |   |– log4j.xml
|   |   `– META-INF
|   |       `– persistence.xml
|   `– scala
|       |– log4j.xml
|       `– org
|           `– jsi
|               `– domain
|                   |– Dao.scala
|                   |– hibernate
|                   |   `– DependencyInjectionInterceptor.scala
|                   |– jpa
|                   |   |– AbstractScalaJpaDaoSupport.scala
|                   |   |– JpaPersistable.scala
|                   |   `– JpaPersonDao.scala
|                   |– NotificationService.scala
|                   `– Person.scala
`– test
`– scala
`– org
`– jsi
`– domain
`– jpa
|– AbstractDatabaseTestCase.scala
`– JpaPersonDaoTest.scala

Compilation et Exécution

On vérifie que tout marche comme il faut grâce à notre ami Maven

$> mvn test

Results :

Tests run: 6, Failures: 0, Errors: 0, Skipped: 0

Bien, tout est OK.

Et dans Eclipse ? On génère les fichiers projets grâce à Maven

mvn eclipse:eclipse

On lance Eclipse et on installe le plugin Scala dont l’update site est

http://www.scala-lang.org/scala-eclipse-plugin

Un bon point, la coloration syntaxique fonctionne sur les fichier .scala!

Bon, et si on lancait les tests JUnit depuis Eclipse? Pour cela, j’ai utilisé le tutoriel disponible ici.

La classe de test à exécuter est org.jsi.domain.jpa.JpaPersonDaoTest et Ô magie! Les tests sont verts !

Conclusion

Voilà, notre environnement de développement est prêt, nous sommes parés pour expérimenter Scala! Je vous souhaite une bonne lecture avec l’article d’Infoq, et bon courage pour mettre en place votre environnement de développement.

J’utilise Eclipse, alors n’hésitez pas à me dire comment ça se passe sur IntelliJ, Netbeans, ou autre …

Bon courage à tous et n’hésitez pas à me laisser vos impressions!

Bétisier

Ah les repositories!

Alors les parmi les problèmes rencontrés, j’ai dû ajouter un « include pattterns » au remote repository Jboss dans la configuration d’Artifactory sinon la compilation Maven échouait, 2 dépendances n’étaient pas trouvées :

javax/jms/**

Ensuite, j’ai modifié le pom.xml du projet pour remplacer la dépendance jakarta-oro par oro, celà donne :

<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>

Non, tu ne testeras pas Helios ce soir !

Je voulais tester Eclipse Helios M7 mais malheureusement le plugin Scala n’est pas encore compatible! Donc je reste finalement sur Eclipse Galileo, tant pis!

Bah, ils sont où les tests et les fichiers Scala?

Pensez à ajouter les source folder

src/test/scala

src/main/scala

Le plugin Eclipse Scala crashe ?

Si vous avez des erreurs Eclipse comme :

Could not write file: /home/n3k/code/svn/kaddath/veille/spring_scala/Scala-Spring-Integration/.manager/_$_home_$_n3k_$_code_$_svn_$_kaddath_$_veille_$_spring_scala_$_Scala-Spring-Integration_$_src_$_main_$_java_$_org_$_jsi_$_di_$_spring_$_RichDomainObjectFactory.java.

Il suffit de fermer et réouvrir le projet Eclipse 😉

sources

Eclipse Helios M7 : http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliosm7

InfoQ : http://www.infoq.com/articles/scala_and_spring

Git : http://git-scm.com/

Article Wikipedia sur la gestion de version décentralisée : http://fr.wikipedia.org/wiki/Gestion_de_version_d%C3%A9centralis%C3%A9e

Using the Scala IDE for Eclipse with JUnit : http://www.scala-lang.org/node/363

Publicités
Catégories :scala, veille Étiquettes : , , , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :