SDA: Write your own plugin tutorial

1 Likes
over 6 years ago

SDA offers a comprehensive range of plugins, which will continue to grow.

If however in the event that a plugin is not currently available for your current third party application, then it is possible to write your own. Whilst this may sound daunting the following tutorial should make the task a lot simpler.

The tutorial covers the following:

  • The anatomy of a plugin
  • Create a Hello World Plugin from scratch
  • Install the plugin
  • Test the plugin
  • Create a new version of the existing plugin
  • Utilise properties within the plugin
  • Test the new plugin version

Included reference sections

  • a section on Groovy
  • How to debug the code from an existing plugin

Watch out for the accompanying videos on KBTV: https://www.youtube.com/channel/UC_RAiRvNxdfJLVxSLX-ZgAQ

Check out the document at the following link:Plugin Tutorial PDF

Comment List
Anonymous
  • Have you looked in the deployserver.out log file for the same time period to review any errors there?  For most problems, I would first look in the deployserver.out log file before going through the tomcat logs.

     

     

  • Hello

    I am trying to load the HelloWorld plugin created according to the above (PDF)Tutorial .

    When I try to load it I receive a weird red-line on the LOAD dialog with "entry" as a caption.

    If I get out of the dialog nothing new shows up.

    My DA version is 6.3.1

    I have followed the instruction verbatim.

    I also notice an exception raised in catalina.out (see below)

    Do you have any idea as to why the plugin doesn't get loaded?

    Thank you very much.

    Francesco

     

    catalina.out exception:

    2021-01-17 19:34:39,384 [http-nio-8080-exec-9] - entry
    javax.servlet.ServletException: entry
    at com.urbancode.ds.web.filter.VersionedConfigurationFilter.doFilter(VersionedConfigurationFilter.java:91)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:179)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.PkiCertificateFilter.doFilter(PkiCertificateFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.HttpsFilter.doFilter(HttpsFilter.java:101)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.commons.web.filter.DisableSessionUrlFilter.doFilter(DisableSessionUrlFilter.java:135)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.SetupFilter.doFilter(SetupFilter.java:88)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.FilterWrapper.doFilter(FilterWrapper.java:52)
    at com.urbancode.ds.web.filter.SSOFilter.doFilter(SSOFilter.java:106)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.serena.ra.ds.filter.ResponseHeadersFilter.doFilter(ResponseHeadersFilter.java:39)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.serena.ra.ds.filter.ExceptionHandlerFilter.doFilter(ExceptionHandlerFilter.java:40)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: javax.servlet.ServletException: entry
    at com.urbancode.commons.web.controller.ControllerServlet.doPost(ControllerServlet.java:375)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.CharsetFilter.doFilter(CharsetFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.LoggingFilter.doFilter(LoggingFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.JSONCacheFilter.doFilter(JSONCacheFilter.java:46)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.urbancode.ds.web.filter.VersionedConfigurationFilter.doFilter(VersionedConfigurationFilter.java:74)
    ... 46 more

     

Related Discussions
Recommended