[MGNLRSSAGG-189] Remove implicit dependency to STK Created: 20/Jan/15  Updated: 16/Apr/19  Resolved: 09/Feb/15

Status: Closed
Project: Magnolia RSS Aggregator Module
Component/s: rss_generator
Affects Version/s: None
Fix Version/s: 2.4

Type: Bug Priority: Neutral
Reporter: Philip Mundt Assignee: Philip Mundt
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to MGNLSTK-1463 Rename duplicate bootstrap file for f... Closed
relates to MGNLSTK-1495 Replace STK own pagination with one p... Closed
dependency
depends upon MAGNOLIA-6042 Add TemplateCategory and related Util... Closed
depends upon MTE-2 Add pager / pagination model Closed
is depended upon by MGNLCAT-147 Remove dependency to STK Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Release notes required:
Yes
Date of First Response:
Epic Link: Extract STK functionality

 Description   

This module doesn't have a pom- nor module-descriptor-dependency to STK. However it still uses a class from STK resulting in a ClassNotFoundException when STK is not installed.

The module also bootstraps content into STK without checking if the module is installed or not.

Suggested solution for 2.4
  • Move PageSyndicator class from STK to this module
    • Replace STKTemplatingFunctions with TemplateTypeFunctions (see MAGNOLIA-6042)
  • Conditionally bootstrap STK availability (+ IsInstallSamplesTask)
  • Change renderType of components to freemarker (currently is stk, but STK renderer might not be installed)
    • planetFeeds
    • feedStatistics
    • feedSyndication
    • feedSubscriptions
ClassNotFoundException

Occurs because /modules/rssaggregator/config/feedGenerators/templateContent references a class from STK info.magnolia.module.templatingkit.syndication.PageSyndicator.

2015-01-20 16:21:43,912 WARN  magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl: can't resolve class for node /modules/rssaggregator/config/feedGenerators/templateContent
java.lang.ClassNotFoundException: info.magnolia.module.templatingkit.syndication.PageSyndicator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:648)
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:516)
    at info.magnolia.module.groovy.support.classes.GroovyClassFactory.forName(GroovyClassFactory.java:89)
    at info.magnolia.jcr.node2bean.impl.Node2BeanTransformerImpl.resolveType(Node2BeanTransformerImpl.java:160)
    at info.magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl.toBean(Node2BeanProcessorImpl.java:117)
    at info.magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl.toMap(Node2BeanProcessorImpl.java:227)
    at info.magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl.toBean(Node2BeanProcessorImpl.java:132)
    at info.magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl.toMap(Node2BeanProcessorImpl.java:227)
    at info.magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl.setProperties(Node2BeanProcessorImpl.java:184)
    at info.magnolia.module.ModuleManagerImpl.populateModuleInstance(ModuleManagerImpl.java:460)
    at info.magnolia.module.ModuleManagerImpl.startModules(ModuleManagerImpl.java:341)
    at info.magnolia.module.ui.ModuleManagerWebUI$1.doExec(ModuleManagerWebUI.java:106)
    at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:421)
    at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:418)
    at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:392)
    at info.magnolia.module.ui.ModuleManagerWebUI.execute(ModuleManagerWebUI.java:102)
    at info.magnolia.cms.filters.InstallFilter.doFilter(InstallFilter.java:100)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
    at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
    at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
    at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
    at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Important note

These changes will break binary compatibility of some classes.



 Comments   
Comment by Philip Mundt [ 09/Feb/15 ]

New migration delta introduced. Add migration for:

  • feedGenerator for templateContent
  • planetFeeds component and the tabPagination
Comment by Philip Mundt [ 09/Feb/15 ]

See: https://jenkins.magnolia-cms.com/job/int_migration-tests_5.3-to-5.4.x-branch/Diff_Reports/config.modules.rssaggregator.html

Comment by Philip Mundt [ 09/Feb/15 ]

Commit: https://git.magnolia-cms.com/gitweb/?p=modules/rssaggregator.git;a=commitdiff;h=081fa8397ce2017ec0cfa36a43fc3aeb4c1ff5b0

Generated at Mon Feb 12 07:06:27 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.