Re: 1.0 Release 0.5 Stability?
It is recommended that you develop against the nightly builds, one of which willultimately be deemed the 1.0 release. I believe that real bottleneck now is updating the User Guide to reflect the changes mentioned in the release notes. I'm actively developing with Struts, and it's my opinion that the current builds are production quality. If you have been working with the 0.5 milestone, I would recommend comming current now (and getting it over with). Perthe project lead: http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01013.html "I would really suggest working off the most recent nightly distributions, rather than 0.5. I currently believe that all the changes that might break user code (like switching ActionForm to be a class) have already been completed -- remaining things added to 1.0 *should not* break user code." *** REPLY SEPARATOR ***On 1/4/2001 at 9:09 AM Torben Norling wrote: Hi everyone! Does anyone know the timeframe on the 1.0 release of Struts?? We don't know if we should aim for 1.0 or stay with the 0.5 milestonebuild for our upcomming release... Does anyone know how "stable" the 0.5 release is compared to the nightly builds... Thanks // Torben Norling - Mind AB
Re: Business Logic Beanies
On 1/4/2001 at 8:00 AM Michael Gerdau wrote: The current approach is to have them hardwired in a helperclass which does provide these ... What I think one should have is a generic (XML ?) file that holds all these parameters very much like a resource bundle. How about a helper bean with properties that can be specified in the struts-config.xml? Something like what Craig mentioned here: form-bean name="SearchForm" type="com.mycompany.mypackage.SearchFormBean" set-property property="resource" value="...path to resource..."/ /form-bean If Martin Cooper gets the Digester running standalone, you should be able to write a utility that could plug into another Java application and read in the same helper beans! -- Ted Husted, Husted dot Com, Fairport NY USA. -- Custom Software ~ Technical Services. -- Tel 716 425-0252; Fax 716 223-2506. -- http://www.husted.com/
action.xml and struts-config.xml
I'm using struts last build with Tomcat. A newbie question. I'm looking at the different struts examples coming with the distribution and I'm trying to figure out why action.xml is sometimes used and why it is sometimes not. For instance, in the struts-example application, action.xml and struts-config.xml are used and it seems that struts-config.xml include quite the same content (action mappings) than action.xml. Could someone explain that and tell me what is recommended? Can someone tell me the purpose of each file? I see also a difference of syntax between the 2 files, is there any documentation about that? Thanks in advance. -alain
Re: action.xml and struts-config.xml
struts-config.xml is the successor to action.xml. action.xml is deprecated, and won't be supported past the 1.0 release. To use the new format, the ActionServlet validate property should be set to true. struts-config.xml is basically a superset of action.xml, so where you see that mentioned in the 0.5 User Guide, you can substitute struts-config.xml. Right now, the best documentation for struts-config.xml is the dtd http://localhost:8080/struts-documentation/dtds/struts-config_1_0.dtd You will see that it is well commented. Craig is looking for help with creating more documentation for the 1.0 package. I will try as soon as I can, but of course other volunteers are also encouraged to jump in. See also http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01475.html http://www.mail-archive.com/struts-user@jakarta.apache.org/msg00321.html -- Ted Husted, Husted dot Com, Fairport NY USA. -- Custom Software ~ Technical Services. -- Tel 716 425-0252; Fax 716 223-2506. -- http://www.husted.com/
New formatted output tag
Hi all, Here is the latest incarnation of my formatted output tag and supporting classes. Source code, javadocs and tld files are included. BTW, Ive started packaging everything I consider as an extension to Struts under the same package names, but starting with org.apache2.xx. Comments anybody? Regards Ned From the docs: A custom tag (bean2:writeformatted) that allows formatted output from beans. A lot of this code has been appropriated from bean:write and bean:message, and the usage reflects this. Tag properties scope, name, filter property work just like bean:write and locale bundle work just like bean:message. There are two new tag properties, nullkey and formatkey. Both of these refer to strings in the message resource table. WriteFormatted will work in this way: · If the property value is null and nullkey is specified, then this is lookup up into the resources and placed in the output stream. · If the property value is a string, then this is used as a lookup into the resources and placed in the output stream. · If the property value is a primitive (int, double, etc) or one of the objects based on these types, then value is formatted for output using a NumberFormat object, with the format string either being looked up from the resources by the formatkey property, or if this property is not specified, with the default NumberFormat for this locale. (All NumberFormat's are cached inside the FormatInfo object). · If the property value implements LocaleFormatted then a FormatInfo object is created and passed to the LocaleFormatted.toString(FormatInfo) method and the object can decide how to render itself. The formatkey property is passed over in the FormatInfo object, but it is up the property value object whether it pays any attention to it, The mechanism for dealing with objects that are not strings or which doesn't implement LocaleFormatted is handled by the function getStringForObject. This may be overridden in derived classes to provide conversion support for legacy or 3rd party objects. _ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. writeformatted.zip
RE: Unsuscribe
Unsuscribe Unsubscribe -Original Message-From: Prakhar Bhatnagar [mailto:[EMAIL PROTECTED]]Sent: Wednesday, January 03, 2001 8:29 PMTo: [EMAIL PROTECTED]Subject: Unsuscribe Unsuscribe
Can I use a Map.Entry as a bean?
hello, sorry to post this similar message again, but i'm really stumped... i've run into a problem however trying to use the iterate tag with a TreeMap and the write tag... here's a snippet of my code: logic:iterate name="subjects" id="subjectEntry" scope="request" type="java.util.Map.Entry" // subjects is a TreeMap in the request object... no problem there // it's my understanding that when the iterate tag is used with a map, the // iterator is on the Set of Map.Entries returned by Map.entitySet(), // therefore the object exposed as subjectEntry should be a java.util.Map.Entry bean:write name="subjectEntry" property="value" scope="page" / // this is where i get an IllegalAccessException attempting to access the //property value of subjectEntry, even though there is a getValue() method in the //api... /logic:iterate just for fun, i replaced the write tag above with the following scriptlet which i believe is logically equivalent: %= ((java.util.Map.Entry)pageContext.getAttribute("subjectEntry)).getValue() % and that works! of course, i could simply use this scriptlet and my problem would be solved, but i'd like to use only taglibs if possible and it seems to me that the bean:write tag should do the same thing... will bean:write only work on "bean-like" objects that are public? in this case the object implementing the Map.Entry interface is an inner class in TreeMap. is that causing the problem? what am i missing? thanks for any help! cheerio, chris | chris wilson || web dev ||| [EMAIL PROTECTED] || | www.wondergeek.com | |
validate param in web.xml
Title: validate param in web.xml Is there some reason for the name validate in the web.xml file to indicate using the new format vs. the old? Is there more to it than that, because I can't grasp how the term validate relates to deciding which version/DTD of the configuration file to use. Thanks - Mike Campbell email: [EMAIL PROTECTED] S1 Corporation voice: 678-421-4641 Software Engineer fax: 678-421-4865 RD Department web: www.s1.com -
RE: Can I use a Map.Entry as a bean?
yes, i've included both taglib defs... in fact, the tags are working great. it's only the write tag that's having a problem, and only when i try to get a property on a Map.Entry bean:write name="subjectEntry" property="value" scope="page" / // this fails with an IllegalAccessException... ((java.util.Map.Entry)pageContext.getAttribute("subjectEntry)).getValue() // this works! if i use my own bean in the write tag, everything is dandy. it's just the dang Map.Entry! | chris wilson || web dev ||| [EMAIL PROTECTED] || | www.wondergeek.com | | -Original Message- From: Ted Husted [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 04, 2001 10:11 AM To: Struts List Subject: Re: Can I use a Map.Entry as a bean? So, you've included the Struts bean tag library along with logic, yes? %@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" % %@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" % You can get some weird and misleading error messages if you omit a taglibs you're using. The inner class shouldn't cause a problem, since the iterate tag is designed for that (an attribute or property of an attribute). For more troubleshooting, did you try setting the inner class as a standalone page attribute, to see if that works too? *** REPLY SEPARATOR *** On 1/4/2001 at 9:17 AM Chris Wilson wrote: hello, sorry to post this similar message again, but i'm really stumped... i've run into a problem however trying to use the iterate tag with a TreeMap and the write tag... here's a snippet of my code: logic:iterate name="subjects" id="subjectEntry" scope="request" type="java.util.Map.Entry" // subjects is a TreeMap in the request object... no problem there // it's my understanding that when the iterate tag is used with a map, the // iterator is on the Set of Map.Entries returned by Map.entitySet(), // therefore the object exposed as subjectEntry should be a java.util.Map.Entry bean:write name="subjectEntry" property="value" scope="page" / // this is where i get an IllegalAccessException attempting to access the //property value of subjectEntry, even though there is a getValue() method in the //api... /logic:iterate just for fun, i replaced the write tag above with the following scriptlet which i believe is logically equivalent: %= ((java.util.Map.Entry)pageContext.getAttribute("subjectEntry)).getValue( ) % and that works! of course, i could simply use this scriptlet and my problem would be solved, but i'd like to use only taglibs if possible and it seems to me that the bean:write tag should do the same thing... will bean:write only work on "bean-like" objects that are public? in this case the object implementing the Map.Entry interface is an inner class in TreeMap. is that causing the problem? what am i missing? thanks for any help! cheerio, chris | chris wilson || web dev ||| [EMAIL PROTECTED] || | www.wondergeek.com | |
New version confusion
I downloaded the nightly build of 01/03/2001 and I'm now having a problem with some of my JSP pages. Previously I was using a nightly build from 12/15/2000. For example, I'm now getting the message: Since tag handler class org.apache.struts.taglib.form.LinkTag does not implement BodyTag, it can't return BodyTag.EVAL_BODY_TAG I'm assuming that I've either not updated all the various bits correctly, or there has been a change in one or more of the tags that I need to account for. Can anyone offer any help? Thanks.
Re: New version confusion
At 05:34 PM 1/4/2001 +0100, you wrote: Since tag handler class org.apache.struts.taglib.form.LinkTag does not implement BodyTag, it can't return BodyTag.EVAL_BODY_TAG I'm assuming that I've either not updated all the various bits correctly, or there has been a change in one or more of the tags that I need to account for. Can anyone offer any help? Remove all your working dirs of tomcat (or whatever you use) the JSP files need to be generated again. That solved at my place the same problem. johan Thanks. That did the trick. James W. Howe mailto:[EMAIL PROTECTED] Allen Creek Software, Inc. pgpkey: http://ic.net/~jwh/pgpkey.html Ann Arbor, MI 48103
RE: action.xml and struts-config.xml
From the Struts trail map at http://developer.bluestone.com/scripts/SaISAPI.dll/StrutsTrailMap.class/stru ts-trailmap/Trail4.htm, there is a Note which answers your question: Note: It should be noted that in earlier releases of Struts struts-config.xml was referred to as action.xml. These files are interchangeable. However, in the Struts 1.0 release you should use struts-config.xml to ensure future support. -Brian -Original Message- From: Alain Hubert To: '[EMAIL PROTECTED]' Sent: 1/4/01 6:41 AM Subject: action.xml and struts-config.xml I'm using struts last build with Tomcat. A newbie question. I'm looking at the different struts examples coming with the distribution and I'm trying to figure out why action.xml is sometimes used and why it is sometimes not. For instance, in the struts-example application, action.xml and struts-config.xml are used and it seems that struts-config.xml include quite the same content (action mappings) than action.xml. Could someone explain that and tell me what is recommended? Can someone tell me the purpose of each file? I see also a difference of syntax between the 2 files, is there any documentation about that? Thanks in advance. -alain
Re: Problem with Digester used standalone
Martin Cooper wrote: Well, I finally got the Digester to work outside a servlet, but I'm not sure I would call the result "standalone". I never quite figured out where the earlier NullPointerException was coming from, but somewhere along the line it went away. Part of the solution seemed to be not using struts.jar, but using the Struts source code directly. What I did was to gradually clone enough of the Struts source tree to build my application. (That is, I kept copying files until it all compiled!) That seemed not to require too much until I had to include BeanUtils, at which point a whole slew of dependencies added themselves in. By the time I was done, I needed more than 30 Struts source files, and I had to have the JSDK and JDBC 2.0 classes in my classpath. Seems a bit excessive for an XML digester... When you say "JSDK" classes, I hope you mean the "servlet.jar" file that contains the current version of the servlet API classes :-). Unfortunately, that isn't the end of the story, though. Once I ran the resulting application, I got a NoClassDefFoundError. Once I tracked that one down, I discovered that I actually needed to have the JSDK in my classpath to *run* Digester code. This makes no sense to me, but unfortunately it seems to be the case. Now, I know the Digester is really intended for use with Struts web applications (parsing config files, etc), but it just seems like such an easy-to-use way of handling simple XML files that it would be nice if it was easy to use standalone. Is this something other people might use? Would it be worth spending some time (perhaps mine) to isolate the Digester from the rest of Struts? The guilty party is undoubtedly BeanUtils.populate() -- one of the variants here takes an HttpServletRequest as an argument, so it requires the servlet API classes. I will look at the code dependencies of Digester, and can maybe use PropertyUtils directly instead -- but is having struts.jar + servlet.jar available on your classpath (plus an XML parser of course) *really* too much to ask? -- Martin Cooper Tumbleweed Communications Craig McClanahan
Re: validate param in web.xml
Mike Campbell wrote: Is there some reason for the name "validate" in the web.xml file to indicate using the "new" format vs. the old? Is there more to it than that, because I can't grasp how the term "validate" relates to deciding which version/DTD of the configuration file to use. It was probably not a particularly enlightened choice of variable name :-) The motivation is that a validating XML parse is performed on the new struts-config.xml file, while a non-validating parse is done on the old format (because there was no DTD for it). Oh well, we only need to deal with this for 1.0 -- in 1.1 we can clean up all the cruft from pre-1.0 days. Thanks - Mike Campbell email: [EMAIL PROTECTED] Craig
User Profile/Password Storage Concerns
Hi, In the Struts example, the user details *and* password are stored together in an XML file. In a real web application, would it be better (and secure) if the password is placed in another file? Also, I'm thinking of storing them not in XML but in a 'normal' database like DB2. What could be the advantages/disadvantages of doing this? Thanks in advance. -Dingdong
Re: User Profile/Password Storage Concerns
The database servlet in the Example application has the advantage of being able to run "out of the box", without going to the trouble of installing a real JDBC DBMS, like PostGresSQL, MySQL, et al. For several reasons, the Example database servlet would not scale in a multiuser environment, and so, yes, in a production application, you would use a JDBC DBMS, for all the usual reasons. I'm working on the some sample JDBC utilities now. Yesterday's example is at http://husted.com/about/struts . Tomorrow's version should include examples of filling form fields with database results, and maybe a JSP for sending an arbitrary query, and getting back a dynamic HTML table. *** REPLY SEPARATOR ***On 1/4/2001 at 3:46 PM [EMAIL PROTECTED] wrote:Hi, In the Struts example, the user details *and* password are stored together in an XML file. In a real web application, would it be better (and secure) if the password is placed in another file? Also, I'm thinking of storing them not in XML but in a 'normal' database like DB2. What could be the advantages/disadvantages of doing this? Thanks in advance. -Dingdong
Example Use Of Data Source
I was asked (in private mail) for an example of using the new data source facility in an actual application. Since the Struts example doesn't use a real database, I've extracted the following code snippet from one of my personal webapps that uses this. The code initializes a collection of domain table names and values that will be used to populate select lists: ArrayList list = new ArrayList(); DataSource ds = (DataSource) getServletContext().getAttribute(Action.DATA_SOURCE_KEY); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = ds.getConnection(); stmt = conn.prepareStatement("select org_id, name from organizations"); rs = stmt.executeQuery(); while (rs.next()) { DomainBean db = new DomainBean(rs.getInt(1), rs.getString(2)); list.add(db); } rs.close(); stmt.close(); getServletContext().setAttribute("organizations", list); } catch (SQLException e) { ... deal with exception ... } finally { try { if (conn != null) conn.close(); } catch (SQLException f) { ... deal with exception ... } } Note that I'm guaranteeing the connection that I allocated gets returned by enclosing this logic in a "finally" block. Craig
Re: Problem with Digester used standalone
At 12:26 PM 1/4/01 -0800, Craig R. McClanahan wrote: When you say "JSDK" classes, I hope you mean the "servlet.jar" file that contains the current version of the servlet API classes :-). Yes, I meant the jar file containing the Servlets 2.2 implementation. Since Tomcat calls it servlet.jar and Resin calls it jsdk22.jar, I got lazy and just referred to it as the JSDK. I figured people would know what I meant. :-) The guilty party is undoubtedly BeanUtils.populate() -- one of the variants here takes an HttpServletRequest as an argument, so it requires the servlet API classes. I will look at the code dependencies of Digester, and can maybe use PropertyUtils directly instead -- but is having struts.jar + servlet.jar available on your classpath (plus an XML parser of course) *really* too much to ask? I guess not *really*. It just seems a bit weird to require the JSDK for a standalone Java application. Since what I'm doing is for my own use, it's not a big deal, but it would be an odd requirement to have to list if I was giving the app to other people. -- Martin Cooper Tumbleweed Communications
RE: Newbie Question on Logic:Iterate Tag
Ted, In this example (I'm still having problems using the iterate tag), how does the "row" get put into a context? Where is that bean? According to the tag docs, id is "The name of a page scope JSP bean that will contain the current element of the collection on each iteration." Thanks, Dennis -Original Message- From: Ted Husted [mailto:[EMAIL PROTECTED]] Sent: Wednesday, January 03, 2001 8:09 AM To: Struts List Subject: Re: Newbie Question on Logic:Iterate Tag Basically, iterate will run through a collection object that you've stored in one of the contexts (page, request, session, or application), using a call like request.SetAttribute("myObj", myObj); You can then do something like logic:iterate id="row" name="myObj" libean:write name="row" property="myProperty"//li /logic:iterate in your JSP. (Assuming that myObj is an array, hashtable, et cetera.)
GenericDataSource Enhancement
I don't see GenericDataSource checking to see if a connection is dead/closed before it returns it from the pool. I think my ISP shuts down the database at night for backups and it kills the connection pool. Could checking to see if the connection is live (reconect if dead) be added? David Winterfeldt __ Do You Yahoo!? Yahoo! Photos - Share your holiday photos online! http://photos.yahoo.com/
RE: Newbie Question on Logic:Iterate Tag
Um*red-faced* Nevermind. It seems forgetting to identify the logic tag library is a problem! Thanks anyway, Dennis -Original Message- From: Dennis [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 04, 2001 3:46 PM To: [EMAIL PROTECTED] Subject: RE: Newbie Question on Logic:Iterate Tag Ted, In this example (I'm still having problems using the iterate tag), how does the "row" get put into a context? Where is that bean? According to the tag docs, id is "The name of a page scope JSP bean that will contain the current element of the collection on each iteration." Thanks, Dennis -Original Message- From: Ted Husted [mailto:[EMAIL PROTECTED]] Sent: Wednesday, January 03, 2001 8:09 AM To: Struts List Subject: Re: Newbie Question on Logic:Iterate Tag Basically, iterate will run through a collection object that you've stored in one of the contexts (page, request, session, or application), using a call like request.SetAttribute("myObj", myObj); You can then do something like logic:iterate id="row" name="myObj" libean:write name="row" property="myProperty"//li /logic:iterate in your JSP. (Assuming that myObj is an array, hashtable, et cetera.)
RE: GenericDataSource Enhancement
My vote would be to hold off until 1.0 is released to add enahancements. Let's concentrate on the outstanding documentation and any critical bugs. thanks, larry -Original Message- From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 04, 2001 6:46 PM To: [EMAIL PROTECTED] Subject: Re: GenericDataSource Enhancement David Winterfeldt wrote: I don't see GenericDataSource checking to see if a connection is dead/closed before it returns it from the pool. I think my ISP shuts down the database at night for backups and it kills the connection pool. Could checking to see if the connection is live (reconect if dead) be added? It certainly could, along with other stuff like implementing the getConnection(username, password) call correctly. Does it need to be fixed within the next few days (i.e. before a 1.0 release), or are these enhancements we can worry about after 1.0 is released? David Winterfeldt Craig
Re: GenericDataSource Enhancement
It can wait until after 1.0 is released. If it could get fixed in the next couple of weeks, that would be good. David Winterfeldt --- "Craig R. McClanahan" [EMAIL PROTECTED] wrote: David Winterfeldt wrote: I don't see GenericDataSource checking to see if a connection is dead/closed before it returns it from the pool. I think my ISP shuts down the database at night for backups and it kills the connection pool. Could checking to see if the connection is live (reconect if dead) be added? It certainly could, along with other stuff like implementing the getConnection(username, password) call correctly. Does it need to be fixed within the next few days (i.e. before a 1.0 release), or are these enhancements we can worry about after 1.0 is released? David Winterfeldt Craig __ Do You Yahoo!? Yahoo! Photos - Share your holiday photos online! http://photos.yahoo.com/
Re: Help: logic:iterate and form input fields
Actually, I think I can add some clarification to this issue as I am encountering what I see as a similar problem. The basic goal is to create a form where there are a variable number of entries, all of which are the same type. The number of entries is determined at run-time, for example from rows in a database table. An example scenario would look something like this. Your Shopping Cart: ITEM: QUANTITY: Pencil 1___ Eraser 1___ Cheese 1___ (The quantities are text fields.) The list of items is generated at run-time from the things a person has clicked into their shopping cart, and the quantities are set at check-out time (by the user). The problem is that the iterate and form tags dont seem to work together for indexed properties. This is partially a problem with the underlying html. Each text field in a form needs a different name. In order to have these fields correspond to a specific index value in an indexed property, the names of the fields need to be parsed. The html might look something like this: form ... > table> tr> td>ITEM:/td>td>Quantity/td> /tr> tr> td>Pencil/td>td>input type="text" name="item000" value="1">/td> /tr> tr> td>Pencil/td>td>input type="text" name="item001" value="1">/td> /tr> tr> td>Pencil/td>td>input type="text" name="item002" value="1">/td> /tr> /table> ... /form> When the submit button was hit, the request parameters would be parsed. I have just started working on this problem. Mishkin. Chandan Kulkarni wrote: Yes...same idea... -Original Message- From: Ted Husted [EMAIL PROTECTED]> To: Struts List [EMAIL PROTECTED]> Date: Wednesday, December 27, 2000 10:36 AM Subject: Re: Help: logic:iterate> and form input fields Are you trying to do something like this order form (Javascript)https://public.wxxi.org/schedules/fm/voice-order.htmThis only shows one item, but the idea is that there would be one line for each item in a small inventory. -- Ted Husted, Husted dot Com, Fairport NY USA. -- Custom Software ~ Technical Services. -- Tel 716 425-0252; Fax 716 223-2506. -- http://www.husted.com/ S/MIME Cryptographic Signature
parameters in the request object disappear !!?
-- Forwarded by Danson Hock Kieong Loh/Singapore/Netlife on 01/05/2001 11:54 AM --- hi all, When using query string with parameters (e.g. action.do?para1=111para2=222...), the request object will be renewed right after the action class calls the mapping.findForward(..) method. There is no problem when a form is used. Due to the page will be called in different ways, we desperately need the parameters to be retained in the request object. Do you guys have any idea what may cause the problem, what makes the parameters disappear ? Thanks. : ) Regards, Danson Disclaimer : The information contained in this email is intended solely for the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any form of disclosure, reproduction, distribution or any action taken or refrained from in reliance on it, is prohibited and may be unlawful. Please notify the sender immediately. The content of this email is not legally binding unless confirmed by letter. The sending of emails to us will not constitute compliance with any time limits or deadlines. We also like to inform you that communication via email over the internet is insecure because third parties may have the possibility to access and manipulate emails. Disclaimer : The information contained in this email is intended solely for the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any form of disclosure, reproduction, distribution or any action taken or refrained from in reliance on it, is prohibited and may be unlawful. Please notify the sender immediately. The content of this email is not legally binding unless confirmed by letter. The sending of emails to us will not constitute compliance with any time limits or deadlines. We also like to inform you that communication via email over the internet is insecure because third parties may have the possibility to access and manipulate emails.
slashdot-like product available?
Hi... I thought this would be a good place to ask. I am looking for a opensource java application that provides the functionality that slashdot provides. Other examples are theserverside.com and jguru.com Thanks so very much! Phillip