easy plugin prototyping - tools for developers
----------------------------------------------
Key: FELIX-2185
URL: https://issues.apache.org/jira/browse/FELIX-2185
Project: Felix
Issue Type: New Feature
Components: Web Console
Reporter: Valentin Valchev
Attachments: build.xml
With the current web console, after being updated to JQuery + JQuery UI the
plugin structure becomes quite clear and simple:
1. There is a Servlet (AbstractWebConsolePlugin), which main role is to
generate the required data for the plugin, typically a JSON and execute actions.
2. Although the actual rendering is in the Servlet, it use a template file,
that contains the HTML markup
3. The main logic, that makes the interface interactive is JavaScript code,
that uses the JSON from the Servlet and modifies the HTML markup.
This separation makes it quite easy to develop applications in a static way
replacing the upper components with:
1. a sample JSON data, statically generated
2. a HTML file that is equals to : header + template + footer
3. almost the same JavaScript code, that instead of using AJAX request to
obtain the data, uses the sample data in 1.
I must say, that personally have developer several plugins exactly using static
HTML file.
Although easy it consumes time to create that empty HTML file and start
developing the plugin. It would be much easier, if we have an option to
automatically generate a zip file - containing the HTML updated with the latest
header footer, the JavaScript libraries, included by default (e.g. res/lib/)
folder, common images and webconsole.css file.
This task can be easily achieved with modern build tools. Because my minimal
knowledge of the Maven build system, I've implemented that task in a simple ANT
build file, which must be placed in the webconsole root folder. When ant is
invoked with that file, it will generate a file named 'static-test.zip' that
contains a template, which is ready for modification and includes up-to-date
sources.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.