Archive for the 'java' Category
Java and fedora
Some Java dependencies and packages are not available on fedora official repositories. The solution is to add JPackage repo.
As root
-
#cd /etc/yum.repos.d/
-
#wget http://www.jpackage.org/jpackage50.repo
You can see http://www.jpackage.org/ if there new updates. JPackage can be used with fedora, redhat, centos, mandriva and many distributions.
No commentsJ2me et les SMS’s
Avec les offres des SMS’s ilimités de Tunisie Telecom et Tunisiana, je me suis posé le problème s’il est possible de mettre en place une application mobile capable de généré un grand nombre de SMS pour une plage de numéro ou pour juste un numéro pour faire du spam.
Après quelques recherche, j’ai réussi à mettre au point un petit bout de code fonctionnel et qui permet d’offrir la possibilité d’envoyer un SMS et bien entendu, les options énuméré au début sont possibles.
Pour le développement, j’ai utilisé netbeans 6.7 RC2 sans aucun additif. J’ai commencé par la création d’un projet standard pour terminaux mobiles. et dans ma class principale, j’ai ajouté cette méthodes qui gère l’envoi des SMS.
public String sendSms(String number, String message){
String result = "Ok";
try {
//sets address to send message
String addr = "sms://"+number;
// opens connection
MessageConnection conn = (MessageConnection) Connector.open(addr);
// prepares text message
TextMessage msg =
(TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
//set text
msg.setPayloadText(message);
// send message
conn.send(msg);
conn.close();
} catch (SecurityException se) {
// probably the user has not allowed to send sms
// you may want to handle this differently
result = "Security Problem";
} catch (Exception e) {
result = "Unknown Problem";
}
return result;
}
Ce qu’il faut retenir, est que cette méthode utilise comme argument le numéro de téléphone et la message à transmettre et renvoi une chaine de caractère avec les divers possibilité :
- OK, pour une transmission réussite.
- Security Problem, si l’application n’a pas le droit d’envoyer un SMS, d’ou une configuration du téléphone est nécaissère.
- Unknown Problem, pour les cas de figure non pris en considération
Par la suite, une petite interace avec deux champs de saisis et un champ d’affichage de résultat.
L’implémentation de la commande OK, et l’ajout du bout du code suivant :
sol.setText(sendSms(number.getString(), message.getString()));
Petit test sur mon téléphone (Nokia 5800), fonctionnel, un message de securité s’affiche pour la première fois pour demander si vous voulez accorder la ressource SMS à l’application “oui”
.
Fedora 9 : Path JAVA, Plugin Flash 64bit
Je voudrais porter votre attention sur le path JAVA qui est appelé par les bundles (xwiki, liferay, Jboss portal, . . .) pour s’exécuter. Pour le configurer d’une manière efficace et avec le moins de risque crée le fichier java.sh au niveau de /etc/profile.d dans lequel vous devez ajouter :
-
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
-
export JRE_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
ajouter le droit d’éxécution à notre fichier
-
chmod +x /etc/profile.d/java.sh
et vous pouvez commencer à tester vos applications java
Pour le flash d’adobe, le suivi de la release note suffit (j’ai exécute les commandes avec firefox fermé pour éviter tous problèmes en étant root)
-
-
mkdir -p /usr/lib/mozilla/plugins
-
-
yum install nspluginwrapper.{i386,x86_64} pulseaudio-libs.i386
-
-
rpm -ivh flash-plugin-9.0.124.0-release.i386.rpm
-
-
mozilla-plugin-config -i -g -v
-
L’obtention du rpm s’est effectuer sur ce lien :
http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&Lang=French&P5_Language=French
ouvrez votre firefox et vérifer à partir de site qui utilise flash sinon ouvrez ce lien : about:plugins
Spring JSR 286
L’équipe de Spring nous promet le support de la spécification JSR 286 dans sa version 3 de Spring Portlet MVC.
La chose la plus importante dans cette spécification pour moi est la communication entre les portlets
Spring Portlet sur liferay
Je vous ai promis un exemple. Le voila malgré un petit retard. je m’excuse.
Ce code a était fait sur IDE NetBeans 6.1 RC1 en utilisant Spring avec dépendance 2.5.1.
dans build.xml il faut modifier spring.root
-
<property name="spring.root" value="C:/Users/hp/Desktop/liferay/spring-framework-2.5.1"/>
pour pointer sur l’emplacement de spring.
Lien : sample spring
Mon poste sur la création de portlet liferay avec spring en format PDF
En attendant l’exemple, je vous propose mon dernier poste en format PDF et j’en profite pour tester l’attach file module.
liferay-spring
Création d’une portlet avec support du framework Spring pour liferay
Introduction
Nous allons prendre
l’exemple petportal proposé par spring, ajouter les XML
manquants pour qu’il puisse répondre aux exigences de
liferay, puis ajouter notre portlet exemple à l’application.
On suppose que vous
avez déjà téléchargé spring 2.5.1
(version utilisé pour ce tutorial) avec ses dépendances.
Tout au long de ce
document notre application aura comme nom XXXXX
Ajout des fichiers manquants.
Les fichiers
manquants sont :
liferay-portlet.xml pour lister
les différents portlets.
liferay-plugin-package.properties
pour définir les propriétés de notre
application
liferay-display.xml pour
la disposition de nos portlets dans le menu ‘’add application’’
de liferay.
Création de la portlet
Définition dans portlet.xml
Chaque portlet doit
être définie dans ce fichier XML en utilisant les
balises suivantes :
Portlet-name :
Identificateur de la portlet qui doit être unique dans
l’application.
Portlet-class : La class
dispatcher de notre application Spring.
Vous pouvez la définir
vous-même ou faire appel à une classe générique
proposé par Spring
(org.springframework.web.portlet.DispatcherPortlet ).
Init-param : paramêtre
pour l’initialisation de notre application. Nous allons juste
ajouter contextConfigLocation et le faire pointer sur notre nouveau
fichier.
Supports : donner le type
de la sortie (text/html pour notre cas) et les modes que la portlet
va assurer ( view pour notre cas )
Portlet-info : pour donner
des informations sur la portlet, ce que nous retiendrons c’est
title pour définir le titre qui sera affiché pour les
utilisateurs finaux.
<portlet>
<portlet-name>XXXXX</portlet-name>
<portlet-class>
org.springframework.web.portlet.DispatcherPortlet
</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/portlet-XXXXX.xml</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Recherche
client</title>
</portlet-info>
</portlet>
Définition dans liferay-portlet.xml
Dans ce fichier on
va juste faire une copie de notre ID du fichier précédant
comme suit :
<portlet>
<portlet-name>XXXXX</portlet-name>
</portlet>
Définition dans liferay-display.xml
Il ne reste plus
qu’a ajouter notre portlet dans la catégorie qu’on
voudrait la voir dans le bloc display comme suit :
<category
name="YYYYY">
<portlet
id="XXXXX" />
</category>
Création du fichier context
L’emplacement de
notre fichier a été défini dans portlet.xml,
donc on va le crée sous WEB-INF, context, avec le nom
portlet-XXXXX.xml.
<?xml
version="1.0" encoding="UTF-8" ?>
<!DOCTYPE
beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!–
Ici vont se trouver les définitions de nos beans –>
<bean
id="portletModeHandlerMapping"
class="org.springframework.web.portlet.handler.PortletModeHandlerMapping">
<property
name="order" value="20" />
<property
name="portletModeMap">
<map>
<entry
key="view" value-ref="xcontroleur" />
</map>
</property>
</bean>
<bean
id="parameterMappingInterceptor"
class="org.springframework.web.portlet.handler.ParameterMappingInterceptor"
/>
<bean
id="portletModeParameterHandlerMapping"
class="org.springframework.web.portlet.handler.PortletModeParameterHandlerMapping">
<property
name="order" value="10" />
<property
name="interceptors">
<list>
<ref
bean="parameterMappingInterceptor" />
</list>
</property>
<property
name="portletModeParameterMap">
<map>
<entry
key="view">
<map>
<entry
key="xview"
value-ref="xcontroleur"
/>
</map>
</entry>
</map>
</property>
</bean>
<bean
id="xcontroleur"
class="org.tunisiana.controller.XControleur">
</bean>
</beans>
Ce que nous devons
retenir ici c’est la définition de notre contrôleur et
de son emplacement. Mais aussi, la partie View de l’application.
Création du contrôleur
Tout d’abord, il
faut respecter l’emplacement attribué au début.
Un contrôleur
Spring doit hériter de AbstractController qui se trouve sous
org.springframework.web.portlet.mvc.AbstractController.
Un contrôleur
doit définir les méthodes :
protected
void handleActionRequestInternal(ActionRequest request,
ActionResponse response)
protected
ModelAndView handleRenderRequestInternal(RenderRequest request,
RenderResponse response)
Remarques
L’appel de ses
deux méthodes se fait successivement d’où si vous
avez besoin de paramètre de formulaire dans la deuxième
méthodes, il faudrait penser à les passer ou les faire
passer toutes en utilisant :
response.setRenderParameters(request.getParameterMap());
Reste
Le reste est
semblable à la création d’application Spring.
Gtalk Translate from english to arabic
I want to present for you a java application on gtalk. I created it using smack API and google translate API. You can use it on adding translate.fr@gmail.com to your contacts.
I wish you will appreciate testing this sample.
You can download source code on : http://code.google.com/p/gmailwikipedia/downloads/list
Looking forward to yours comments and suggestions.
Mise en place de l’environnement de développement liferay sous eclipse
Présentation des logiciels requis :
• JDK. J’utilise la version 6 de Sun.
• ANT. J’utilise la version 1.7
• Eclipse. J’ai téléchargé la version 3.3.1 Java EE à partir du site officiel.
• LIFERAY. J’utilise la version 4.4.1 avec Tomcat 5.
• LIFERAY plugins SDK, disponible sur le site officiel dans Additional files
Remarque : pour le développement SPRING MVC, des bugs ont été fixé dans la version 4.4.2 de liferay.
Installation
JDK
Pour Windows, le jdk est un exécutable qu’il faut lancer mais aussi des variable d’environnement sont nécessaire
$JAVA_HOME = C:\Program Files\Java\jdk1.6.0_02
$JRE_HOME = C:\Program Files\Java\jre1.6.0_02
Qui pointent sur l’emplacement de l’installation, exemple pour ma part.
ANT
Il faut ajouter la variable d’environnement qui
ANT_HOME = C:\apache-ant-1.7.0
Qui Pointe sur l’emplacement de ant et ajouter %ANT_HOME%\bin dans le path.
Eclipse, LIFERAY, LIFERAY SDK
Il suffit de les désarchivés et ils sont près à l’emploi.
Mise en place
Création du projet sur eclipse
File -> new -> Project … -> Java Project
Ensuite next,
Nom du projet : SDK
Create project from existing source
Ensuite Finish
Configuration du SDK
Ouvrir le fichier build.properties et changer la valeur d’app.server.dir par l’emplacement du désarchivage de notre LIFERAY.
app.server.dir=C:/Users/hp/Desktop/liferay/liferay-441
Mise en place de ant
On commence par ajouter la fenêtre de ant
Window -> Show View -> Ant
On deplace build.xml dans Ant
et hop ça fait des chocapic
Création portlet
Sous le repertoire portlets du sdk, il faut lancer la commande
ant -Dportlet.name=newportlet -Dportlet.display.name="My new Portlet" create
Pour la creation d’un sample.
Compilation et archivage de portlet
Ant est l’outil utilisé pour la compilation, le déploiement et l’archivage avec les option clean, compile et war que vous pouvez lancer à partir de eclipse ou de la ligne de commande.
Récupération d’exemples
Plusieurs exemple sont disponible sur la sourceforge et qui peuvent être télécharger avec svn en utilisant la commande :
svn co http://lportal.svn.sourceforge.net/svnroot/lportal/plugins/trunk/portlets lportal
Vos remarques sont les bienvenus pour enrichir ce billet
7 comments
