Hi Frank, On Fri, Aug 12, 2011 at 4:24 AM, Asseg, Frank <frank.as...@fiz-karlsruhe.de> wrote: > Hola Chris > > On 08/11/11 18:34, Chris Wilper wrote: >>> xalan.jar is in the dependency list of fedora-webapp via >>> org.apache.xmlgraphics:fop:jar:0.95-1:compile >>> and after compiling the webapp i can locate the jar in >>> target/WEB-INF/lib but it's not in the fedora.war generated by the >>> installer. >>> Is this intentional or should we file a bug? >> >> What do you mean by fedora-webapp? Are you talking about the parent >> maven module called fcrepo-webapp, or the child of that, called >> fcrepo-webapp-fedora (the one that's reponsible for putting together >> the war). > when I do "mvn:dependency:tree" in fedora-webapp-fop i find the xalan > dependency which gets imported via xmlgraphics. But there's no other > xalan dependency in any of the fedora-webapp modules. > So when the escidoc guys start up their JBoss they get the following > exception when the xalan.jar is not in the classpath: > > Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed > to create an XPathFactory for the default object model: > http://java.sun.com/jaxp/xpath/dom with the > XPathFactoryConfigurationException: > javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory > implementation found for the object model: > http://java.sun.com/jaxp/xpath/dom > at javax.xml.xpath.XPathFactory.newInstance(Unknown Source) > [xml-apis-1.3.04.jar/:1.3.04] > at > org.fcrepo.server.validation.ecm.EcmValidator.<clinit>(EcmValidator.java:26) > [fcrepo-server-3.4.2.jar/:na]
Aha...so EcmValidator, which is part of the main Fedora webapp, does need an XPathFactory implementation to be in the classpath. Xalan has one, but it's only included as a library for the fcrepo-fop webapp. But I'm pretty sure Sun Java also comes with a default implementation, which I believe is what Asger depended on when integrating ECM with Fedora. I'm not sure why this would be failing, then. What version (and vendor) of Java are you using in this environment? >>> An ActiveMQ and JAX-RS implementation is included in the fedora war. >>> This is of course fine when fedora gets installed in a Servlet Container >>> like tomcat or jetty but when deploying on an Application Server like >>> JBoss or Glassfish who pack their own implementations of JMS and JAX-RS >>> the different versions clash. >>> Is there some option in the installer we can tweak to have the fedora >>> war exclude those implementations? >> >> Yuck. Would excluding them from the war file really be enough? > From what i can tell this would help the escidoc guys a lot, since they > repeatedly run into conflicts with JBoss. >> I know >> we've gone through a few efforts in the past to try to get Fedora >> working properly in app servers, but it seems like a very difficult >> proposition to get *any* sufficiently sophisticated webapp to deploy >> in multiple kinds of app server successfully, because they seem to >> want to force you to use their stack of libraries. > Hmm would it be possible to have the installer look for a property > in the install.properties files that holds a list of jars to exclude > from the final war? > Like: > exclude.libraries=activeMQ.jar,jersey.jar Having the installer change the war file runs counter to the current goal of distributing exactly one WAR file per release, without the need for an installer: https://jira.duraspace.org/browse/FCREPO-534 If we were to go down the path of supporting customizing the war file for different application server platforms, we would clearly need to reconsider that goal. So this provokes some higher-level questions: How do we feel about supporting alternative deployments of Fedora? Is it something we should do? And should we go so far as to add JBoss or other specific app server testing to our release cycle? I think we'd need some serious help with testing specific app servers if we were to go that far. As for myself, I don't have experience with JBoss or other app servers in production deployments. I know their stated value propositions, but I don't really appreciate first-hand the value they provide over simpler Tomcat or Jetty-based deployments. There's a complexity cost to supporting multiple kinds of deployments for any product. I want to be sure that if we go that way, we have a good understanding of the value we're getting for the extra effort and time. It's telling that in 2010, Atlassian discontinued support for JBoss and other app servers[1] for customers of their flagship products (JIRA and Confluence). Here's how they explained their decision: "We are reducing our application server platform support to reduce the amount of testing time and help us speed up our ability to deliver market-driven features. We are committed to helping our customers understand this decision and assist them in migrating to Tomcat, our supported application server." So supporting these app servers was too much of a money and time sink for them to justify the value. Granted, this is just one example of one company's decision. But it's a smart company with a large full-time technical staff. So for us to go in a different direction, I think we ought to have a good, shared understanding of the tradeoffs. - Chris [1] http://confluence.atlassian.com/display/JIRA/End+of+Support+Announcements+for+JIRA#EndofSupportAnnouncementsforJIRA-DeprecatedApplicationServersforJIRA%2827January2010%29 http://confluence.atlassian.com/display/DOC/End+of+Support+Announcements+for+Confluence#EndofSupportAnnouncementsforConfluence-DeprecatedApplicationServersforConfluence%2827January2010%29 ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ Fedora-commons-developers mailing list Fedora-commons-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers