Différence entre Mojarra et MyFaces

je commence sur JSF2.0 j'ai utilisé un tutoriel comme référence mais j'ai la question suivante:

le tutoriel a utilisé 2 libs seulement: jsf-api.jar , jsf-impl.jar (mais avait aussi JSTL) du projet Mojarra.

j'ai essayé de les télécharger aussi mais il semble que le site n'est pas accessible. Donc J'ai utilisé Apache MyFaces mais pour exécuter L'exemple j'ai dû ajouter 8 pots ( commons-* , myfaces-* ).

Pourquoi ai-je besoin de plus de pots si j'utilise mon visage? Dois-je préférer Mojarra comme plus léger? Aussi la page de téléchargement est en effet JSF Mojarra ?

Merci

42
demandé sur BalusC 2010-12-25 19:13:26

7 réponses

Pourquoi ai-je besoin de plus de bocaux si j'utilise MyFaces?

parce que ces dépendances commons-* ne sont pas empaquetées dans MyFaces. D'un autre côté, si vous utilisez d'autres bibliothèques de Apache.org qui utilisent aussi ces dépendances commons-* , alors vous finissez avec des bibliothèques plus petites de taille totale.

devrait être noté que depuis Mojarra 2.1.6 un format de fichier JAR unique javax.faces.jar est disponible.


si je préfère Mojarra plus léger

il s'agit d'un non-argument. Vous devriez examiner à quel point la mise en œuvre du JSF est solide et bien maintenue.

le grand-père de Mojarra, Sun JSF RI 1.0, et les premières versions de RI 1.1 ont été encombrés par de vilains bogues. À ce moment (vers 2004-2006), MyFaces était certainement le plus alternative stable.

depuis 1.1_02 et 1.2_02 vers le début de 2006, la nouvelle équipe de développement Sun/Oracle JSF a fait un excellent travail. Pas seulement avec bugfixing, mais aussi avec des améliorations de performances. À peu près à mi-chemin de la vie de Mojarra 1.2 (vers 2007-2009), Mojarra était le meilleur choix que MyFaces.

depuis JSF 2.0, qui est venu avec la nouvelle gestion partielle de l'épargne de l'état, MyFaces était performance sage le meilleur choix en raison d'un différent et beaucoup plus efficace méthode de calcul des deltas d'état, en particulier lorsqu'on utilise de grands arbres composants. Mojarra rattrapé seulement depuis la version 2.1.22 . Au cours de la chronologie 2.0/2.1, Mojarra n'a eu que des problèmes sérieux avec <ui:repeat> dans des compositions complexes/imbriquées (A. O. la sauvegarde de l'état cassé, le traitement seulement la dernière forme itérée, a échoué <f:ajax> , etc) et avec flash mise en œuvre de la portée (la mise en œuvre initiale n'était pas totalement point preuve.) MyFaces avait aussi sa propre série de bogues, mais ils étaient gérables.

en ce moment, avec JSF 2.2, on ne peut pas vraiment dire à l'avance lequel est le meilleur. Les bogues n'exposent souvent que plus tard et la robustesse ne peut être évaluée qu'après coup. Il suffit de choisir l'implémentation que vous "sentez" est la meilleure. Parcourez leurs rapports de publication ( MyFaces et Mojarra ) pour en savoir plus sur les questions précédemment questions ouvertes. Si vous rencontrez un bogue spécifique, essayez avec les deux implémentations d'exclure l'une et l'autre. Rapport si nécessaire pour maintenir la qualité globale des deux mises en œuvre élevée.


la page de téléchargement est aussi JSF Mojarra ?

leur page d'accueil a été déplacée plusieurs fois. Actuellement (sept. 2017) il est situé à https://javaserverfaces.github.io vous pouvez trouver les bibliothèques dans org.glassfish:javax.faces dans Maven Central aussi. Vous pouvez trouver le code source dans javaserverfaces/mojarra projet dans github . Vous pouvez trouver les instructions d'installation dans le README.md là-bas.


Voir aussi:

65
répondu BalusC 2017-09-21 07:35:33

la réponse vient de mon blog:

http://lu4242.blogspot.com/2011/06/10-reason-why-choose-myfaces-core-as.html http://lu4242.blogspot.com/2012/05/understandingjsf-2-and-wicket.html

mise à jour juillet 2013 : voir la série d'articles et la mise à jour pour 2013 à JSFCentral:

http://www.jsfcentral.com/articles/understanding_jsf_performance_3.html


à première vue, les deux implémentations JSF (MyFaces et Mojarra) font la même chose, car elles sont basées sur la même norme. Le fait que vous puissiez passer d'une implémentation à une autre est un fait de la qualité des spécifications standard de JSF.

mais en bas il y a beaucoup de raisons pour lesquelles MyFaces Core 2.x est mieux que Mojarra. Remarque je suis un committer de MyFaces projet, je vais donc vous donner ici juste mon point de vue:

  • de nombreux problèmes ont été résolus. Seulement en 2.0.x branche à partir de la version 2.0.0-alpha pour 2.0.7 il a été fermé à 835 questions. Cela donne une mesure" brute " du nombre de contributions et de commentaires fournis par la collectivité au fil du temps. Ce sont les nombres pour les questions fermées au cours du temps: 2.0.0-alpha: 274, 2.0.0-bêta: 58, 2.0.0-bêta-2: 41, 2.0.0-bêta-3: 39, 2.0.0: 51, 2.0.1: 148, 2.0.2: 77, 2.0.3: 63, 2.0.4: 23, 2.0.5: 27, 2.0.6: 29, 2.0.7: 5.

MISE À JOUR MAI 2012: 2.1.0: 47, 2.1.1: 6, 2.1.2: 84, 2.1.3: 9, 2.1.4: 74, 2.1.5: 7, 2.1.6: 35, 2.1.7: 52

  • la communauté sur le code: la communauté MyFaces compte avec beaucoup de gens avec des connaissances exceptionnelles sur JSF. Suscribe to user and dev mailing list sont la meilleure façon de savoir ce qui se passe, de recevoir des commentaires et de connaître d'autres les gens intéressés par JSF. Voir Listes De Diffusion MyFaces

  • Apache est bien connu pour prendre tout de Sun / Oracle et de le rendre meilleur. Dans ce cas, MyFaces Core a quelques optimisations fraîches par rapport à l'économie d'état partielle, les composants composites et bien plus encore!.

  • MyFaces de Base est OSGi sympathique. Il fournit quelques interfaces SPI pour traiter les configurations spéciales, quand vous avez besoin de plus contrôle sur classloading.

  • MyFaces Core a une meilleure compatibilité avec les facelets 1.1.x!. Juste jeu org.Apache.myfaces.RAFRAÎCH_TRANSIENT_BUILD_ON_PSS web config param to true, et un mode spécial sera activé. Non c: si tags ou c: forEach ou ui: include broken anymore!. mise à jour mai 2012 un algorithme amélioré a été fait à L'intérieur de MyFaces Core qui réduisent la taille de l'état, même dans les pièces où facelets est utilisé pour mettre à jour le arbre composant dynamiquement. Ce paramètre n'est plus nécessaire.

  • MyFaces a d'autres projets (Trinidad, Tobago, Tomahawk, ExtVal, CODI, Orchestre, PortletBridge RI, .... cela aide à garder le code mis au point, car tous ces projets testent contre le cœur de MyFaces, et s'il y a un bug, il est traité plus rapidement.

  • vous pouvez vérifier en utilisant svn et construire facilement n'importe quel projet MyFaces, parce que chacun d'eux maven basé et la plupart des IDEs fournit un soutien maven.

  • Mojarra at the current time (juin 2011) a quelques bogues liés à la sauvegarde d'état, que MyFaces n'a pas car sa mise en œuvre est complètement différente. En fait, L'algorithme de sauvegarde partielle D'état de MyFaces offre une meilleure compatibilité avec la sauvegarde d'état JSF 1.2 que Mojarra. Mais les gars de Mojarra y travaillent, mais ça leur prendra des mois, voire des années.

  • l'Innovation se produit sur MyFaces.

MISE À JOUR MAI 2012

voir cet article 10 raison pourquoi Choisir MyFaces Core comme implémentation JSF pour les applications web

Pour les gars qui veulent voir une comparaison des performances entre MyFaces, Mojarra et de Guichet look Compréhension JSF 2 et Portillon: Performance Comparaison

MISE À JOUR JUILLET 2013

la comparaison a été étendue pour inclure d'autres cadres comme MVC ressort, Tapestry, Grails 2 et Wicket. Voir l'article sur JSFCentral: mise à jour juillet 2013 sur JSFCentral

41
répondu lu4242 2013-07-08 15:33:22

je dirais que ça n'a pas d'importance.

j'ai récemment lancé un projet JSF 2.0 utilisant Myfaces et Primefaces. La semaine dernière, pour enquêter sur un bug, j'ai essayé de le lancer sur Mojarra. Tout ce qu'il a fallu, c'est échanger les pots et supprimer les entrées spécifiques à Myfaces dans le web.xml - et tout a fonctionné sans aucun problème. Il s'agit certes d'un prototype qui n'utilise pas toutes les fonctionnalités du JSF, mais j'ai été très impressionné par cette démonstration de compatibilité via le respect des normes.

Pourquoi ai-je besoin de plus de pots si j'utilise MyFaces?

  • myfaces-impl et myfaces-api Pots sont l'équivalent de la Mojarra du jsf-impl et jsf-api.
  • myfaces-bundle contient ces deux pour la commodité, vous avez besoin de ceci ou les deux autres, pas tous les trois.
  • commons-* bibliothèques qui contiennent des fonctionnalités de base pour traiter les collections, Java beans, etc. celle-ci devrait autrement être réimposée (probablement plus lente et avec plus de bugs). De nombreux autres projets les utilisent également.
7
répondu Michael Borgwardt 2010-12-25 18:55:49

Je m'en tiens généralement à la mise en œuvre de Mojarra à moins qu'il n'y ait une raison d'aller avec quelque chose d'autre. J'utilise Netbeans, il est donc plus facile d'utiliser la configuration "par défaut" du projet qui utilise Mojarra fonctionnant sous GlassFish.

la dernière fois que j'ai utilisé MyFaces, c'était parce que je pensais utiliser Tomahawk et il me semblait raisonnable d'utiliser l'implémentation JSF à partir de la même source. Cependant, je suis passé à Primefaces à la place et cela fonctionne très bien sous Mojarra.

en ce moment, il semble y avoir beaucoup de développement en cours avec les bibliothèques de composants JSF-2.0 en ligne. Vous devriez donc apprendre et pouvoir basculer entre les implémentations du JSF en cas de problème.

La raison MyFaces a plus de pots, c'est qu'il a plus de fonctionnalités que juste l'implémentation de référence.

4
répondu AlanObject 2010-12-25 18:01:13

quel IDE utilisez-vous? si vous utilisez eclipse alors il va télécharger jars tout en créant JSF 2.0 projet. Vérifier ce qui suit: http://www.icesoft.org/training/icefaces-self-serve-training.jsf

2
répondu 2012-05-03 14:50:47

il n'y a pas beaucoup de différence entre mojarra et MyFaces. Vous pouvez vérifier laquelle est la version la plus stable. Comme L'a dit Balusc, MyFaces est la version la plus stable(en 2005-2006). En outre, de nombreuses personnes ont commencé à utiliser le Mojarra après 2.0 parce qu'il est devenu stable par rapport à la myfaces

1
répondu Krishna 2012-05-09 05:19:58

j'avais de sérieux maux de tête avec mojarra (2.2.8), des comportements bizarres tels que les méthodes ajax qui ne fonctionnent qu'après la seconde interaction utilisateur en raison de mises à jour des formulaires précédents. Parti avec MyFaces.

0
répondu Mateus Viccari 2017-06-29 14:11:23