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
Parents
  • 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

     

Comment
  • 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

     

Children
No Data
Related Discussions
Recommended