Affichage des articles dont le libellé est Groovy. Afficher tous les articles
Affichage des articles dont le libellé est Groovy. Afficher tous les articles

lundi 17 août 2009

Grails, groovy & Google Appengine (3G): créer et déployer votre première application dans le cloud en 10 commandes

Introduction

Après 3,5 mois de test de la version java de Googgle Appengine, j’arrive à la conclusion suivante : dans la version actuelle (Googgle Appengine SDK installé : la version 1.2.2), il est utopique de penser à migrer sans efforts des applications javaEE actuelles. La migration reste possible, n’est pas triviale.
L’approche PaaS proposé par Google, dans son offre Googgle Appengine, ne privilégie pas la réutilisation des applications existantes pour trois raisons (contrairement à l'approche - à tester- de Spring sur son CloudFoundary).


- Une limitation des API java disponible et du ClassLoader (ce lien pour les classes du JRE et ce lien will-it-play-in-app-engine ?)
  • - Une limitation des actions possibles (pas de gestion de thread, pas d’écriture dans des fichiers, …)
  • - Un changement dans l’utilisation des bases de schémas possibles de bases de données
  • Il est préférable que la première application déployée soit réécrite spécialement pour le Googgle Appengine. Cela permet de comprendre le modèle de programmation et le modèle de facturation, les performances … avant même de penser à la connecter aux autres applications Google.
Pour une première exploration, je conseille d”adopter une approche RAD en utilisant l’un sur des frameworks “nouvelle approche du monde Java EE basé sur le concept de “Convention Over Configuration”.

Graisl & Groovy

Depuis sa version 1.1.1, Grails, est devenu le framework le plus prometteur de cette mouvance. Grails encapsule un condensé de Best practices, des meilleurs framewors (Spring, …) open source, des plugins spécifiques …
Ce tutorial vous permet de saisir la faciliter de création et déploiement d’une application

Créer et déployer votre première application dans le cloud en10 commandes

Alors si vous souhaiter vous lancer dans le cloud en quelques minutes : adopter l’approche 3 G : Grails, groovy & Google Appengine.

Les prérequis

  1. Java JDK installé (de préférence la dernière version )
  2. Grails installé : la version Grails 1.1.1
  3. Goggle Appenigne SDK installé : la version 1.2.2
  4. Avoir un compte Googgle Appenigne

Les étapes simplement (commades …)

  1. grails create-app my_First_3G_app
  2. cd my_First_3G_app
  3. grails uninstall-plugin hibernate
  4. grails install-plugin gorm-jpa
  5. grails install-plugin app-engine
  6. grails create-domain-class com.oxia.att.test.Message (ajouter un attribute message et faire le mapping JPA avec les annotations )
  7. grails generate-all com.oxia.att.test.Message (ajouter le code Groovy et GSP pour personaliser les écrans selon vos besoins)
  8. add to grails-app\conf\Config.groovy - google.appengine.application=" app3g "
  9. grails set-version 1
  10. grails app-engine deploy
Pour visualiser le résultat, allez au http://app3g.appspot.com
Exemple de cette approche : http://np-grails.appspot.com/twitting/list
Exemple de cette approche : http://np-grails.appspot.com/twitting/list

Pour tester localement l’application :

  • grails app-engine
  • go to http://localhost:8080 and test the app locally

Les étapes avec explications

Les étapes de 1 à 5 permettent de créer la structure de l’application
Exemple de cette approche : http://np-grails.appspot.com/twitting/list

Ce qu’il faut retenir :

Ce qu’il faut retenir, Google appengine n’est pas compatible Hibernate, et que grâce au plugin Gorm-JPA de Grails, l’utilisation des annotations JPA est possible.
Les étapes 8 à 10 : concernent le déploiement
Les étapes 6 et 7 concernent l’application Grails et le code métier, affichage …
L’application doit répondre, bien sûre, à vos besoins métiers, et correspondre à la charte graphique de votre entreprise.
Tous ses aspects peuvent être réalisés avec Grails / Groovy en respectant les limitations de Google app engine.
Espèrerons que la même application soit compatible avec l'offre de Spring sur son CloudFoundary.
Signalons, en fin, que la principale limitation qui va rencontrer votre projet : la définition de votre schéma de persistance (pour ne pas dire schéma SQL) compatible avec BigTable (ce n’est pas du SQL bien qu’on y accède en JPA ou JDO, dison GQL)
Mais ceci est un autre sujet
autres entrés sur le même sujet
Cloud Computing : Créer votre première application avec GoogleApp Engine et java
Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?

mardi 11 août 2009

Groovy,Grails & Web service: Consommer simplement un web service

Question : comment consommer simplement un web service

Réponse : avec groovy, très simplement en 3 lignes de code

Nous allons utiliser le webservice crée à l’occasion du billet suivant : Grails, Groovy, xFire & SoapUI : créer un web service et le tester en 22 lignes de codes, 7 commandes et 5 minutes

Les étapes sont simples

Etape 1 : installer Groovy

Voir ce lien :

Etape 2 (optionnel): créer un projet Groovy avec Eclipse ou avec STS (Springsource Tool Suite, la version free et conseillée pour ce type de projet)

Télécharger à partir du lien suivant: http://www.springsource.com/products/springsource-tool-suite-download

Etape 3 : ajouter la librairie nécessaire "groovyws-xxxx-0.5.0.jar »

Télécharger à partir de ce lien http://dist.codehaus.org/gmod/groovyws-minimal-0.5.0.jar

Etape 4 : créer le code pour consommer le web service (le WSDL est définie ici)


1:  def proxy = new WSClient("http://localhost:8080/webservice-xfire/services/role?wsdl", this.class.classLoader)
2: proxy.initialize()
3: def result = proxy.getRoles()
4: // utilization de la réponse
5: assert result.getClass().name=="com.oxia.att.grails.ArrayOfRole"
6: def role=result.role[0]
7: assert role.name.getClass().name=='javax.xml.bind.JAXBElement'
8: println 'NS ' +role.name.getName()
9: println 'Valeur ' +role.name.getValue()

( l’a classe Role possède une propriété ‘name’)

Explication :

dans ce usage; Groovy se base sur CXF (avec la version SOAP version: 1.1 pour le moment et présente ces deux classes org.apache.cxf.endpoint.dynamic.DynamicClientFactory et groovyx.net.ws.AbstractCXFWSClient getBindingOperationInfo)

en se basant sur le WSDL il va créer dynamiquement les classes nécessaires

  • com.oxia.att.grails.ArrayOfRole,
  • com.oxia.att.grails.GetRoles,
  • com.oxia.att.grails.GetRolesResponse,
  • com.oxia.att.grails.ObjectFactory,
  • com.oxia.att.grails.Role,
  • com.oxia.att.grails.ServiceMethod,
  • com.oxia.att.grails.ServiceMethodResponse

    Les résultats sont retournés dans un objet crée à la volé (com.oxia.att.grails.ArrayOfRole) et sont de type javax.xml.bind.JAXBElement.

    Qui contient le nameSpace : {http://grails.att.oxia.com}name

    Et la valeur : admin

    Pour ceux qui pensent que la manipulation des résultats n’est pas évidente, il est temps de se rappeler que Groovy vous permet de créer vos propre méthodes de manipulations dynamiquement.

    Ça permet de simplifier la manipulation des objets …javax.xml.bind.JAXBElement

  • C'est ici que se manifeste la puissance de Groovy en tant que langage dynamqiue avec sa capacité à manipuler les Closures ..

    Mais ceci est autre sujet …

    Lien utile:

  • Consuming a web service with Groovy Web Service
  • Groovy Web Service
  • Groovy Web Service installation

    autres sujets : Groovy & Grails

  • Tomcat, Spring, Grails, Groovy : dans le giron de Vmware
  • Groovy & Grails : L’instabilité en vue du coté JRuby, une opportunité de plus pour Groovy & Grails
  • Groovy et Grails dans le giron de SpringSource : Un bel avenir pour les langage dynamique
  • lundi 10 août 2009

    Tomcat, Spring, Grails, Groovy : dans le giron de Vmware

    10 août 2009 : Un jour d’été pas comme les autres, une montée fulgurante d’une société, crée il y a 5 ans sur la base du consulting autour d’un framework Ioc, pour devenir la référence d’une communauté java toujours en quête d’évolution.

    Aujourd’hui 10 août 2009 Vmware le leader incontesté de la vritualisation a annoncé l’acquisition de springSource le leader incontesté de la voie alternative de la communauté Java, du Server Side et java Software

    Rappelons les grandes dates pour Spring :

    novembre 2002: Rod Johnson publie son réquisitoire contre la voie officielle de J2EE : “J2EE Design and Development”

    février 2003: Lancement d’un IOC en open source ‘Spring le Framework’
    Juillet 2004: Lancement de SpringSource ‘Spring l’entrerpise’

    janvier 2008: Acquisition par SpringSource de Covalent Technologies ( Apache java Software Foundation projects, Tomcat, Axis …)

    novembre 2008: Acquisition par SpringSource de G2One : Groovy and Grails.

    mai 2009: Acquisition par SpringSource der Hyperic (monitoring de système).

    Le but ultime de ce mariage, reste à mon avis, la préparation de prochaine bataille de l’IT: celle du cloud computing ( Qu’il s’agisse de Cloud privé ou public).

    Rappelons que les offres cloud de Microsoft et de Google menacent directement le modèle &économique de VMware : Les deux Big Brothers offrent des infrastructures vitalisées par essence. Les offres cloud de Microsoft et de Google parlent en plus directement aux développeurs : .Net C# ou Java, conserver vos habitudes, programmez simplement et déployer facilement. Chère développeur Azure ou Google Appengine : des Vmware ou des Framework (Spring compris…) il n’y guère besoin, le cloud est là pour simplifier votre travaille. ….

    Il s’agit donc, d’un autre mariage de raison, entre deux leaders préparant leurs avenirs :

    Vmware est focalisée sur la simplification et l’automatisation des infrastructures pour les applications et Spring est focalisée sur la simplification et l’automatisation du développement des applications.

    Pour le monde java, c’est une bonne nouvelle si ça aboutit à une vraie simplification des modèles de développement, déploiement et monitoring.

    Restons vigilant sur l’ouverture du code de Tomcat, Spring, Grails et Groovy …

    d’autre part, VMware, doit batailler pour s’imposer dans le monde des clouds privées ou va t’elle fusionner avec Amazon ?

    Mais ceci est une autre histoire


    news : http://blog.springsource.com/2009/08/10/springsource-chapter-two/

    http://www.marketwatch.com/story/vmware-to-acquire-privately-held-springsource-2009-08-10

    http://www.infoq.com/news/2009/08/vmware-springsource

    http://www.marketwire.com/press-release/Vmware-Inc-NYSE-VMW-1028298.html

    dimanche 9 août 2009

    Grails, Groovy, xFire & SoapUI : créer un web service et le tester en 22 lignes de codes, 7 commandes et 5 minutes

    Préambule : Avant de commencer, s’agissant de publier des services, je rappelle que je reste adepte du concept Contrat-first. Mais, ce tutoriel est destiné à montrer la puissance de l’approche Grails. Il doit être affiné pour suivre l’approche contract-first. Qu'il s'agisse d'une solution java développée 'from scratch' ou basée sur du 'java software' payé en $$ ou sur du .net basée sur Biztalk : l'essentiel c'est que le contrat soit défini dès le début

    Question : comment créer un web service en exposant la liste à partir d’une base de données

    Contexte : confronté, sur un nouveau projet, à une demande du client qui souhaite rapidement : apprendre à consommer des web services, dans un projet classique JSF/Spring/Hibernate . L’idée est d’utiliser Spring webservice template, mais, Il a fallu fournir des web services rapidement, pour les consommer

    Réponse : le simple c’est d’utiliser Grails (yes it's a java software from Spring cretors, based on Groovy : a dynamique java software from the Spring source ...)

    Des webservices en moins de 5 minutes, 6 commandes et 22 lignes de codes …

    En prime : les écrans de gestion de l’entité cible dans la base de donnée

    Etape 1: installer Grails

    http://www.objis.com/formation-java/tutoriel-grails-installation.html

    Etape 2 : créer une application

    (Commande 1)>grails create-app webservice-xfire

    (Commande 2)>cd webservice-xfire

    (Commande 3)>grails create-domain-class com.oxia.att.grails.Role

    Ajouter ce code (en somme du Plain old Groovy objects, dit POGO)

    1:  package com.oxia.att.grails
    2: class Role {
    3: String name
    4: static constraints = {
    5: name(blank: false, size: 1..20)
    6: }
    7: public String toString() {
    8: return name
    9: }
    10: }


    (commande 4)>grails create-controller com.oxia.att.grails.Role



    Etape 2 : installer le plugin xFire



    http://www.grails.org/plugin/xfire



    (commande 5)> grails install-plugin xfire


    Etape 3 : générer les bases du service en relation avec le POGO Role

    (commande 6)> grails create-service com.oxia.att.grails.Role

    Etape 4 : ajouter un peu de code Groovy pour exposer le métier

    1:  class RoleService {
    2: static expose=['xfire']
    3: def serviceMethod(Role dc) {
    4: return true
    5: }
    6: Role[] getRoles(){ Role.list() as Role[] }
    7: }

    clip_image001[4]

    Etape 5 : lancer

    (commande 7)> grails run-app
    http://localhost:8080/webservice-xfire/services/role?wsdl
    clip_image003[4] Avant de tester le web service : ajouter au moins 1 Role (le fameux admin…) ( les écrans d’administration ont été générés aussi) clip_image004[4]

    Etape 6 : tester avec SoapUI

    Créer un projet avec SOAP UT à partir du WSDL

    clip_image005[4]

    SOAPUI va créer ce projet

    clip_image006[4]

    Lancer le teste

    clip_image008[4]

    Le résultat n’est pas « orienté » Contrat-first

    Mais … avec du XPATH on pourra se débrouiller !

    Avouons qu’il faut travailler encore le CONTRAT

    Etape 7: statistique

    Code utile : 22 lignes de codes (les tests unitaires sont aussi utiles mains non comptabilisées dans ce cas)

     +----------------------+-------+-------+
    | Name | Files | LOC |
    +----------------------+-------+-------+
    | Controllers | 1 | 4 |
    | Domain Classes | 1 | 10 |
    | Services | 1 | 8 |
    | Unit Tests | 3 | 36 |
    +----------------------+-------+-------+
    | Totals | 6 | 58 |
    ( sans formatage de texte )

    Etape 8 : consommer le service

    Utiliser Spring Web service template

    Mais, ceci est un autre sujet

    --------------------------------------------------

    autres sujets Grails

    -- Groovy & Grails : L’instabilité en vue du coté JRuby, une opportunité de plus pour Groovy & Grails

    -- Groovy et Grails dans le giron de SpringSource : Un bel avenir pour les langage dynamique
    --------------------------------------------------

    autres sujets à venir

    - le concept Java 3G : Grails, Groovy et Google appengine

    - les plugins Grails


    lundi 3 août 2009

    Groovy & Grails : L’instabilité en vue du coté JRuby, une opportunité de plus pour Groovy & Grails

    Il semble que la chance sourit encore à Groovy & Grails.

    Après le support total de SpringSource, allant jusqu’à l’acquisition, voilà qu’une tempête se profile de coté de son principal conçurent dans le monde Java, le fameux Jruby.

    L’info tombé en ce fin du mois de juillet : les principaux développeurs derrière le projet JRuby ont quitté SUN pour rejoindre la société Engine Yard spécialisée en hébergement Ruby On Rails et se présente comme l'une des plus importantes entreprises de l'écosystème de Ruby on Rails

    Les transfuges ont prétexté de l’incertitude autour du sort du projet JRuby, suite à l’acquisition de SUN par Oracle. Le plus difficile pour un Techos c’est l’absence de décision : « Supporte » ou « ne supporte pas » : or Oracle excelle dans l’art de cacher les intentions… , après tout on décidera dans quelques mois, lorsqu’on aurait ouvert tous les cartons de SUN …

    D’un autre coté, Engine Yard mise sur l'adoption de JRuby par les développeurs Web Java et qui manquait jusque là d'experts dans ses équipes

    Rappelons que Grails, suit le chemin tracé par Rails & Rubby "coding by convention", mais en se basant sur Groovy, le langage dynamique de référence du monde Java.

    En privilégiant le concept de « Convention not Configuration », Grails cherche à simplifier le développement des applications Web.

    De plus, la capacité d’heberger Garils & Groovy sur le Google AppEngine, leur ouvre de nouvelles perspectives et met en danger les hébergeurs web en générale et Engine Yard en particulier.

    Mais, souhaitons que le projet JRubby puisse continuer à avance, la concurrence stimule, et la compétition génère de l’innovation. Et surtout espérerons que la prochaine version de JRuby (1.4) soit livrée à temps : en Septembre.

    Finalement, ne pas oublier que la concurrence réelle pour Grails reste l’écosystème Rubby on Rails, qui lui continue son chemin, tranquillement …

    Le monde Java a maintenant de bonnes réponses à Ruby en Groovy, Scala, et Clojure et de bonnes réponses à Rails dans Grails...

    Mais ceci est un autre sujet..

    ---------------------------------

    source :http://www.computerworld.com/s/article/9135958/Sun_s_JRuby_team_jumps_ship_to_Engine_Yard


    -----------------

    autres sujets : Grails




    mardi 30 juin 2009

    Netbeans IDE 6.7 est là : sans la prise en charge de JavaFX, ni JBPM

    Quelques jours après le release de son rival directe Galileo, voilà que NetBeans est lui même disponible pour le téléchargent

    clip_image001

    Les technologies supportées par cette version de NetBeans

    Java SE et Java Web et EE

    En plus des outils de production de code source en Java ( un éditeur, un débogueur, le refactoring), et Java EE, se trouve le profiler : c’est l’outil le plus précieux à mon avis.

    Ce profiler est le seul lien que j’ai avec NetBeans depuis des années.

    Cette nouvelle version est compatiblesavec les spécifications J2EE 1.4 et Java EE 5. Elle Inclut le support des servlets, des JSPs, des tag libs, de Spring, de Struts, de (JPA) Java Persistence API, des Enterprise Java Beans, de JAX-WS et des services web RESTful ainsi que de Java Server Faces. Fournit un environnement visuel pour le développement d'applications par glisser-déposer.

    Java ME

    Un ensemble complet d'outils pour créer des applications Java Micro Edition pour téléphones mobiles et autres appareils portables. Inclut un outil de conception visuel, un assistant de connexion à des services web et des outils pour gérer les problèmes de fragmentation sur ces appareils.

    Il faut noter que cette version confirme la tendance du monde java vers les langages dynamique et propose des outils pour Ruby, JRyby et Groovy

    NetBeans propose un ensemble complet d'outils pour créer des applications ruby et Ruby on Rails. Il comprend un interpréteur JRuby, le framework Ruby on Rails, un éditeur, un débogueur, un gem manager et un shell interactif Ruby. Il supporte la création, la modification et l'exécution d'applications Ruby on Rails en toute facilité.

    Il fournit, aussi, le support du langage Groovy et du framework Grails.

    C/C++ ne sont pas oubliés :

    NetBeans propose des outils pour le développement d'applications en C et C++ .

    Attirer la communauté PHP (ça été fait avant Eclipse)

    NetBeans propose des outils pour le développement d'applications PHP, comprenant un éditeur et un débogueur PHP, la gestion de projets, l'intégration avec le serveur Apache, le support de MySQL et d'autres bases de données, le chargement et le téléchargement avec FTP, le support de JavaScript et bien d'autres fonctionnalités encore.

    La version 6.7 de NetBeans inclus les Serveurs suivants :

    Sun GlassFish Enterprise Server v2.1

    Sun GlassFish Enterprise Server v2.1 est un serveur compatible avec la plate-forme Jave EE 5 pour le développement et le déploiement à grande échelle d'applications Java EE et de services web basés sur la technologie Java

    Sun GlassFish Enterprise Server v3 Prelude

    Sun GlassFish Enterprise Server v3 Prelude est une offre avec support commercial autour de GlassFish v3 Prelude.

    Apache Tomcat 6.0.18

    Conteneur web open-source supportant les spécifications Java Servlet et JSP.

    JavaFX JavaFX disponible seulement pour NetBeans 6.5.1

    D’autre part, NetBeans reste focalisé sur l’IDE et n’a pas pris le chemin de l’ALM

    Mais ceci est aune autre question

    NB : voilà ce qu’on trouve sur le site de SUN

    Supported Technologies

    Ajax C/C++ Databases Debugger Desktop Editor Groovy GUI Builder Hudson Java EE JavaFX Java ME Java SE JavaScript Kenai Maven Mobile PHP Profiler Python Refactor REST Rich Client Platform Ruby SOAP Web

    NB : autres sujets

    Eclipse & l’ALM pour quand ?: Eclipse lance sa distribution de 33 plugins et en attendant l’ère de l’ALM

    mercredi 7 janvier 2009

    Java: Quelles « résolutions technologiques » pour 2009

    La question de proposer des « résolutions technologiques » de l’année 2009 est la suivante :

    Quelles sont les technologies java qui ont atteint une certaine maturité nous permettant de les utiliser dans des projets réels, et d’investir du temps à les connaitre et les maitriser

    Sans regretter ce choix quelques mois après

    J’avoue que la question est difficile, mais la tentation est grande de se lancer des résolutions en ce début d’année (ça serait plus facile à faire le 31 décembre)

    Je propose :

    1) OSGI (SpringDM) en préparation d’un monde "dynamique"

    2) Groovy/grails sous l’égide de Spring

    3) Android

    4) JavaFX

    5) EclipseLink en remplacement de Hibernate qui stagne

    6) RAP (Eclipse)

    7) SCA vers un monde de services (Spring est présent là aussi)

    8) JBPM 4 & BPMN

    9) GoogleAPPs (s’il adopte java, c'est fait depuis début Avril 2009)

    10) SCALA (si j’ai encore du courage en fin d'année...)


    Mais, tout dépendra des projets, du temps, de la détermination et de la fameuse crise...

    Groovy et Grails dans le giron de SpringSource : Un bel avenir pour les langage dynamique

    SpringSource a mis la main sur Groovy (un language dynamique pour la JVM), et Grails(un framework de développement « rapide » Web, de type Ruby), en achetant la société G2One.
    Je pense que cela va booster Groovy, bien qu'il soit déjà le langage dynamique pour la JVM le plus populaire.

    Cela va booster l’idée d’utiliser un langage dynamique, avant l’arrivée de java 7 qui pousse vers la même direction


    En ce qui concerne Grails, les choses sont peu plus compliquées,je lui prédit un bon avenir du coté des maquettes, des sites d’administration et des applications web « éphémères » ou à
    usage unique.


    Attendons, un peu de voire la direction que va
    donner SpringSource (ex interface 21) à ce type de langage où ce qui est simple
    devient presque implicite….



    mais ceci est un autre sujet ...


    -----------------

    autres sujets : Grails







    Architecte SOA & Professionnel Open Source Headline Animator

     
    Khaled BEN DRISS
    Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.