Hi Stan,
it is not a problem to separate the code that depends on JSF into a
separate artifact. However, it is unclear to me how that changes the
situation in WF. How will the JSF dependency of the new artifact (let's
call it weld-jsf) be setup in WildFly? Could we not use the same
mechanism to setup the JSF dependency of the current weld-core artifact
in the first place? (instead of the hard-coded dependency on JSF API you
mentioned)?
Jozef
On 05/20/2013 06:32 PM, ssilvert(a)redhat.com wrote:
Hi Guys,
I'd like to get your thoughts on the possibility of removing JSF
dependencies from Weld Core and putting them in their own artifact. The
reason I want to do this is so that in WildFly we can more easily allow
Weld JSF classes to work with multiple JSF versions.
As it is now, Weld Core has a hard-coded dependency on the single JSF
version that ships with WildFly. So whether someone uses the Multi-JSF
feature or uses WAR_BUNDLES_JSF_IMPL, you can get Linkage errors when
trying to use Weld Core.
>From what I see, the JSF classes in Weld Core aren't really used by the
rest of Weld Core. Instead they are instantiated via the Weld
subsystem's inclusion of the ConversationAwareViewHandler in its
faces-config.xml.
The only part of Weld Core that "sort of" uses a JSF dependency is
BeanDeployment. This instantiates an instance of JsfApiAbstraction and
registers it the Weld ServiceRegistry. JsfApiAbstraction is only there
to determine the JSF spec version. But I haven't been able to find
anywhere it is actually used in the wild.
Specifically, I would like to move the org.jboss.weld.jsf package into
its own jar artifact.
org.jboss.weld.servlet.ConversationPropagationFilter would go in there
too. Weld Core would then list the new artifact as a dependency so as
not to break backward compatibility.
If you think it's a good idea I'll be glad to do the work to make it
happen. Please let me know.
Thanks,
Stan
_______________________________________________
weld-dev mailing list
weld-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev