So I have been doing some "out of the box" thinking lately about how we
can better/faster have cross project Administration GUIs within
Jetspeed/Cocoon/JServ/Tomcat etc.
It has started to appear to me that many Java Apache project (that is
Apache projects that use the Java programming language) are developing
their own Admin consoles (Turbine/Jetspeed/Cocoon/Tomcat). Currently
each takes a certain amount of development time and is a waste of
resources.
TODO: look at other admin tools
- Assumptions:
- Administration consoles are presentation mechanisms for data as
well
as input prompts for new data sets.
- Security is a concern but should have the ability to be reduced
when
necessary (debugging, etc). Localhost restriction is important
- should support multiple data types:
- Value (single data piece with no name)
- Property ( name / value pair)
- Input ( name / value pair that can be edited by the user)
- both Property and Input can be multivalued so you can have a
2D presentation.
- Requirements:
- Doesn't have any bulky components that need a large amount of
configuration (Cocoon/Jetspeed)
- Provides a snap-in infrastructure for objects that perform
administration
tasks.
- JDK 1.1 and 1.2 compatible
- JSDK 2.0 and higher Servlet engine
- Servlet based, targets HTTP based projects only
- doesn't require any specific page technology
(XSP/JSP/Webmacro/etc)
- doesn't require any technology specific that isn't compatible with
all
Apache projects (doesn't use Turbine Screens, Jetspeed Portlets,
Cocoon
Producers, etc)
- doesn't require developers to build a UI in
HTML/Webmacro/Cocoon/Portlets/etc
- still allows developers to provide a custom UI via the getForm()
method. Not
recommended development though.
Most of the code is done within Jetspeed.
The Servlet is configured with a properties file. Here is a basic
configuration:
---- Admin.properties -----
admin.name=Turbine configuration
admin.description=Configuration console for Turbine
admin.block=org.apache.turbine.admin.Users
admin.block=org.apache.turbine.admin.TurbineResources
#properties can be provided to the blocks via a static method
admin.property.turbineresources=/tmp/TurbineResources.properties
---- AdminBlock.java ----
public interface AdminBlock {
public String getName();
public String getDescription();
public void service( Input input, Form form );
public void init();
public String getName();
public String getDescription();
public Value[] getValues();
public Property[] getProperties();
public Input[] getInput();
public ConcreteElement getForm();
}
----
So thoughts? From an implementation standpoint this should allow
Jetspeed users to administrate both Turbine *and* Jetspeed within one
UI.
If anyone has any design ideas now is the time to speak up :)
--
Kevin A Burton ([EMAIL PROTECTED])
http://relativity.yi.org
Message to SUN: "Please Open Source Java!"
"For evil to win is for good men to do nothing."
Open Source -> Join the conspiracy!
------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]