Bonjour à Tous et à Toutes,J'utilise actuellement Alfresco 2.0 sous windows avec Mysql,Tomcat 5.5 et le JDK 1.5J'ai créé une nouvelle classe qui hérite de la classe org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint
Cette classe me permet d'aller chercher dans une nouvelle instance mysql les données contenues dans une table, mettre ces données dans une ArrayList et de passer cette liste à la méthode setAllowedValues
de la classe héritée. De cette manière je peux bénéficier d'une contrainte de type LIST dynamique. Voici le code de ma classe package be.test.alfresco.constraint;
import java.sql.Connection;
import java.util.ArrayList;
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.apache.commons.logging.Log;[quote]import org.apache.commons.logging.LogFactory;
import be.test.alfresco.utility.db.DbUtils;
import be.test.alfresco.utility.db.SqlHelper;
public class ListCiviliteConstraint extends ListOfValuesConstraint {
private static Log logger = LogFactory.getLog("be.nsi.alfresco.constraint.DbUtils");
public ListCiviliteConstraint() {
super();
super.setAllowedValues(getCivilite());
}
/**
* Va rechercher la liste des Civilites dans la base de donnée
* @return la liste des Civilites
*/
private ArrayList getCivilite(){
ArrayList civilites=null;
Connection conn=null;
try {
conn = DbUtils.getDbConnection();
civilites = SqlHelper.getAllCivilitesType(conn);
DbUtils.closeDbConnection(conn);
} catch (Exception e) {
logger.error(e.getMessage());
}[/quote]
return civilites;
}
}Aprés avoir testé (avec une classe test) cette classe tout fonctionne correctement.C'est maintenant que cela ce complique
J'ai un fichier customModel.xml dans lequel : Je défini ma contrainte comme ceci<constraints>
[b]<constraint name="Identification:ctrCivilite" type="be.test.alfresco.constraint.ListCiviliteConstraint">
</constraint>[/b]
</constraints>
J’applique cette contrainte sur un custom aspect<aspect name="Identification:Personne">
<title>Identification Personne</title>
<properties>
<property name="Identification:Civilite">
<title>Civilite</title>
<type>d:text</type>
<constraints>
[b]<constraint ref="Identification:ctrCivilite" />[/b]
</constraints>
………
</property>
Je génère un jar avec mes nouvelles classes que je place dans le répertoire webappsalfrescoWEB-INFlib
de tomcatJe démarre Alfresco et la j'obtiens le message suivant dans le log fileorg.alfresco.service.cmr.dictionary.DictionaryException: Constraint type 'be.test.alfresco.constraint.ListCiviliteConstraint' on constraint 'Identification:ctrCivilite' is not a well-known type or a valid Constraint implementation
at org.alfresco.repo.dictionary.M2ConstraintDefinition.resolveInternal(M2ConstraintDefinition.java:176)
at org.alfresco.repo.dictionary.M2ConstraintDefinition.resolveDependencies(M2ConstraintDefinition.java:117)
at org.alfresco.repo.dictionary.CompiledModel.<init>(CompiledModel.java:107)
On dirait que ma nouvelle classe n'a pas été correctement déployée.Si quelqu'un à une idée il est le bien venu
Merci d'avance