You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by hu...@apache.org on 2002/08/14 19:52:57 UTC
cvs commit: jakarta-commons-sandbox/scaffold/STATUS STATUS-002.txt STATUS-001.txt
husted 2002/08/14 10:52:57
Added: scaffold/STATUS STATUS-002.txt STATUS-001.txt
Log:
[SCAFFOLD] New sandbox component
Revision Changes Path
1.1 jakarta-commons-sandbox/scaffold/STATUS/STATUS-002.txt
Index: STATUS-002.txt
===================================================================
SCAFFOLD STATUS
=======================================================================
[Ordering is LIFO. Last thing done for a day is the first item listed.]
// ------------------------------------------------------------ CHANGES
01-AUG-2002
-----------
+ resources/application.properties: Add stub file for messages in lang.TOKENS.
+ lang.Token: Add PROCESS_COMPLETE
+ struts.BaseAction.createHelper: Change to throw runtime exception if helper fails.
+ sql_article: Add "article.insert.welcome"
+ README.txt: Update to match current status.
31-JUL-2002
-----------
[port updates from 1.0]
+ text.ConvertUtils: Add isUpperOrNull.
+ Deprecate sql.CreateTable
+ sql.StatementUtil: Deprcate CreateTable in favor of AccessBase.executeUpdate.
+ sql.AccessBase: Add new utility with commonly-used methods for store, delete, restore, et al.
1_0 <-> 1_1
+ // imports in lucene,model,struts,util packages;
19-JUN-2002
-----------
+ struts.ProcessResult: Add check for null form-bean. Will pass null or map for profile bean, if any.
18-JUN-2002
-----------
+ lang.Tokens: Add terms for ERROR_CANCEL, ERROR_TOKEN.
+ stuts.BaseAction,ProcessAction: Remove cancel,token handling to ProcessAction
17-JUNE-2002
------------
+ struts/BaseAction: Add isStruts_1_0() method to expose/not expose MESSAGES.
13-JUN-2002
-----------
+ struts: add CheckAttributeAction and RemoveAttributeAction.
+ move deprecated struts classes in an "attic" subfolder.
+ move scaffold/struts package into its own folder.
12-JUN-2002
-----------
+ struts.RenderRss: Add simple action to render a Channel bean.
+ struts.BaseAction.getProperties: Return the default properties object.
+ http.ResourceServlet.loadProperties: Add saving the properties to application scope.
+ lucene.Engine: convert indexPath to WORM field. Add init() to set at startup.
+ sql.ConnectionAdaptor: does not seem to be calling getKey() when tested with Resin. Others OK.
11-JUN-2002
-----------
+ sql.ConnectionAdaptor, et seq: Refactor to use getDataSource method and to cache default datasource.
+ sql.ConnectionAdaptor,ServletAdaptor,PoolmanAdaptor: Test and document all three.
+ sql.ConnectionServlet: Add support for adaptor.key and ServletAdaptor.
+ sql.ServletAdaptor: Initial version to support datasources exposed through in servlet context.
+ sql.ConnectionServlet: Initial version to configure ConnectionAdaptor.
+ sql.StrutsAdaptor: Initial version to lookup Struts generic datasource. Needs testing.
+ sql.ConnectionAdaptor: Refactor so uses default JNDI lookup for DATA_SOURCE;
+ http.ResourceServlet: Refactor original design into initLogging, initDefault, initCustom.
10-JUNE-2002
------------
+ http.ResourceServlet: Initial version; base for application resource-loading servlet.
+ sql.StatementUtils: Update to call ConnectionAdaptor.
+ sql.PoolmanAdaptor: Initial version to test subclassing ConnectionAdaptor.
+ sql.ConnectionAdaptor: Refactor from ConnectionPool. Use singleton pattern to allow subclassing.
+ utils.ResourceUtils: Initial version to provide utility method for Property and Resource files.
+ .package-template.html: Add as sample for package overview documentation.
+ Update/confirm JavaDocs throughout.
07-JUN-2002
-----------
+ struts.ProcessAction.CheckData: Change to use mapping.getAttribute() if result name is null.
+ struts.ProcessAction.CheckData: Change to use Tokens.RESULT_KEY if result name is null.
+ utils.ProcessResultBase: Change class default name to null.
+ struts.ProcessAction: Revise * to handle single objects or those in a collection.
+ struts.ProcessAction: Pass SessionLocale from formBean to processBean.
+ utils.ProcessBean: Add Locale properties.
+ struts.FormBean: Add SessionLocale properties.
+ util.ProcessResultBase: Fix bug in isMessages().
+ struts.BaseAction, et seq, Rework error and message handling. Processes return
messages by default for display on SUCCESS page. Can dispatch if should be error.
06-JUN-2002
-----------
+ BaseForm.
+ BaseAction.saveMessages(): add call to action.saveErrors().
+ scaffold: - tweak documentation and coding.
+ Roll back to 1.0
+ struts: BaseForm, add perform() method to provide forward-compat with 1.1.
+ pages/rss: Add sample RSS pages.
+ struts: Add parseRss().
05-JUN-2002
-----------
+
+ struts.BaseForm,BaseMapForm: Add alternative import statements for validator.
+ model;struts;sql;util: Change import statements for 1.1
+ Rollback and re-up to 1.1.
04-JUN-2002
-----------
+ [...]
03-JUN-2002
-----------
+ sql.StatementUtils: Rename allocateKey() to createKey().
02-JUN-2002
-----------
+ sql.StatementUtils: Add getColumn(), allocateKey().
+ sql.StatementUtils, sql.ResultSetUtilities: Add getElement().
+ Engine.deleteTerm: Move getReader() inside synch block to correct operation.
+ http.Log rename as lang.Log. Add console(),consoleln() to wrap System.out calls.
+ ConvertUtils: Add Timestamp getTimestamp() - initialized to current system time.
31-MAY-2002
-----------
+ sql.ResultSetUtils: Add putEntry() to handle JDBC:Java type transfer.
+ Remove key properties from ModelBean,ModelBeanBase.
+ Add struts.MenuForm
+ Add http package for non-Struts web classes.
+ text.ConvertUtils: Add SHORT_ZERO, SHORT_ONE to seed default properties.
30-MAY-2002
-----------
+ rowSetUtils
+ resultSetUtils: Add getElement() getMap() getMaps();
+ statementUtils: executeUpdate, executeQuery
+ Engine: Add deleteTerm method.
+ Add lucene.Engine class from artimus. Need way to set path at runtime.
+ Rename http package to struts. Rename search package to lucene.
+ Conform imports so all Scaffolding classes are using 1.0 versions for now.
29-MAY-2002
-----------
+ BaseAction: Update CatchException to use new ChainedException.getMessage(sb) method.
+ ChainedException: Add getMessage(sb) method to return list of all chained messages.
+ Merge classes from Synthis/Adalon framework back into Scaffold.
// ..
21-Feb-2002
-----------
+ Add SuperServlet (1.0.2 compatible)
+ Add setLocale to SuperAction.
// ...
24-Jan-2002
-----------
+ Add base Action and base Form with enhanced functionality.
- - Need to review in context of latest ActionServlet before proposing for core Action package. Could/should extend ValidatorForm.
+ Remove obsolete TaskAction class.
+ Add ResetAction.java RemoveHelper.java Parameter.java ModelRelay.java
01-Jan-2002
-----------
+ Added source zip inside the scaffold main distributable
31-Dec-2001
-----------
+ Modified ModelHelper to extend BaseHelperAction
+ Added BaseHelperAction
+ ModelDetailHelper - update JavaDocs.
+ Added SetModelHelper - standard action to set ModelBean as session attribute.
+ Added RemoveModelHelper - standard action to remove session attribute.
+ Added FindForwardAction - Scan parameters for a matching forward name.
+ ModelResult, ModelResultBase - Change parameter names in signature.
23-Dec-2001
-----------
+ Modified build directory structure
+ Moved to latest versions of Struts, Lucene
+ Added dependency on Commons Beanutils jar
+ Corrected typo in LICENSE (replaced Tomcat by Scaffold)
+ Added manifest with version information in scaffold jar
09-Nov-2001
-----------
+ RequestSetUtil: Add coversion of DECIMAL to Double.
08-Nov-2001
-----------
+ http: Add ContinueAction.
+ http: Fix RelayAction. Change HelperAction to use ; for seperator. Will skip empty entries.
07-Nov-2001
-----------
+ Model: Add ModelAbstractException to use with unimplemented methods.
06-Nov-2001
-----------
+ ResultSetUtils: getCollection will now throw SQLException if either parameter null.
+ StatementUtils: Refactor getCollection to accept an array of replacement parameters.
+ http/MasterDetailHelper: Uses two helpers to provide master/detail layout.
+ http/HelperAction, ModelHelper: Refactor to accept multiple helpers and pass in array.
+ ConvertUtils: Add several methods for number and date handling.
05-Nov-2001
-----------
+ Rename ModelResultHelper as ModelHelper. Better design.
27-Oct-2001
-----------
+ sql/StatementUtils: move from Artimus. update for new connection parameter.
+ sql/ConnectionPool: update to accept resource name as parameter.
+ text/ConvertUtils: initial version.
+ http/RelayAction: initial version -- doesn't seem to work.
25-Oct-2001
-----------
+ text/Merge: initial version. adapt from Polls.
+ http/HttpClient,SocketUtil: move from Polls.
24-Oct-2001
-----------
+ QueryUtils,QueryBeanBase,QueryResultBase,LuceneUtils: refactor to use QME.
+ QueryMapException: initial version.
+ QueryResult: Add TOKEN constant.
+ query/*: Move messages from Bean to Result.
+ lang/Tokens: initial version.
+ build.xml: Add WAR to deployment target.
23-Oct-2001
-----------
+ Refactor ChainedException into .lang, and .util/Query* into .query package.
+ ChainedException: Add isCause and getCauseString methods.
21-Oct-2001
-----------
+ Remove ; replaced by Query* suite.
+ QueryUtils: initial version.
20-Oct-2001
-----------
+ Query*: Enhance to replace functionality of AccessBean suite.
19-Oct-2001
-----------
+ QueryException,QueryBean,QueryBeanBase,QueryResult,QueryResultBean: Initial version.
18-Oct-2001
-----------
+ AccessAction: intial version; Access class refactored to use HelperAction.
+ HelperAction: initial version.
13-Oct-2001
-----------
+ initial version of app, based on working package
1.1 jakarta-commons-sandbox/scaffold/STATUS/STATUS-001.txt
Index: STATUS-001.txt
===================================================================
SCAFFOLD STATUS
=======================================================================
[Ordering is LIFO. Last thing done for a day is the first item listed.]
// ------------------------------------------------------------ CHANGES
08-OCT-01
---------
+ AccessBean: refactor getMap(int) method.
+ AccessBean,AccessBeanList: Add first() method
+ client: refactor to call performCrud on ancestor.
+ ext.http.Access: add performCrud method.
27-SEP-01
---------
+ Access,AccessBean: General refactoring.
+ ArticleForm: Remove toMap method in favor of ancestor.
+ AccessBean: Conform to new DataBeanBase source.
+ DataBeanBase: Add default behavior for toMap using BeanUtil.describe
+ Convert MapAccess to DataBean, and refactor. Add getKeyInt,setKeyInt methods.
+ *: Review and revise Javadoc.
26-SEP-01
---------
+ AccessBeanMap: Remove unused class.
+ AccessBean,AccessBeanList: Remove methods not used in current version of application.
+ Access,Client: Refactor SaveConfirm method from ancestor Client class.
+ ArticleHelper: Move call to allocateKey from Access.crud.
+ ArticleHelper: Add loops around update,insert for multiple forms.
+ README.TXT: Update for Tomcat 4.0 production release.
+ ConnectionPool: Eliminate unnecessary statics
+ build.xml: Add Javadoc targete
+ com/*: Shorten package name to proweb
+ src/*: Move source under java, per new conventions.
+ WEB-INF/pages/*: Move pages to root; add stylesheet.
18-SEP-01
---------
+ ApplicationResources: Add missingHTML markup to error tags.
+ Engine: Update path for index (/var/lucene/articles)
+ poolman.xml
13-SEP-01
---------
+ LuceneUtils
10-SEP-01
---------
+ Menu.jsp: Add Create Index button for Lucene.
+ CreateIndex,Data,Statements,Commands: Add support for Lucene.
+ ConnectionPool: Add check for null connection.
+ README.TXT
09-SEP-01
---------
+ Render.java: intial version.
+ ArticleHelper,build.xml,strut.xml,: Add Lucene support.
+ ArticleForm, CreateTables, web.xml,
26-AUG-01
---------
+ ext.search.LucineUtils: initial version.
+ search.Engine: initial version.
+ Data: add selectArticle(target) method.
+ CreateIndex: initial version.
+ Add lucene.jar to lib
22-AUG-01
---------
+ Statements,Data,ArticleHelper: refactor.
+ ListForm: remove as redundant.
+ RequestUtils.getCollection: initial version.
20-AUG-01
---------
+ AccessBeanMap - initial version
+ Change ListAccessBean to AccessBeanList
+ Refactor ResultList as ResultCollection
+ Change package name to org.apache.struts.artimus
03-AUG-01
---------
+ ArticleHelper,Menu: Add support for title, author, content search.
+ ArticleList: initial version.
+ Commands: add SQL statments for title,author search.
+ Statements.getResultsLike: initial version.
02-AUG-01
---------
+ TASK: Test revised pages and control flow. All OK, but text search (need to recreate tables).
+ Access.setDispatch: initial version to maintain DispatchBean property.
+ Menu.jsp: initial version (should have done this first!).
+ config: Refactor to implement only what's needed for "Artimus-1".
+ ext: General refactoring and clean-up.
01-AUG-01
---------
+ : Refactor to use DispatchBean interface.
+ TASK: Refactor classes to use "dispatch" rather than "task"
+ Data,Statement: Add ResultList version of Select, to return a List.
+ Data,Statement: Add all String signatures for insert,update.
+ ListAccessBean: initial version.
+ TASK: Refactor DataAccess/AccessBean/Access/Helper classes to implement a List rather than a RowSet. Remove dependancies on Iterators for now, since this was causing ConcurrentModificationException's.
+ DispatchBean,ResultList: intial versions.
31-JUL-01
---------
+ TASK: Test input/output.
+ pages/List,Article: Enable bean, logic, and dbTags libs.
+ struts-config: update to use Client for Entry mappings.
+ Helper,Data,Commands: Add CRUD for Entry form.
+ Form: Update to declare AccessMap interface (methods already implemented).
+ Helper,Access,AccessMap: Initial version
+ CreateTables: Revise to call Data.object methods. Remove obsolete dependancies on SQL packages.
+ Data: initial version. Create high-level wrappers around calls to Statement.
+ CreateTables: Refactor DAO code into sql/Statements class.
+ CreateTables: Add insert of starter keys for other tables. Drop, create, test.
+ CreateTables: Change text to blob and varchar to char, for better compatability.
We will be using Lucene for full-text search, and MySQL will change char to varchar anyway.
+ TASK: test CreateTables.
+ mysql: create database artimus.
30-JUL-01
---------
+ struts-config: Add mapping for CreateTables.
+ CreateTables,Commands,ConnectionPool,RowSets,Statements: initial versions.
+ struts-config: update mappings for Form, including welcome and done.
+ pages/Article,Entry,List: update for Article properties, including field types and lengths. Add data-entry comments from spec.
+ http/Form: initial version.
+ Update "spec" (chapter 17) to reflect development changes.
29-JUL-01
---------
+ Extended headbanging session with Validator library. The client-side scripts are present but broken. Server-side validation is fine. Posted query to Struts list. Will proceed and return to this later
+ Draft Article, List, and Entry skeletons.
+ Test building javadoc (not working?)
+ Setup build.xml. Create src/build folder. Build skeleton classes.
+ Setup skeleton pages, forwards, mappings, Form, and Action.
+ struts-config.xml: Config for MySql, and ready alternate configs for hSQL and postgres.
+ web.xml: Add default config for validator, validator tags, dbTags.
+ lib: Place validator.jar, dbTags.jar, and hsqldb.jar under lib.
+ WEB-INF: Move *.tld's under tablibs; update web.xml
+ WEB-INF: Create src,doc,taglibs, and pages folders.
+ ROOT: Create artimus from Struts blank.
28-JUL-01
---------
+ doc: Second draft of "spec" as Chapter 17 text.
// -------------------------------------------------------------- NOTES
[]
dc:
title
creator
subject
description
contributor
date
publisher
type
format
identifier (url)
source
language
relation
coverage
rights
ocs:
image 88x31
format
contentType
updatePeriod
updateFrequency
updateBasis
ical:
COMPLETED
DTEND
DUE
DTSTART
DURATION
DTSTAMP
LAST-MODIFIED
RECUR
VEVENT
VTODO
VJOURNAL
eventDateStart
eventDateEnd
alarmDateStart
alarmDataEnd
[]
// Using Skeletons files with Struts.
Integrating Artimus in your own application (artimus.jar)
Internationalizing Artimus
[]
copy skel/View.jsp as ../Article.jsp
comment include for bean and logic tags at the top, and browser will ignore them.
insert {placeholders} next to bean:write tages where runtime content will go. update the property setting so these will be ready-to-go later.
remove right and left columns, so this is a one-column table.
add filter="false" to bean:write tag for article. this will output HTML as is, so we can use it in our article.
remove form buttons; body onload
change paths for local forwards on /Skel mapping to "/WEB-INF/pages/Article.jsp"
load and test.
reloading mappings.
[]
copy skel/Result.jsp as ../List.jsp
link date,topic,article as plain forwards
add forwards,actions to mappings
[]
copy skel/Form.jsp as ../Entry.jsp
change labels, but leave property1..0
adding fowards, actions to mappings.
[]
package naming - callout box
error handlng - log
[]
Thanks, Hans. We're on the same page now ;-)
I imagine you've also looked at the Oracle Portlet?
http://otn.oracle.com/products/iportal/htdocs/3_0_8_qt/qt_home.htm
http://otn.oracle.com/products/iportal/htdocs/3_0_8_qt/qt_frm.htm
http://otn.oracle.com/products/iportal/htdocs/kci/kcihome.html
In this context, I was thinking of creating backend "Providers" for things like RSS, and exposing this resource using Tiles as the actual "Portlet" part.
==
Provides a communication link between the portal services and portlets.
Implements session startup and provider login.
Acts as a proxy to all portlet calls.
Manages the portlet repository list.
==
I think what I wanted to look at first was an API for what Oracle calls "Providers".
http://portalstudio.oracle.com/servlet/page?_pageid=475&_dad=ops&_schema=OPSTUDIO&_mode=3
The idea being that a Provider could be plugged into an Action as a helper class, and wrap up what's needed into a bean to be displayed in a Tile.
The Providers could be setup as application resources, the way the Struts ActionMappings are setup, and the way the ValidatorForm configurations and Tiles definitions are setup.
At this point, I would look to container-managed security for the users, extending the idea of a database or JDBCRealm to provide single logon for the Providers, and as the basis for a user profile object to store customization options for the view.
At this point, some questions occur:
Does this intersect with the workflow API proposed to the commons and struts-dev last week? What's the difference between a portlet and a persistant workflow?
Are Jakarta portlets to be servlets, the way JSPs are servlets? If not, should they be?
Or, from a patterns perspective, are portlets just some kind of helper object?
Could some kind of porlet be packaged as a set of ActionMappings, Actions, JSPs, and associated classes, and plunked into the middle of a Struts application?
Oracle Portlet Provider -> Struts Action
What essential services does a portlet API need to provide?
* Discovery
* Authorization
* Profiles (user customization, skins)
* Presentation fragments (scrape)
* Resource configuration, application and user (profiles?)
Could an abstract PortletProfile object (or interface) be used to manage
My initial feeling is that, in a Java MVC environment, a Portlet should be a specialized controller servlet that exposes services to the application's controller servlet through a specific API. The Portlet would expose itself through the ServletContext, where it can be called upon by other servlets in the application. We should be able to load a portlet servlet into any arbitrary application, just as we can load a JSP servlet into any arbitrary application, without modifying the container.
[]
select donor,fullName,street,postOffice,postalCode,item,name,qtyReceived,market from gavel_donor D,gavel_item I where D.donor=I.donor order by donor;
SELECT I.donor,fullName,item,name FROM gavel_item I LEFT OUTER JOIN gavel_donor D ON (I.donor=D.donor) ORDER BY fullName,donor;
[]
/*
public void setNext(Object source) {
// java.lang.IllegalAccessException
// pop: IllegalAccessException, InvocationTargetException
// des: + NoSuchMethodException
BeanUtils.populate(
this.rows.next(),
BeanUtils.describe(source)
);
}
public void getNext(Object target) {
BeanUtils.populate(
target,
BeanUtils.describe(this.rows.next())
);
}
public Map nextToMap() {
return BeanUtils.describe(this.rows.next());
}
public static void populateBean(Object target, Object source) {
BeanUtils.populate(
target,
BeanUtils.describe(source)
);
}
*/
-----------------------------------------------------------------------
###
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>