Le module « Publication Simple » maintenant disponible pour Alfresco 4

Le module « Publication Simple » permet de rendre un document (ou plusieurs) momentanément invisible par les autres utilisateurs, tandis que le document est en cours de modification. Une fois les modifications terminées, le document peut être de nouveau rendu visible. Ce module, développé par StarXpert, est maintenant compatible avec les versions 4.x d’Alfresco.

En effet, certaines GED effectuent la dépose et la publication d’un document en même temps, que d’autres procèdent en deux temps. Le module « Publication Simple » permet de choisir le comportement d’Alfresco lors de la dépose d’un document : publication immédiate (document immédiatement accessible aux utilisateurs autorisés) ou publication différée, sous le contrôle de l’utilisateur ayant déposé le document.

Fonctionnement du module « Publication Simple »

Le module « Publication Simple » s’interface avec Alfresco Share.

image11

Le module met à disposition de l’utilisateur un nouvel aspect « Visible/Invisible ». Appliquer cet aspect rend le document invisible. Une nouvelle action — « Rendre Visible »– apparait alors sur la liste des actions.

image2

Tous les documents sont visibles par défaut. Un document rendu invisible le restera jusqu’à ce que l’utilisateur décide d’appliquer l’action « Rendre Visible ».

Il est possible d’appliquer l’aspect « Visible/Invisible » sur plusieurs documents à la fois.

NB : l’action du module « Publication Simple », nommée « Publier » dans la version 3, devient « Rendre visible » à partir de la v4. En effet, il existe déjà une action nommée « Publier » dans Alfresco 4.  StarXpert a préféré changer le nom de l’action pour éviter toute confusion et pour la rendre plus explicite pour l’utilisateur

  • Pour plus de détails sur le fonctionnement de l’action « Rendre Visible » une documentation « Spécification Fonctionnelle 2.0» est disponible. Contactez- nous pour plus de renseignements, ou pour obtenir le module.
  • Vous avez besoin d’un développement Alfresco spécifique ? Contactez StarXpert.

Sécurité Alfresco : comment configurer le contrôle des accès ?

Votre Alfresco est pénétré par des personnes externes à l’entreprise qui ont accès à votre propriété intellectuelle. Un cauchemar dont vous vous réveillez en sueurs ? Le scénario du dernier film d’espionnage faisant triompher Bruce Willis ?

Pas nécessairement mais c’est un sujet fréquent d’interrogations. En effet, il existe une fonctionnalité permettant à un gestionnaire de site d’inviter un utilisateur jusque là inexistant dans Alfresco. Si cette possibilité est intéressante pour une plate-forme ouverte–dans le cas d’un projet regroupant des équipes hétérogènes–dans un environnement d’entreprise on préfère contrôler l’accès à l’application en gérant les comptes dans un annuaire LDAP. Une telle fonctionnalité constitue alors une faille de sécurité dans le système, d’où l’importance de bien configurer Alfresco en fonction de vos besoins.

Configuration par défaut

Dans l’onglet « Membres » d’un site Share, le bouton « Inviter des personnes » nous envoie vers un formulaire permettant de rechercher un utilisateur (ou un groupe) pour l’inviter sur le site. En dessous de cette interface, une boite permet de saisir le nom et prénom d’un utilisateur, ainsi que son adresse e-mail. En cliquant sur « Inviter » un compte sera créé dans Alfresco et un mail sera envoyé aux utilisateurs.

Modifier la configuration

Selon la documentation officielle1 : « Cette fonctionnalité est désactivée si l’installation de votre application ne permet pas la création de nouveaux utilisateurs2 ». Si cela ne vous paraît pas très explicite, précisons que l’authentification d’un utilisateur depuis la base interne d’Alfresco–c’est à dire ne provenant pas d’une base LDAP–doit être désactivée pour que cette fonctionnalité cesse d’être accessible. Techniquement cela correspond à désactiver le sous-système d’authentification « alfrescoNtlm » dans votre fichier de configuration alfresco-global.properties, puis à le remplacer par une authentification LDAP.

Par exemple :

authentication.chain=passthru1:passthru,ldap1:ldap,alfrescoNtlm1:alfrescoNtlm

devient :

authentication.chain=passthru1:passthru,ldap1:ldap

En savoir plus

1 http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Ftasks%2Fmembers-invite.html

2 This feature is disabled if your installation of the application does not support the creation of new users.

Vous avez besoin d’aide pour configurer correctement votre Alfresco ? N’hésitez-pas à nous contacter.

Outil de statistiques Alfresco « ASUR » : quelles nouveautés dans la version 1.5 ?

Outil de statistique Alfresco " ASUR" : quelles nouveautés dans la version 1.5 ?

Pourquoi ASUR ?

ASUR—Alfresco Share Usage Reporting—est un outil de statistiques pour Alfresco développé par StarXpert, qui permet aux entreprises de prévoir la montée en charge et l’espace futur qui sera utilisé par Alfresco. Pour cela, ASUR affiche les différentes données relatives à l’utilisation d’alfresco (nombre de fichiers créés/modifiés, nombre de connexions …) sous forme de graphes. Ces données peuvent ensuite être exportées sous forme de fichier CSV.

Nouvelles fonctionnalités d'ASUR 1.5

ASUR 1.5, la nouvelle version de l'outil de statistique pour Alfresco Share, présente un nouveau design ainsi que de nouvelles fonctionnalités :

  • Ajout de l'audit des fichiers modifiés
  • Ajout du filtre des résultats par groupe
  • L'utilisateur a le libre choix des données (application d'audit) à afficher sur le graphe
  • Export en image PNG pour impression (l'impression concerne la partie sélectionnée du graphe)
  • Export CSV des données

Alfresco : audit de performances d’Explorer vs Share

Alfresco Share, étant plus récent qu’Alfresco Explorer, bénéficie de nouvelles améliorations et c’est bien normal. Mais au delà des nouveautés fonctionnelles, qu’en est-il des performances ? C’est ce que StarXpert a cherché à savoir en effectuant un audit des deux interfaces.

StarXpert a donc mis face à face Alfresco Explorer, l’interface développée en JSF, et Alfresco Share, l’interface développée avec le nouveau framework Spring Surf. StarXpert a utilisé JMeter pour stresser l’application, et a étudié le comportement de la machine pendant les phases de tests grâce à des outils développés en interne.

Méthodologie

La version installée est Alfresco Enterprise 3.4. Un script JMeter a été développé pour stresser l’interface Explorer. Puis, un script équivalent a été développé pour l’interface Share. Ces scripts sont simples : Ils se contentent de parcourir une dizaine d’espaces contenant entre 4 et 866 fichiers pdf (pour un total de 2 319 fichiers). Le scénario est le suivant :

  1. L’utilisateur s’authentifie
  2. Il accède à l’espace racine d’Alfresco (My Alfresco ou Repository)
  3. Il accède à l’espace de test racine, contenant les 10 espaces de tests.
  4. Il rentre dans un espace de test et liste les fichiers.

Les étapes 3 et 4 sont répétées en boucle jusqu’à la fin du test. Le script changeant d’espace à chaque itération, au total 1000 itérations sont effectuées pour chaque test.

Le test a été lancé successivement avec 5, 10, 15, 20, 25, 30, 35, 40, 45 et 50 threads simultanés. Il faut préciser qu’un thread ne correspond pas à un utilisateur réel. On peut considérer qu’un thread impact le serveur de la même façon que 5 à 10 utilisateurs travaillant simultanément.

Le serveur utilisé pour ce test est un serveur virtualisé sur vmware avec 2 cpu et 4Go de RAM, application sur Tomcat et MySQL.

Résultat

Les deux graphiques ci-dessous présentent une synthèse des résultats pour les deux interfaces.

Les barres représentent le temps de réponse moyen d’une page en millisecondes. Le premier trait pointillé correspond à 1 seconde, le premier trait plein correspond à 2 secondes.

Les lignes représentent le débit moyen en pages par minutes. L’échelle utilisée ici est exponentielle, en moyenne le débit est compris entre 300 et 1100 pages par minutes.

On constate que l’interface Explorer s’effondre lorsque la charge est trop importante (>35 threads) alors que l’interface Share encaisse la charge de façon linéaire.

On peut voir aussi que le débit maximal de la machine (~1k pages/minutes) est atteint avec 15 threads, soit 75 à 150 utilisateurs. Au dessus de ce seuil, les performances vont naturellement se dégrader.

Cependant, le point le plus important de l’étude est de constater qu’après les tests de charge, le système se rétablit parfaitement si on utilise l’interface Share, ce qui n’est pas le cas pour l’interface Explorer. Un redémarrage de l’environnement Tomcat devient indispensable !

Ceci s’explique en regardant l’évolution de la mémoire JAVA. La région Old Generation de la pile mémoire se remplit progressivement au cours des tests, jusqu’à atteindre le seuil maximal. Ceci provoque un déclenchement disproportionné du Garbage Collector et impact très fortement les performances.

En utilisant l’interface Share, ce phénomène ne se rencontre pas.

Conclusion

Cette étude nous montre que l’interface Share gère mieux la mémoire Java que l’interface Explorer. Elle peut donc plus facilement subir un pic d’activité sans compromettre la stabilité de l’application. On peut conclure également que l’usage d’outils de stress et de supervision (tels que ceux développés par StarXpert) est necessaire pour mieux calibrer et optimiser les serveurs Alfresco.

 

Comment créer un site web en un temps record avec Alfresco Web Quick Start

La Gestion de Contenu Web (WCM) est devenue une partie incontournable de la Gestion de Contenu de d’entreprise. Alfresco proposait depuis longtemps une solution appelée Alfresco WCM. Or, celle-ci avait l’inconvénient majeur de nécessiter des compétences informatiques pour effectuer une mise en place initiale, pour par exemple paramétrer des formulaires XSD et des templates FreeMarker.

Alfresco WCM est maintenant remplacée par le module Web Quick Start. Le point clé de cette nouvelle solution est sa simplicité de mise en œuvre, qu’il s’agisse de son installation ou de son utilisation. De plus, Web Quick Start intègre des modèles de sites permettant de démarrer sur un existant et d’avoir immédiatement une visualisation du fonctionnement et des concepts de l’outil.

La solution Web Quick Start est basée sur Alfresco Share. Elle bénéficie donc de la facilité d’utilisation de cette interface développée selon les concepts du « Web 2.0 ».

Fonctionnalités principales

Web Quick Start apporte les fonctionnalités suivantes (liste non exhaustive) :

  • modification de la structure du site publié en modifiant l’organisation des dossiers Alfresco Share
  • gestion des menus d’accès aux rubriques
  • paramétrage de la page d’accueil par sélection d’éléments des différentes rubriques, par choix de carrousel d’images, extraits d’articles de blogs, extraits de contenus
  • gestion des liens entre rubriques et articles
  • définition de templates pour la page d’accueil de chaque rubrique ou sous-rubrique, pour les articles d’une rubrique, pour les contenus d’une rubrique
  • accès à des publications (téléchargement de documents PDF présents dans le référentiel Alfresco)
  • formulaire de contact
  • commentaire sur les articles
  • gestion du multilinguisme
  • recherche plein texte

Installation et utilisation

L’installation de Web Quick Start sur Alfresco se résume à l’installation de modules Alfresco. La procédure décrite sur le wiki d’Alfresco s’effectue en quelques minutes.

Une fois Web Quick Start installé, une visualisation rapide de ses capacités est proposée à l’aide des exemples fournis avec le produit.

La procédure à suivre pour cela est :

  • créer un site Alfresco Share,
  • utiliser la fonction Personnaliser le tableau de bord puis Ajouter des dashlets
  • choisir la dashlet Démarrage rapide WQS

Le tableau de bord du site proposera alors la dashlet Web Quick Start :

  • Web Quick Start est fourni avec deux modèles de site. Choisir un modèle puis faire Import.

Le site pubié correspondant est alors accessible depuis l’url http://monServeur:8080/wcmqs.

Aperçu du fonctionnement

La structuration du site publié, les pages et les contenus sont définis et gérés dans l’espace documentaire du site Alfresco Share.

Cet espace est organisé comme suit (exemple après avoir importé le modèle Government) :

La branche éditoriale sera utilisée pour effectuer et tester des modifications, la branche Live correspond elle à ce qui sera visualisé par les utilisateurs. La validation d’une modification s’effectue via un workflow pré-défini.

Les sous-répertoires du site correspondent aux rubriques du site; le contenu des sous-répertoires sont les pages affichées. Les sous-répertoires d’une rubrique correspondent aux sous-rubriques.

La modification des pages s’effectue par l’éditeur web intégré à Alfresco Share.

Pour aller plus loin

Le paramétrage s’effectue principalement via les méta-données des dossiers et des pages.

Les modèles de pages sont des pages Surf. Leur définition implique donc des fichiers XML et des templates Freemarker.

Alfresco Enterprise 4 : quelles améliorations attendre ?

La première version Alfresco Communautaire (4.0a) est déjà disponible alors qu’Alfresco Enterprise est prévu pour la fin de l’année. StarXpert lève le voile sur les nouveautés qui caractérisent la prochaine version majeure d’Alfresco.

L’équipe d’Alfresco a mis l’accent sur trois sujets :

  • améliorer l’ergonomie d’Alfresco
  • enrichir les fonctions de réseau social d’entreprise
  • faciliter le déploiement et l’administration

Au titre de ces 3 sujets, les améliorations relevées par StarXpert sont :

  • le glisser-déplacer pour déposer des fichiers, pour déplacer des fichiers
  • l’édition en ligne des propriétés des documents
  • des possibilités de tri accrues
  • la refonte du calendrier,
  • une intégration avec Twitter, YouTube, Facebook, des fonctions de suivi des personnes et des contenus, des notifications email sur abonnement,
  • une nouvelle console d’administration (gestion des tags, des workflows, configuration…),
  • le remplacement de l’indexation Lucene par le moteur de recherche Solr. Ceci apporte des améliorations notables sur les capacités de recherche, ainsi que sur les performances d’Alfresco.

On note aussi sans surprise l’arrivée du moteur de Workflow Activiti, qui était déjà annoncé pour cette version.

Autre grande nouveauté, Alfresco Team est un outil dédié permettant d’étendre le travail collaboratif sur les contenus au terminal mobile. Alfresco le considère comme un un point clé de l’avenir. L’ECM pourra ainsi tirer partie de la révolution concernant la diffusion d’outils nomades apportée notamment par Apple (iPhone, iPad).

Projet collaboratif Alfresco : fédérez vos équipes avec un Extranet commun !

La semaine dernière, nous avons évoqué le cas d’un workflow de validation intégrant un outil de signature éléctronique au sein d’Alfresco. Cette semaine nous allons aborder un autre cas de figure fréquement demandé par nos clients : la mise en oeuvre d’un extranet Alfresco permettant de rassembler tous les acteurs d’un projet.

En effet, nombre de projets nécessitent d’encourager la communication et le partage de documents au sein d’équipes dont la collaboration n’est pas facilitée par le manque de contacts ni par des besoins et modes de fonctionnement hétérogènes. Par exemple, le projet du grand théâtre des Cordeliers de la ville d’Albi concerne des intervenants aussi divers que maîtres d’ouvrage, assistants à la maitrise d’ouvrage, maître d’oeuvre et entreprises. Aussi la ville d’Albi avait besoin d’un outil de GED permettant de centraliser et de partager l’ensemble des documents dans le cadre du projet, mais aussi d’assurer la traçabilité des plans, des notes de synthèse, des compte-rendu de chantier etc …

L’outil de GED devait être accessible depuis le réseau local de la ville d’Albi ainsi que depuis internet via des accès sécurisés et un navigateur. Chaque utilisateur devait pouvoir accéder au système de GED par le biais d’un compte nominatif lui permettant d’accéder aux documents en fonction de ses droits. Pour cela, Alfresco a été connecté à un annuaire central, afin de récupérer les noms des utilisateurs et les groupes d’utilisateurs. Les utilisateurs sont authentifiés soit grâce à l’annuaire central Active Directory de la ville d’Albi, ou pour les utilisateurs externes via une authentification CAS connectée à l’annuaire LDAP.

Une traçabilité de l’ensemble des opérations réalisées avec chaque compte est assurée : création, suppression ou modifications (avec une gestion du versioning) des documents. Le volume de documents créés pour un tel projet requiert également la possibilité d’effectuer des recherches dans le titre des documents, les commentaires et le contenu (recherche plein texte pour les documents bureautiques : OpenOffice, Microsoft Office, PDF). Enfin, les documents supprimés sont conservés sur une sauvegarde pendant un mois.

Gestion des droits d’accès aux documents

Les droits d’accès aux répertoires sont définis en amont et sont gérés par l’administrateur du système GED. Les utilisateurs finaux ne peuvent pas de leur propre chef créer ou modifier ces droits d’accès. Lorsqu’un utilisateur crée un dossier ou un document, celui-ci hérite des droits du répertoire supérieur. Trois rôles définissent les possibilités d’accès aux répertoires et documents. Les rôles sont attribués aux utilisateurs ou groupes d’utilisateurs au niveau de chaque répertoire géré par l’administrateur du système :

  • Lecteur : permet uniquement d’accéder au répertoire et à son contenu pour consulter les documents
  • Collaborateur : permet d’accéder au répertoire et à son contenu mais également de modifier ou d’ajouter un document
  • Coordinateur : permet d’accéder à l’ensemble des répertoires et des documents. Ce rôle est réservé aux administrateurs fonctionnels du système

La notion de « propriétaire » d’un répertoire ou document est également importante. En dehors du coordinateur, seul le propriétaire d’un répertoire/document est autorisé à supprimer un document. Il ne peut donc pas y avoir de suppression intempestive sans que le propriétaire du document (en général le créateur) ne soit partie prenante. Cela montre une fois de plus l’importance d’avoir un compte nominatif par utilisateur.

En savoir plus

– Découvrez les fonctionnalités d’Alfresco avec une démonstration en ligne

– Vous avez un projet spécifique que vous voulez évoquer avec StarXpert ? Contactez-nous

Alfresco : implémenter un workflow de validation

Alfresco est un logiciel de gestion de contenu d’entreprise très puissant, et nombre de DSI reconnaissent le besoin d’une telle application au sein de leur entreprise privée ou publique. Cependant, ils ne savent pas toujours comment aborder le projet. StarXpert intervient souvent pour expliquer Alfresco et sa mise en oeuvre. C’est pourquoi nous allons examiner ici un cas de figure fréquent, à savoir  la création d’un workflow de validation, tel que nous l’avons implémenté pour un de nos clients parmi les collectivités locales et territoriales .

Le workflow de validation développé ici par StarXpert permet la gestion des arrêtés (les décisions de nomination à un poste) pour le compte du service des Ressources Humaines. L’objectif de l’application est de dématérialiser le processus de validation et de signature des nominations, avec l’aide d’un parapheur électronique. Les arrêtés sont produits par l’application Métier, qui les déverse dans un site Alfresco Share. Les méta-données fournies par l’application Métier permettent le classement du document lors de son importation dans Alfresco. Le plan de classement est organisé par direction et par type d’arrêté.

Le site Alfresco Share est interfacé avec un parapheur électronique, permettant de signer les documents de façon numérique. Ainsi dans le dossier des arrêtés à faire signer, chaque document peut être envoyé dans le parapheur par un simple clic. Il est ensuite automatiquement converti en PDF pour ne plus être modifié. Dans le parapheur, chaque signataire dispose de huit bannettes, dont quatre principales : Dossiers à traiter, à venir, récupérables et en retard.

Lors du traitement, et pour chaque document, s’affichent : la chaîne de validation, un aperçu du document et les actions possibles (viser ou rejeter). En cas de rejet, le validateur peut écrire une annotation publique ou privée. En fin de processus de validation, le Président signe l’arrêté avec un certificat électronique.

Chaque étape de validation est enregistrée dans le dossier RH du candidat dans le site Alfresco Share. Le tableau de bord permet de connaître l’état d’avancement des dossiers.

L’application a été développée sous Alfresco Share 3.4 Enterprise et interfacée avec le parapheur de l’Adullact.

En savoir plus

Découvrez les fonctionnalités d’Alfresco avec une démonstration en ligne

– Vous avez un projet spécifique que vous voulez évoquer avec StarXpert ? Contactez-nous

StarXpert dévoile de nouveaux outils d’administration d’Alfresco

StarXpert installe et personnalise des serveurs Alfresco depuis 2006. En cinq ans nous avons remonté un certain nombre de demandes de nos clients visant à faciliter l’administration d’Alfresco. Nous avons répondu à ces demandes en développant de nouveaux outils, preuve qu’Alfresco est extensible grâce à son API et à son code ouverts. Nous avons regroupé ces outils sous forme d’une suite, véritable boite à outils : les StarXpert Admin Tools. En effet, les StarXpert Admin Tools sont des webscripts qui permettent de réaliser différentes taches d’administration, et qui sont intégrés à la console d’administration Share au même titre qu’ASUR (l’outil de reporting Alfresco).

Fonctionnalités des StarXpert Admin Tools :

  1. Ajouter un manager à un site : sur un site Share, seul le gestionnaire du site peut promouvoir un membre au titre de gestionnaire. Or, si le gestionnaire vient à quitter l’entreprise, personne ne peut le remplacer. Pour pallier à ce manque, le nouvel outil permet à un administrateur d’ajouter directement un nouveau gestionnaire du site.
  2. Editer les versions d’un document : les documents définis comme ‘versionnable’ sont versionnés à la manière d’un SVN. Le nouvel outil permet de gérer ces versions, pour par exemple ne garder que la dernière version d’un document par jour, ou bien reculer ou avancer de N version. L’outil permet d’éviter une proliferation de versions rendant le suivi difficile.
  3. Configuration avancée d’alfresco (JMX) : la configuration d’alfresco ( Services, ports…) peut normalement être changée en modifiant les fichiers de configuration sur un serveur à l’arrêt. Le nouvel outil permet de changer la configuration d’Alfresco à chaud en trois étapes :
    1. Téléchargement d’un fichier CSV qui contient la configuration JMX d’alfresco.
    2. Modification des attributs désirés.
    3. Upload du fichier CSV modifié. La dernière action permet de mettre à jour la configuration d’Alfresco instantanément
  4. Lister les erreurs d’indexation Lucene : Alfresco indexe les fichiers texte grâce à lucene. Le nouvel outil permet de lister les erreurs d’indexation qui peuvent se produire : nint, nitf, nicm, nintc (Voir le projet Apache Lucene pour plus de détails sur les erreurs possibles).
  5. Afficher les permissions d’un utilisateur : Alfresco ne permet pas de voir les espaces, dossiers et fichiers sur lesquels un utilisateur possède des permissions. Le nouvel outil permet de chercher un utilisateur et d’afficher en un temps record tous les nœuds sur lesquels il a des permissions. Nous avons choisi d’afficher les nœuds de type « folder » et « content » mais il est possible d’étendre l’affichage à tous les nœuds tout aussi rapidement.
  6. Suppression des permissions d’un utilisateur : si un utilisateur est désactivé, par exemple s’il a quitté la société, on doit pouvoir supprimer ses permissions, sans pour autant supprimer l’utilisateur, afin de le garder comme auteur de ses fichiers. Le nouvel outil permet de retrouver un utilisateur et de supprimer toutes ses permissions sur le repository en un temps minimal.
  7. Accès aux consoles Alfresco et aux Webscripts : Dans la console d’administration Share, le nouvel outil facilite l’accès aux consoles d’Alfresco (Workflow, AVM, Surf…) et le rechargement des Webscripts Alfresco et Share.

En savoir plus sur Alfresco Share

Démonstration de la Gestion Documentaire Alfresco

Alfresco Share : architecture pour créer un nouveau module

Nous avons récemment annoncé la création d’ASUR, le nouveau module d’audit pour Alfresco Share. Aujourd’hui, nous allons examiner la première étape de la création d’un nouveau module Share, à savoir le squelette pour projet Ant Eclipse.

Pour créer un module pour Share il faut mettre en place l’arborescence suivante :

Nous allons maintenant détailler le contenu des fichiers décrits ci-dessus.

build.xml

<?xml version="1.0"?>

<project name="Module Share" default="package-amp" basedir=".">
	<property name="project.dir" value="."/>
	<property file="${project.dir}/build.properties"/>
	<property file="${project.dir}/module.properties"/>
	<property name="build.dir" value="${project.dir}/build"/>
	<property name="config.dir" value="${project.dir}/config"/>
	<property name="jar.file" value="${build.dir}/lib/${module.id}.jar"/>
	<property name="amp.file" value="${build.dir}/dist/${module.id}.amp"/>
	<path id="class.path">
		<dirset dir="${build.dir}" />
		<fileset dir="${project.dir}/lib" includes="**/*.jar" />
		<fileset dir="${alfresco.sdk.dir}/lib/server" includes="**/*.jar" />
	</path>
	<target name="mkdirs">
		<mkdir dir="${build.dir}/dist" />
		<mkdir dir="${build.dir}/lib" />
		<mkdir dir="${build.dir}/classes" />
	</target>
	<target name="clean" description="Clean the build results">
		<delete dir="${build.dir}" />
	</target>

	<target name="compile" depends="mkdirs">
		<javac classpathref="class.path" debug="${debug}"
			srcdir="${project.dir}/source/java"
			destdir="${build.dir}/classes" encoding="UTF-8" >
			<compilerarg value="-Xlint:unchecked"/>
		</javac>
		<copy todir="${build.dir}/classes">
			<fileset dir="${project.dir}/source/java" defaultexcludes="false">
				<exclude name="**/*.java"/>
				<exclude name="**/.svn/**"/>
			</fileset>
		</copy>
	</target>

	<target name="package-jar" depends="compile">
		<jar destfile="${jar.file}" encoding="UTF-8" >
			<fileset dir="${build.dir}/classes"
				excludes="**/custom*,**/*Test*"
				defaultexcludes="false" />
		</jar>
	</target>

	<target name="package-amp" depends="package-jar" description="Package the Module">
		<zip destfile="${amp.file}" encoding="UTF-8" >
			<fileset dir="${project.dir}/build" includes="lib/*.jar" />
			<fileset dir="${project.dir}" includes="config/**/*.*" excludes="**/module.properties" />
			<fileset dir="${project.dir}">
				<include name="module.properties"/>
				<include name="file-mapping.properties" />
				<include name="WEB-INF/**/*" />
				<include name="lib/**/*" />
				<exclude name="WEB-INF/alfresco.tld"/>
				<exclude name="WEB-INF/repo.tld"/>
			</fileset>
			<zipfileset dir="source/web" prefix="web"/>
		</zip>
	</target>
</project>

build.properties

alfresco.sdk.dir = /path/to/sdk

file-mapping.properties

# Mappings des dossiers entre le module AMP et fichier WAR
#
# La propriété suivante peut être utilisée pour inclure l'ensemble des mappings standards.
# La valeur par défaut est «vrai », c'est à dire les mapping par défaut seront augmentés ou modifiés
# par les valeurs de ce fichier.
#
include.default=true
#
# Mappings personnalisés. Si 'include.default' est false, alors then ceci est l'ensemble complet.
#
/web/components=/components

module.properties

# Module Share

module.id=Module_Share
module.title=Module Share
module.description=Module for the application Share
module.version=1.0