Julien Massiera created CONNECTORS-1712:
-------------------------------------------
Summary: Broken Velocity UI
Key: CONNECTORS-1712
URL: https://issues.apache.org/jira/browse/CONNECTORS-1712
Project: ManifoldCF
Issue Type: Bug
Components: API
Affects Versions: ManifoldCF 2.22
Reporter: Julien Massiera
In the mcf-crawler-ui, we cannot enter in edition mode for any connector
because there is a problem with Velocity.
We obtain the following error in the logs:
{code:java}
java.lang.NoSuchMethodError: 'void
org.apache.velocity.app.VelocityEngine.setExtendedProperties(org.apache.commons.collections.ExtendedProperties)'
at
org.apache.manifoldcf.core.i18n.Messages.createVelocityEngine(Messages.java:62)
~[mcf-core.jar:?]
at
org.apache.manifoldcf.ui.i18n.Messages.outputResourceWithVelocity(Messages.java:132)
~[mcf-ui-core.jar:?]
at
com.francelabs.datafari.connectors.share.Messages.outputResourceWithVelocity(Messages.java:111)
~[?:?]
at
com.francelabs.datafari.connectors.share.SharedDriveConnector.outputSpecificationHeader(SharedDriveConnector.java:2829)
~[?:?]
at org.apache.jsp.editjob_jsp._jspService(editjob_jsp.java:977)
~[mcf-crawler-ui.jar:?]
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
~[jasper.jar:9.0.56]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
~[servlet-api.jar:4.0.FR]
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
~[jasper.jar:9.0.56]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
~[jasper.jar:9.0.56]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
~[jasper.jar:9.0.56]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
~[servlet-api.jar:4.0.FR]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
~[catalina.jar:9.0.56]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[catalina.jar:9.0.56]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
~[tomcat-websocket.jar:9.0.56]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
~[catalina.jar:9.0.56]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[catalina.jar:9.0.56]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
[catalina.jar:9.0.56]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
[catalina.jar:9.0.56]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
[catalina.jar:9.0.56]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
[catalina.jar:9.0.56]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
[catalina.jar:9.0.56]
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
[catalina.jar:9.0.56]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
[catalina.jar:9.0.56]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
[catalina.jar:9.0.56]
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
[tomcat-coyote.jar:9.0.56]
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[tomcat-coyote.jar:9.0.56]
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
[tomcat-coyote.jar:9.0.56]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)
[tomcat-coyote.jar:9.0.56]
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[tomcat-coyote.jar:9.0.56]
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
[tomcat-util.jar:9.0.56]
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
[tomcat-util.jar:9.0.56]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[tomcat-util.jar:9.0.56]
at java.lang.Thread.run(Thread.java:829) [?:?] {code}
After some investigations it seems related to the updated velocity lib from
velocity-1.7 to velocity-engine-core-2.3
The first problem found is that the old velocity version libs and their
dependencies are still present in the MCF build for the MCF Agent AND the
mcf-crawler-ui.
The concerned libs are:
- commons-collections-3.2.2.jar
- commons-lang-2.6.jar
- velocity-1.7.jar
The second problem is that with the new velocity version, the way to set
properties to the engine has changed. So the code in the
org.apache.manifoldcf.core.i18n.Messages.createVelocityEngine method is no
longer valid and needs to be updated to fit with the new way which is:
{code:java}
VelocityEngine engine = new VelocityEngine();
Properties configuration = new Properties();
configuration.setProperty(VelocityEngine.RESOURCE_LOADER,"mcf");
....
engine.setProperties(configuration); {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)