Intégrer la dernière version de mojarra dans un projet dédié à la plateforme google app engine

Dans un --trop ancien-- précédent post, j'ai décrit comment mettre sur GAE par une méthode un peu bourrin qui était de prendre un JAR modifié sur le net, l' importer dans le référentiel et le déclarer dans le fichier pom.Xml.

En parcourant les forums de primefaces, j'ai découvert une autre méthode un peu plus élégante :

  1. Télécharger les sources de mojarra ( ici 2.0.03.FCS)
  2. Créer dans votre projet un package com.sun.faces.config
  3. Copier le fichier WebConfiguration.java présent dans la distribution précédemment téléchargée
  4. Mettre en commentaire le contenu de la méthode processJndiEntries
private void processJndiEntries(String contextName) {
	/*
        Context initialContext = null;
        try {
            initialContext = new InitialContext();
        } catch (NamingException ne) {
            if (LOGGER.isLoggable(Level.WARNING)) {
                LOGGER.log(Level.WARNING, ne.toString(), ne);
            }
        }
 
        if (initialContext != null) {
            // process environment entries
            for (WebEnvironmentEntry entry : WebEnvironmentEntry.values()) {
                String entryName = entry.getQualifiedName();
                String value = null;
 
                try {
                    value = (String) initialContext.lookup(entryName);
                } catch (NamingException root) {
                    if (LOGGER.isLoggable(Level.FINE)) {
                        LOGGER.fine(root.toString());
                    }
                }
 
                if (value != null) {
                    if (LOGGER.isLoggable(Level.INFO)) {
                        // special logic for ClientStateSavingPassword
                        if (!entry
                              .equals(WebEnvironmentEntry.ClientStateSavingPassword)) {
                            if (LOGGER
                                  .isLoggable(loggingLevel)) {
                                LOGGER.log(loggingLevel,
                                           "jsf.config.webconfig.enventryinfo",
                                           new Object[]{contextName,
                                                        entryName,
                                                        value});
                            }
                        } else {
                            if (LOGGER
                                  .isLoggable(loggingLevel)) {
                                LOGGER.log(loggingLevel,
                                           "jsf.config.webconfig.enventry.clientencrypt",
                                           contextName);
                            }
                        }
                    }
                    envEntries.put(entry, value);
                }
            }
        }
	*/
    }

Il ne reste plus qu'à récupérer les versions souhaitées de JSF via la configuration maven

<profile>
            <id>mojarra</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <jsfVersion>Mojarra-2.0.3-FCS</jsfVersion>
                <primefacesVersion>PrimeFaces-2.2.RC1-SNAPSHOT</primefacesVersion>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.primefaces</groupId>
                    <artifactId>primefaces</artifactId>
                    <version>2.2.RC1-SNAPSHOT</version>
                </dependency>
               <dependency>
                    <groupId>javax.faces</groupId>
                    <artifactId>jsf-api</artifactId>
                    <version>2.0.3</version>
                </dependency>
                <dependency>
                    <groupId>javax.faces</groupId>
                    <artifactId>jsf-impl</artifactId>
                    <version>2.0.3</version>
                </dependency>
            </dependencies>
        </profile>

Et on arrive à un graphe de dépendance ressemblant à ça :

my-cellar-dependendies.png

Le code source de ce projet est disponible sur le site code.google.com : http://code.google.com/p/my-cellar/. Il est sous licence GPLV3.

Vus : 959
Publié par Littlewing : 368