oct

31

Posted by : admin | On : 31 octobre 2011

http://www.cae.wisc.edu/linux-sftp

sftp <user>@<host>

telecharger les fichiers

cd /home/localhost/files
 lcd /home/remote/files

Telecharger ses fichiers

sftp> mgets ./*
 sftp> mget ./*.csv

Upload ses fichiers

sftp > put ./*

 

 

Annexe

oct

25

Posted by : admin | On : 25 octobre 2011

 

 

Installation sur un poste local

Vérifier que votre vob est associé au bon  CLEARCASE_PRIMARY_GROUP

ajouter dans le path

c:\Rational\ClearCase\etc\utils
  • Si vous êtes en projet UCM ils vous vaudra en plus de cela rejoindre le bon stream de dévelopement.

 

Vocabulaire

SVN Clearcase
commit archiver
checkout check out
N/A hijacking(modif en local)
merge+commit deliver+ rebase

 

Clearcase et Eclipse

Concernant Clearcase vous pouvez vous retrouvez sous différents situations/configurations différentes  :

  • soit vous ne disposez pas du client lourd clearcase (avec l’icone en forme de loupe) à ce moment là vous utiliserez sur eclipse le client CCRC . ( ce qui implique un coût des licences moindres que dans la solution suivante )
  • soit vous disposez du client lourd .  Dans ce cas il faut utiliser le SCM Adapter Clearcase intégré à eclipse.

Explorateur Clearcase

On peut modifier à la volée sa « config spec » pour voir soit la dernière version du trunk (appelé aussi la \main\latest pour les puristes)  ou bien une version particulière du projet ( la version labelisé sur une des branches) .

On peut poser des labels (des sortes de tags) pour se souvenir qu’à un instant T ce qu’on a livré comme composants.. en générale cela est fixé au préalable dans le périmètre dit des « livrables projet ».

De manière générale le client lourd Clearcase étant le plus souvent utilisé et requis pour un ingénieur d’intégrateur plus que pour qu’un ingénieur d’étude.

 

Comment se passe la livraison DEV-> TEST (uat) -> Production ?

Généralement on pose un label sur les sources (nos livrables) puis on livre (on fait un deliver) de branche en branche ces livrables.

 

Importer son projet sur clearcase

  1. en ligne de comande
  2. va Eclipse
  3. ou via clearcase explorer

en ligne de command

 

Win + R Tapez cmd

 

cd  M:\<Nom de Vue >_view\<Vob name>

clearfsimport -rmname -nset –rec -preview <PATH C:> .

clearfsimport   -nset -rec  <PATH local du C:/> .

 

  • la commande -preview permet de se rendre compte les opérations que Clearcase va réaliser lors de import des sources dans la vob .

 

SCM Adapter Clearcase (via eclipse)

Click droit => share projet => cliquez sur Clearcase SCM adapter => indiquer le répertoire de votre vob puis appuyez finish .

Clearcase va détecter les éléments à ajout au source control il ne reste plus qu’à archiver (faire un commit)

Pour le client CCRC c’est sensiblement pareil

via clearcase explorer

Monter votre vue et copiez le projet dans la vob approprié .

retourné sur le clearcase explorer et commite les répertoires et fichiers un à un .

 

Commandes utiles

Avoir le détail d’infos sur sa vue

cleartool lsview -l -full -pro  <Nom de View>

=>Vérifier si vous appartenait au bon  Owner et le groupe

Accéder au clearcase explorer depuis le prompt

clearexplorer .

 

documentation officielle

http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.tutorial.doc/a_underst_ccexplorer.htm

Autre documentation

http://loic-mathieu.developpez.com/conception/article/clearcase/

oct

24

Posted by : admin | On : 24 octobre 2011


  • Colloque Show: Rahpaël (ESIEA Paris)

    Great Critic of Our School :P

    Colloque Show: Alexis Ulliac & Anthony Cadosh (ESIEA Paris)

  • Electro, Reaggae, Rnb everything is dance when it is with gd music !!

    Le fan du PSG LOL

    Y a plus rien à faire :p

     

     

    Le grand saut d’alex

     

    Reconnaissance écriture

     

    oct

    24

    Posted by : admin | On : 24 octobre 2011

    Samba permet de partager des dossiers sous Linux avec des ordinateurs locaux sous Windows, très pratique, donc !
    De plus, il permet d’établir un réseau relativement sécurisé grâce à ses nombreuses fonctions.

    Commencez d’abord par l’installer : loguez vous en root puis tapez :

    apt-get install samba

    Il faut ensuite configurer quelques lignes du fichier smb.conf :

    vi /etc/samba/smb.conf

    Ligne 27, renseignez le nom de votre groupe de travail, par exemple WORKGROUP :

     

    # Change this to the workgroup/NT-domain name your Samba server will part of
     workgroup = WORKGROUP
     Après « ####### Authentication ####### », ligne 70, tapez :
     hosts deny = ALL
     hosts allow = ***.***.*.*

     

    en remplaçant ***.***.*.* par l’ip local de l’ordinateur qui aura accès aux partages.

    Si vous souhaitez mettre plusieurs ip, séparez les par des espaces.

    Un peu plus loin, ligne 79, décommentez la ligne

    ;security = user

    en supprimant le point virgule.
    Cela signifie que par défaut seuls les utilisateurs enregistrés auprès de samba auront accès aux partages. A l’inverse, « share » autorise n’importe quel accès anonyme et est donc un mode bien moins sécurisé.


    Les droits d’accès sont à configurer dans la partie « Share Definitions » : Par défaut, ils sont très limités.
    Tout d’abord, pour autoriser les utilisateurs à naviguer et à écrire dans leur dossier personnel , modifier la partie [homes] de cette mannière :

     

    [homes]
     comment = Home Directories
     browseable = yes
     # By default, the home directories are exported read-only. Change next
     # parameter to 'yes' if you want to be able to write to them.
     writable = yes
     # File creation mask is set to 0700 for security reasons. If you want to
     # create files with group=rw permissions, set next parameter to 0775.
     create mask = 0644
     # Directory creation mask is set to 0700 for security reasons. If you want to
     # create dirs. with group=rw permissions, set next parameter to 0775.
     directory mask = 0755

     

    « create mask » est le CHMOD associé aux fichiers créés, « directory mask » celui associé aux dossiers créés.


    Vous pouvez également partager n’importe quel dossier, et cela de différentes façons.

    Il faut commencer par le nom du partage entre crochets, puis renseigner les différentes règles qui lui seront affectées :

    [Nom_du_partage]
     path = /chemin/du/dossier/partagé
     valid users = guillaume ou public = yes
     browseable = yes/no
     writeable = yes/no
     create mask = 0644
     directory mask = 0755

    Si vous utilisez la règle « public », n’oubliez pas de décommentez a ligne « guest account » dans la partie « Authentification », et au besoin modifier le compte qui sera utilisé par défaut par les invités.


    On en a finit avec le fichier smb.conf. Il faut maintenant ajouter les utilisateurs de Samba.

    Il faut commencer par ajouter les utilisateurs au système si ils n’existent pas encore, utilisez pour cela la commande adduser que vous pouvez compléter par la spécification du dossier personnel, auquel l’utilisateur aurra acès par défaut via samba :

    adduser --home /home/votre_dossier nouvel_utilisateur

    Vous est alors demandé le mot de passe associé ainsi que différentes informations que vous pouvez laisser vide.

    Pour que les utilisateurs système aie un accès Samba, utilisez la commande :

    smbpasswd –a nom_du_compte

    En utilisant le nom de compte et le mot de apsse associé d’un utilisateur système.

    Comme d’habitude, finalisez en redémarrant ce service :

    /etc/init.d/samba restart

    Pour avoir accès aux partages depuis Windows XP, créez un compte au même nom et avec le même mot de passe que celui enregistré à l’aide de la commande smbpasswd.

    • Source :

    http://www.henol.fr/article-samba.html,

    http://www.nuxo.net/tutorial-15.html

    oct

    24

    Posted by : admin | On : 24 octobre 2011

     

     

    Vous pouvez monter votre serveur maison un bon 1U ultra sparc fera l’affaire .

    Ou bien si vous ne souhaiter ne pas voir la machine chez vous vous pouvez opter dans ce cas là pour la location d’un serveur dédié dans un datacenter ou bien des petits partitions de serveur partagés . Ou si le « hype » vous dit une location en Cloud dans les nuages .

    Dans cet article je vais essayer de présenter de manière synthétique une installation  comme on entend souvent « from scratch »

    Pour cela je suis aller louer un serveur dédié Kimsufi chez OVH et rélaiser une install sous debian avec accés SSH sur port 22 par défault .

    à partir de ce moment là je vous dit bienvenue dans lunivers des linuxien le noir et blanc est de vigueur :)

    Ce que nous allons voir ici :

    1. Bash / vim
    2. installation webmin
    3. Apache 2 version prefork
    4. PHP5
    5. Serveur Bind9
    6. Serveur ProFtpd (serveur ftp)

     

    • A quoi tout ca va nous servir ?
    1. Webmin à administrer notre serveur pour les taches récurrentes  (créer une zone primaire , configurer l’adresse d’un nouveau site..) plus quà faire du click click
    2. apache2 notre serveur applicatif qui va interpréter notre langage PHP5
    3. Bind 9 = ca va être notre glue noms de domaines / noms du serveur
    4. Proftp = serveur FTP pour transferer nos fichiers via le port 21 (FTP)

     

     

     

    Configuration du Bash

    dans le fichier /root/.bashrc

     

    ~/.bashrc
    export LS_OPTIONS='--color=auto'
    eval "`dircolors`"
    alias ls='ls $LS_OPTIONS'
    alias ll='ls $LS_OPTIONS -l'
    alias l='ls $LS_OPTIONS -lA'

     

     

    configuration de Vim

    /etc/vim/vimrc

    syntax on
    set paste
    set background=dark
    set softtabstop=4
    set shiftwidth=4
    set tabstop=4
    set expandtab
    Redemarrage du service SSH
    /etc/init.d/ssh restart

    chercher un package :

     

    aptitude search <nom de mon package>
    ou apt-cache search <nomdemonPackage>

     

     

     

    Installation de Webmin

     

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    vi /etc/apt/sources.list
    deb http://download.webmin.com/download/repository sarge contrib
    apt-get update
    apt-get install webmin
    
    

     

    Verifier installtion webmin https://nomserveur:10000

    (securisation SSL)

    Installation apache 2 (Version Prefork)

     

    apt-get install apache2-mpm-prefork

     

     

     

    Installation PHP5

    vim /etc/apt/sources.list

    => rajouter

    deb http://dotdeb.thefox.com.fr stable all deb-src http://dotdeb.thefox.com.fr stable all

    => Rafraichir vos packets disponibles

    apt-get update

    apt-get install php5 php5-cli php-pear php5-gd php5-mysql libapache2-mod-php5

    (toujours autoriser)

    =>verification de installation

     

    cd /var/www/apache2-default/
     vi phpinfo.php
    
     <?php phpinfo(); ?>

     

    =>tester le fonctionnement de PHP5

    http://ipserveur/apache2-default/phpinfo.php

    http://DNS Serveur/apache2-default/phpinfo.php

     

    Installation de la base de donnée

    apt-get install mysql-server-5.0

    sécurisation de MySQL

    mysql_install_db

    ou

     mysqladmin -u root password « monPassword»

     

     

    mysql_secure_installation

     

    Installation Phpmyadmin

     

     

    apt-get install phpmyadmin

     

    Installation de Bind = Serveur DNS

    apt-get install bind9

     

    Preparer son site :

     

    cd /var/www/
     mkdir monSite

     

     

    créer un user FTP :( via Webmin)

     

    Installer un serveur FTP(Proftpd)

    apt-get install proftpd

    (option : independamment)

     

    Configuration de Proftpd

     

    vi /etc/proftpd/proftpd.conf

    ServerName                      "Debian"
    ServerType                      standalone
    ShowSymlinks                    on
    MultilineRFC2228                on
    DefaultServer                   on
    ShowSymlinks                    on
    MaxInstances                    30
    Port                            21
    UseReverseDNS off
    IdentLookups off
    LogFormat                       traff "%b %u"
    DefaultRoot                     ~
    DenyFilter                      (\*.*/)|%
    <Global>
    DeferWelcome                    off
    TimeoutNoTransfer               600
    TimeoutStalled                  600
    TimeoutIdle                     1200
    PassivePorts                    50000 60000
    User                            nobody
    Group                           nogroup
    Umask                           022
    AllowStoreRestart on
    AllowRetrieveRestart on
    AllowOverwrite on
    </global>
    <VirtualHost 10.18.140.71>
    ServerName "ksXXX.kimsufi.com "
    ServerAdmin votre.adresse@emaill.com
    Port 21
    MaxLoginAttempts 2
    RequireValidShell no
    ListOptions -A
    MaxClients 20
    DefaultRoot ~
    AllowOverwrite yes
    <Limit LOGIN>
    Order Allow,Deny
    AllowUser votreuser
    Deny from all
    </Limit>
    <Directory ~>
    <Limit ALL>
    AllowAll
    </Limit>
    </Directory>
    </VirtualHost>

     

     

    aller editer :

    /etc/hosts
     ::1 ip6-localhost ip6-loopback ksXXX.kimsufi.com

     

    Restart proFtpd

    /etc/init.d/proftpd restart

     

    Connection au FTP (créer un utilisateur via Webmin avant)

    hote : ksXXX.kimsufi.com

    utilisateur : titi

    pwd : toto

     

    Modifier les droits des repertoires : (pour resoudre les pbs de droits)

    chown -R 1000:33 *

     

    Restart apache Server (pour prendre en compte les changments)

     

    a2ensite monSite.com.conf
     /etc/init.d/apache2 restart
     vi monSite.com.conf

    oct

    24

    Posted by : admin | On : 24 octobre 2011

    http://blog.thelinuxfr.org/Installation-et-configuration-d-un.html

    http://www.debian-administration.org/article/OpenLDAP_installation_on_Debian

    Open LDAP

    Installation des packages

     

    sudo apt-get install slapd ldap-utils  libdb4.6
     sudo dpkg-reconfigure slapd
     root@artaud:~# /etc/init.d/slapd restart

     

    Remplir notre ldap

     

    sudo slapadd  -v -l ~/init.ldif
     ou ldapadd -c -x -D cn=admin,dc=spinlock,dc=hr -W -f ~/init.ldif

     

     

    le prompt authentification aparait

     

     
     dn: ou=people,dc=home
     objectClass: organizationalUnit
     ou: people
    
     dn: ou=groups,dc=home
     objectClass: organizationalUnit
     ou: groups
    
     dn: uid=lionel,ou=people,dc=home
     objectClass: inetOrgPerson
     objectClass: posixAccount
     objectClass: shadowAccount
     uid: lionel
     sn: Porcheron
     givenName: Lionel
     cn: Lionel Porcheron
     displayName: Lionel Porcheron
     uidNumber: 1000
     gidNumber: 10000
     gecos: Lionel Porcheron
     loginShell: /bin/bash
     homeDirectory: /home/lionel
     shadowExpire: -1
     shadowFlag: 0
     shadowWarning: 7
     shadowMin: 8
     shadowMax: 999999
     shadowLastChange: 10877
     mail: lionel.porcheron@home.com
     postalCode: 31000
     l: Toulouse
     o: home
     mobile: +33 (0)6 xx xx xx xx
     homePhone: +33 (0)5 xx xx xx xx
     title: System Administrator
     postalAddress:
     initials: LP

     

     

    Vérifier le peuplement de son LDAP

     

    sudo slapcat
     ldapsearch -x
    

    sortie écran

    # extended LDIF # # LDAPv3 # base <> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1 root@artaud:~# ldapsearch -x # extended LDIF # # LDAPv3 # base <> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1

     

    Configuration de /etc/ldap/ldap.conf

     

    URI ldap://127.0.0.1/

     

     

     
     database    bdb
    
     suffix          "dc=admin,dc=home"
    
     #rootdn          "cn=Manager,dc=example,dc=com"
     rootdn          "cn=admin,dc=admin,dc=home"
     # Cleartext passwords, especially for the rootdn, should
    
     # be avoided.  See slappasswd(8) and slapd.conf(5) for details.
     # Use of strong authentication encouraged.
    
     #rootpw            {SSHA}rpns/vNaQ1h8qxzNGdnuS+mJtHGuzv+k
     {SSHA}4+B3Cqnpzf454dzgREe0FBsIQ19Y8Trp
    
     # rootpw          {crypt}ijFYNcSNctBYg
    
     root@artaud:~# sudo slapadd  -v -l ~/init.ldif

     

     

    Annexe :

    • init.ldif

     

    dn: ou=people,dc=home
     objectClass: organizationalUnit
     ou: people
     dn: ou=groups,dc=home
     objectClass: organizationalUnit
     ou: groups
     dn: uid=lionel,ou=people,dc=home
     objectClass: inetOrgPerson
     objectClass: posixAccount
     objectClass: shadowAccount
     uid: lionel
     sn: Porcheron
     givenName: Lionel
     cn: Lionel Porcheron
     displayName: Lionel Porcheron
     uidNumber: 1000
     gidNumber: 10000
     gecos: Lionel Porcheron
     loginShell: /bin/bash
     homeDirectory: /home/lionel
     shadowExpire: -1
     shadowFlag: 0
     shadowWarning: 7
     shadowMin: 8
     shadowMax: 999999
     shadowLastChange: 10877
     mail: lionel.porcheron@home.com
     postalCode: 31000
     l: Toulouse
     o: home
     mobile: +33 (0)6 xx xx xx xx
     homePhone: +33 (0)5 xx xx xx xx
     title: System Administrator
     postalAddress:
     initials: LP

     

     

    Installer un client LDAP

    • les plus connu Gq et Luma
    • apt-get install luma
    • puis telecharger les sources sur le site de Luma . Version testé v2.4

    Exécutez

     

    python install –prefix=/usr/share
     /usr/share == PATH default

    oct

    24

    Posted by : admin | On : 24 octobre 2011

    1. Dans cette section nous allons nous attacher  d’installer la JDK et la JRE sur une environnement Linux (testé sur ubuntu)
    2. Dans la section suivante j’explique comment installer Maven 2 et son plugin sur Eclipse
    3. Enfin j’expose dans la dernière section le couplage de Maven 2 et de Ant . Nous pouvons imaginer par exemple que nous souhaitons « builder » notre projet et les déployer automatiquement sur la plateforme distante avec le moins d’effort possible . Nous allons donc voir dans cette section comment le couplage de ces deux technologies concorde dans la réponse à ce besoin .

     

     

    Install JDK /JRE

     

    • Download JRE 6 :

    http://java.com/fr/download/manual.jsp

    mv jre-6u18* jre-6u18-linux-i586.bin
    sudo mv ./jre-6u18-linux-i586.bin /opt/
    cd /opt/
    chmod +x jre-6u18-linux-i586.bin
    sudo ./jre-6u18-linux-i586.bin</pre>
    ln -sf /opt/java/jdkX.X.X_u/ /opt/java/jdk
    ln -sf /opt/java/jreX.X.X_u/ /opt/java/jre
    ln -sf /opt/java/jdkX.X.X_u/ /opt/java/default
    echo "" >> /etc/profile
    echo "#JAVA" >> /etc/profile
    echo "JRE_HOME=/opt/java/jre" >> /etc/profile
    echo "JDK_HOME=/opt/java/jdk" >> /etc/profile
    echo "JAVA_HOME=/opt/java/default" >> /etc/profile
    echo "export JRE_HOME JDK_HOME JAVA_HOME" >> /etc/profile
    1. Reconfigurer le java de votre machine si nécessaire:
    sudo update-alternatives --config java
    cd ~
    ls -al

    editer le bashrc

    export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06 export PATH=$PATH:$JAVA_HOME/bin
    
    # set PATH so it includes user's private bin if it exists
    
    if [ -d ~/bin ] ; then
    
    PATH=~/bin:"${PATH}"
    
    fi
    
    export JAVA_HOME=”/usr/lib/jvm/java-6-openjdk/″
    
    export JDK_HOME=”${JAVA_HOME}”
    
    export PATH=”${JAVA_HOME}/bin:${PATH}”
    
    fi
    export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
    
    export M2=$M2_HOME/bin
    
    export MAVEN_OPTS="-Xms512m -Xmx1024m"
    
    export PATH=$M2:$PATH

    Install Maven2

    • lancer le script suivant
    #!/bin/sh
    
    mavenVersion="apache-maven-2.2.1"
    wget http://apache.cict.fr/maven/binaries/apache-maven-2.2.1-bin.tar.gz
    
    echo "== Telechargement de Apache Maven2 == "
    
    tar -xvf apache-maven-2.2.*.tar.gz
    
    if [ -d "/usr/local/apache-maven" ]
    then
     echo "le repertoire /apache-maven existe deja"
     cp -r $mavenVersion /usr/local/apache-maven
     echo "== Copie du repertoire effectue == "
     rm -rf ./$mavenVersion
    else
     cd /usr/local/
     mkdir apache-maven
     cd -
     cp -r $mavenVersion /usr/local/
     rm -rf ./$mavenVersion
    fi
    
    export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
    export M2=$M2_HOME/bin
    export MAVEN_OPTS="-Xms512m -Xmx1024m"
    export PATH=$M2:$PATH
    
    echo "==== MAVEN  ==="
    mvn --version

    Install Maven2 plugin Eclipse

    • Download Maven 2 Plugin for Eclipse Help=> Software Update => Click Add enter the following adress. Accept the conditions and restart your Eclipse.

     

     


     

     

     

     

    Spring Tool suite and Maven 2

    Nb :  Commonly  STS Tool suite is being used as far as it come with Spring IDE integrate plus some other spring visualization such as spring batch and spring integration , namespace support …

    • Since version 2.8 there is some notable changes that must be taken in consideration (eg: Maven connector ) , I invite you guys to have a look at
    • I had encounter some difficulties a straightforward migration from version 2.7 to 2.8 so be diligent during the manipulation. check out the procedure in the link bellow

    Procedure

    http://blog.springsource.com/2011/10/18/upgrading-maven-integration-for-springsource-tool-suite-2-8-0/

    Forum and FAQ

    http://forum.springsource.org/showthread.php?116189-STS-2.8.0-and-m2e-FAQ

     

     

     

    Ant et Maven

    Dans cette section nous allons ajouter le plugin antrun plugin nous permettant d’utiliser les fonctionnalités de Ant via Maven 2

    Pour cela il suffit d’inclure dans le fichier Pom.xml  le code ci dessous. Il ne reste plus qu’à ajouter vos appel de target ant relatif que vous souhaitez exécuter à chacune des phases du cycle de vie Maven à savoir :

     

    • validate: validate the project is correct and all necessary information is available
    • compile: compile the source code of the project
    • test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
    • package: take the compiled code and package it in its distributable format, such as a JAR.
    • integration-test: process and deploy the package if necessary into an environment where integration tests can be run
    • verify: run any checks to verify the package is valid and meets quality criteria
    • install: install the package into the local repository, for use as a dependency in other projects locally
    • deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

     

    à la racine du projet nous allons donc créer un fichier build.xml (ant)  où nous allons répertorier les différentes taches Ant que notre projet va utiliser .

     

    • pom.xml
    <build>
     <!-- Tips : To define the plugin version in your parent POM -->
     <pluginManagement>
     <plugins>
     <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-antrun-plugin</artifactId>
     <version>1.3</version>
     </plugin>
     </plugins>
     </pluginManagement>
     <!-- Tips: To use the plugin goals in your POM or parent POM -->
     <plugins>
     <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-antrun-plugin</artifactId>
     <version>1.6</version>
     <executions>
     <execution>
     <id>Information</id>
     <phase>compile</phase>
     <goals>
     <goal>run</goal>
     </goals>
     <configuration>
     <tasks>
     <ant antfile="${basedir}/build.xml" inheritAll="true"
     inheritRefs="true">
    <!--Pass the required properties to ant File-->
     <property name="version" value="${version}" />
     <property name="artifactId" value="${artifactId}" />
     <!--Call ant Target here -->
     <target name="deploymentInformation" />
     </ant>
     </tasks>
     </configuration>
     </execution>
     <execution>
     <id>Deploiement</id>
     <phase>install</phase>
     <goals>
     <goal>run</goal>
     </goals>
     <configuration>
     <tasks>
     <ant antfile="${basedir}/build.xml" inheritAll="true"
     inheritRefs="true">
    <!--Pass the required properties to Ant file -->
     <property name="version" value="${version}" />
     <property name="artifactId" value="${artifactId}" />
    
    <!--Call the ant target you want to execute here ... -->
     <target name="XXXX" />
    
     </ant>
     </tasks>
     </configuration>
     </execution>
     </executions>
    
     <dependencies>
     <dependency>
     <groupId>ant</groupId>
     <artifactId>ant-jsch</artifactId>
     <version>1.6.5</version>
     </dependency>
     <dependency>
     <groupId>com.jcraft</groupId>
     <artifactId>jsch</artifactId>
     <version>0.1.44-1</version>
     </dependency>
     </dependencies>
     </plugin>
     </plugins>
     </build>
    • build.xml
     
    
    <project name="MyProjectNAME" basedir=".">
    
     <description>FICHIER ANT DE RUN </description>
    
     <target name="deploymentInformation">
     <echo message=" Ant File : ${ant.file}"/>
     <echo message ="Ant version  :  ${ant.version}" />
     <echo message="Version :    ${version}" />
     <echo message="ArtifactId :    ${artifactId}" />
    
     </target>
    • Le transfert SCP
     <target name="copyArchive">
     <scp
     todir=${usr}:${password}@${hostduserveur}:${DestinationFolder}/${artifactId}"
     port="22" trust="true" verbose="true" failonerror="true"
     file="${basedir}/target/${artifactId}-${project.version}-.tar.gz">
     </scp>
     </target>
    • Le remote Sheel via SSH(port 22 par défault )

     

    <target name="deploymentCreate">
    <sshexec host="${host}" username="${user}" keyfile="${privateRSAKEY}" trust="yes"  command="${NameScript} ${ARG1/2/3...}" verbose="true" >
    </sshexec>
    </target>
    • A noter que j’ai rencontré des problèmes lors de multiples invocations de remote shell le programme Maven2 /ant s’arrête apparaement il s’agirait d’un bug répertorié sur bugzilla qui serait en cours de correction .

     

     

    Ressources et références

    http://www.avajava.com/tutorials/lessons/what-are-the-phases-of-the-maven-default-lifecycle.html

    http://www.developpez.net/forums/d700132/java/edi-outils-java/build/maven/maven-ant-acces-aux-properties-maven-fichier-build-xml-dant/

    http://maven.apache.org/plugins/maven-antrun-plugin/usage.html

    http://ant.apache.org/manual/Tasks/scp.html

    http://ant.apache.org/manual/Tasks/sshexec.html

    • maven helper :
    http://stackoverflow.com/questions/2244344/deploying-assembly-package-with-maven-release-plugin
    
    					

    oct

    24

    Posted by : admin | On : 24 octobre 2011

     

    Dans cette article nous allons essayer de voir quels sont les avantages et inconvénients de utilisation du JMS en java et dans quel cas nous pouvons utiliser.

    Queue jms

    1 personne à la fois lit dans la queue JMS dans le sens où une fois que le message JMS est consommé par un des clients celui-ci n’existe plus en temps que tel dans la queue.

    • Avantages :

    On sait ce qui est lu dans la queue JMS à instant T.
    Mode transactionnel possible : On peut sauvegarder nos messages JMS en dans une base de données cela présente l’avantage de ne perdre aucun message à traiter.
    On peut également utiliser le mode transacted = true cela permet notamment de reposter les messages dans la queue d’origine en cas de rollback .

    Facilite les tests Test unitaires ou intégration d’un applicatif .

    les queues JMS sont très largement utiliser dans les architectures SOA (service Oriented Architecture) afn de permettent aux différentes briques applicatives du SI de communiquer entre elles . Chacune de ses briques applicatives s’attachant de répondre à un besoin métier ou fonctionnelle distinct .

    • Inconvénients :

    Répartition de la charge sur le serveur

    A noter : On peut également utiliser que des queues Jms, et avoir un serveur par processus métier cela permet notamment de garder une plus grande flexibilité et souplesse tant sur le déploiement applicatif que sur la répartition de charge des serveurs plus ou moins critiques.

    Topic JMS

    La différence majeur avec les queue JMS est que la topic JMS permet d’avoir plusieurs « subscriber » c’est à dire plusieurs personnes qui viennent lire sur la topic JMS . Nous définissons la configuration de celle-ci le nom du subscriber .

    On entend parfois aussi parler de souscription durable permet de garantir que le message a bien été livré au subscriber .

    Le problème majeur de la topic JMS est que nous ne pouvons avoir de visibilité sur ce qui se passe à instant T.

    Afin de combiné les avantages et inconvénients des Queue et topic JMS nous allons introduire la notion de transaction XA.

    La transaction XA permet de dispatcher nos messages dans différentes queue JMS cela permet de garantir une architecture physique plus robuste . Nous pouvons bien évidemment sauvegarder nos messages en base de données et imaginer une réplication de ses bases via différentes solutions (comme Oracle RAC pr exemple)