You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@turbine.apache.org by John McNally <jm...@collab.net> on 2001/10/20 09:55:14 UTC
Re: Intake Integers ??
I just tracked down this bug yesterday. Can't believe it did not come
up earlier.
There is a bug in the bean introspector that causes it to pick the wrong
method as the setter when there are multiple candidates. The proper
procedure is to look at the getter since it is guaranteed to be unique
and then use that to pick the proper setter. The introspector is taking
them in the order returned by Class.getPublicDeclaredMethods (not sure
that is the exact method) and whichever candidate comes up first is
chosen. Then since the getter does not agree it leaves it null. Not
sure how the order that the methods are returned in is different for
different torque objects. But most of the time it gets it right and
occasionally the wrong setter comes up first.
I checked in a fix for this into the fulcrum repo. I think I will clean
it up a bit to avoid using the Introspector at all. I will then check
this change into turbine-2 as well.
Until then if you want to patch your TurbineIntakeService, here is a
patch:
Index: TurbineIntakeService.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/intake/TurbineIntakeService.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TurbineIntakeService.java 2001/10/12 23:56:33 1.3
+++ TurbineIntakeService.java 2001/10/20 00:20:16 1.4
@@ -87,7 +87,7 @@
* on an XML specification.
*
* @author <a href="mailto:jmcnally@collab.net">John McNally</a>
- * @version $Id: TurbineIntakeService.java,v 1.3 2001/10/12 23:56:33
jon Exp $
+ * @version $Id: TurbineIntakeService.java,v 1.4 2001/10/20 00:20:16
jmcnally Exp $
*/
public class TurbineIntakeService
extends BaseService
@@ -102,6 +102,9 @@
/** The cache of group keys. */
private Map groupKeyMap;
+ /** The cache of PropertyDescriptor[]. */
+ private Map beanPropsMap;
+
/** The cache of property getters. */
private Map getterMap;
@@ -189,6 +192,7 @@
groupNames = new String[appData.getGroups().size()];
groupKeyMap = new HashMap();
groupNameMap = new HashMap();
+ beanPropsMap = new HashMap();
getterMap = new HashMap();
setterMap = new HashMap();
// omTool = new OMTool();
@@ -283,9 +287,15 @@
// of bean from the parameters, where a
// (case-insensitive) name match between the bean
// property and the parameter is looked for.
- PropertyDescriptor[] beanProps = Introspector
- .getBeanInfo(Class.forName(className))
- .getPropertyDescriptors();
+ PropertyDescriptor[] beanProps =
+ (PropertyDescriptor[])beanPropsMap.get(className);
+ if ( beanProps == null )
+ {
+ beanProps = Introspector
+ .getBeanInfo(Class.forName(className))
+ .getPropertyDescriptors();
+ beanPropsMap.put(className, beanProps);
+ }
boolean noMatch = true;
for (int j=beanProps.length-1; j>=0; j--)
@@ -296,6 +306,42 @@
{
case GETTER:
method = beanProps[j].getReadMethod();
+ // it appears that the introspector
misses some
+ // getters
+ if ( method == null )
+ {
+ Class cls = Class.forName(className);
+ try
+ {
+ method = cls
+ .getMethod("get" + propName,
null);
+ // we have to force the setter as
well
+ Class[] sig = new Class[1];
+ sig[0] = method.getReturnType();
+ Method setterMethod = null;
+ try
+ {
+ setterMethod = cls
+ .getMethod("set" +
propName, sig);
+ }
+ catch(NoSuchMethodException e)
+ {
+ // ignore, setter was null;
+ }
+
+ beanProps[j] = new
PropertyDescriptor(
+ propName, method,
setterMethod);
+ System.out.println("reset
descriptor");
+ }
+ catch(NoSuchMethodException e)
+ {
+ // ignore, getter was really null
+ // we should check for boolean
"is"
+ // prefix, though boolean less
likely to
+ // override setters to cause
problems
+ }
+ }
+
((HashMap)getterMap.get(className))
.put(propName, method);
break;
Filippos Slavik wrote:
>
> Hello all,
>
> I have a problem with intake that's driving me crazy for the last two days...
>
> My database xml schema defines a column in a table like:
> <table javaName="DigitalLarge" name="DIGITAL_LARGE" idMethod="idbroker">
> ....
> <column javaName="DiskPlatformID" name="DIGITAL_LARGE_DISKPLATFORM_ID"
> type="INTEGER"/>
> .....
> </table>
>
> The coresponding group in inputs.xml defines a field as follows:
>
> <group name="DigitalLarge" key="digitallarge" mapToObject="om.DigitalLarge">
> ....
> <field name="DiskPlatformID" key="diskplatformid" type="NumberKey"
> mapToProperty="DiskPlatformID"/>
> ....
> </group>
>
> When I'm using the above group instance to map the form values to the
> coresponding om.DigitalLarge instance properties I get an exception saying...
>
> java.lang.Exception: java.lang.Exception:
> org.apache.turbine.util.TurbineException: An exception prevented the
> setting property DiskPlatformID of gr.printcity.om.DigitalLarge@5e0638 to
> 2: argument type mismatch
>
> I really I'm out of clues ! I can't understand what I'm doing wrong and I
> can map the property. I have also tryed to declare the field
> "DiskPlatfromID" like:
>
> <field name="DiskPlatformID" key="diskplatformid" type="int"
> mapToProperty="DiskPlatformID"/>
>
> with no success.
>
> Any Hints ?
>
> PS: My OM objects are generated using the Torque as shipped with TDK2.1. I
> use the HEAD version from CVS of Turbine.
>
> Regards
> Filippos Slavik
>
> ################################################################
> Filippos Slavik
> FORTHnet R&D, Heraklion, Greece
> e-mail : fsla@forthnet.gr
> phone : (+3) 081 391230
> ################################################################
>
> "The software said 'runs on Win95 or better,' so I installed it
> on Linux..."
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake + JSP
Posted by John McNally <jm...@collab.net>.
There is still a dependency to break. Intake uses (and the interface
actually belongs better in intake package) the Retrievable interface
which lives in torque. We could move this interface to a common repo,
but I would like it if it was possible to build into torque's build
process that if the interface was not available from intake's package,
then it would not be added to the object code.
Also struts does have a validation framework, it was developed at about
the same time intake was. i think it was contributed so that it should
be in cvs. Otherwise, iirc, the developer was david winterfeldt.
john mcnally
Daniel Rall wrote:
>
> "David Sean Taylor" <da...@bluesunrise.com> writes:
>
> > Im trying to help a friend out in a bit of a jam with his project.
> > Is it possible to decouple Intake from Turbine/Torque/Velocity and use
> > Intake with JSP only?
> >
> > ( I personally don't like JSP, my choice is Velocity. )
> >
> > We haven't seen anything like Intake in Struts. One problem is that he wants
> > to ensure that the length of an html input field is not greater than the
> > length of the database field.
>
> It it were me, I would grab the latest Fulcrum (decoupled Turbine
> services and framework) from the jakarta-turbine-fulcrum CVS module.
> Intake is a service in that.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake + JSP
Posted by Daniel Rall <dl...@finemaltcoding.com>.
"David Sean Taylor" <da...@bluesunrise.com> writes:
> Im trying to help a friend out in a bit of a jam with his project.
> Is it possible to decouple Intake from Turbine/Torque/Velocity and use
> Intake with JSP only?
>
> ( I personally don't like JSP, my choice is Velocity. )
>
> We haven't seen anything like Intake in Struts. One problem is that he wants
> to ensure that the length of an html input field is not greater than the
> length of the database field.
It it were me, I would grab the latest Fulcrum (decoupled Turbine
services and framework) from the jakarta-turbine-fulcrum CVS module.
Intake is a service in that.
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Intake + JSP
Posted by David Sean Taylor <da...@bluesunrise.com>.
Im trying to help a friend out in a bit of a jam with his project.
Is it possible to decouple Intake from Turbine/Torque/Velocity and use
Intake with JSP only?
( I personally don't like JSP, my choice is Velocity. )
We haven't seen anything like Intake in Struts. One problem is that he wants
to ensure that the length of an html input field is not greater than the
length of the database field.
Thanks,
David
----- Original Message -----
From: "John McNally" <jm...@collab.net>
To: <tu...@jakarta.apache.org>
Sent: Sunday, October 21, 2001 10:04 AM
Subject: Re: Intake Integers ??
> If you (or anyone else) are able to find out what I broke, please let me
> know. Otherwise I will revert the turbine-2 repo version tomorrow.
>
> you can specify mapToProperty="" for fields that do not map to bean
> properties.
>
> john mcnally
>
> Filippos Slavik wrote:
> >
> > At 08:22 ðì 20/10/2001 -0700, you wrote:
> > >I just committed a better patch than the one I gave earlier into both
> > >fulcrum and turbine-2 repo's.
> >
> > I'v imported your last patch (from the turbine-2 repo) and I think it
> > actually broke things in my app. The new revision is more unstable. I
had
> > problems to map even String properties. The one I'v imported from the
> > fulcrum repo work better for me :)
> >
> > Also there is another issue I would like to stress. I think that it
would
> > be a good idea to have the ability to have declared fields in a group
that
> > are not mapped to a property of a OM class instance. With the current
build
> > you can perfectly ommit the mapToProperty tag in the inputs-xxx.xml
file,
> > but when you try to map the group's attributes/fields to the
corresponing
> > OM instance you get an exception (apparently because the intake service
> > could not resolve a setter for the property).
> >
> > Cheers
> > Filippos Slavik
> >
> > >john mcnally
> > >
> > >Filippos Slavik wrote:
> > > >
> > > > At 12:55 ðì 20/10/2001 -0700, you wrote:
> > > > >I just tracked down this bug yesterday. Can't believe it did not
come
> > > > >up earlier.
> > > >
> > > > Thanks John.. I did some debugging my self and came to same
conclusion as
> > > > you :)
> > > >
> > > > Since I'm developing under VisualAge which has no support for CVS,
I'm
> > > > trying to parse the diff file my "self" and apply the patch :))))
> > > >
> > > > Best Regards
> > > > Filippos Slavik
> > > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: turbine-user-help@jakarta.apache.org
> >
> > ################################################################
> > Filippos Slavik
> > FORTHnet R&D, Heraklion, Greece
> > e-mail : fsla@forthnet.gr
> > phone : (+3) 081 391230
> > ################################################################
> >
> > "The software said 'runs on Win95 or better,' so I installed it
> > on Linux..."
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: turbine-user-help@jakarta.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake Integers ??
Posted by John McNally <jm...@collab.net>.
If you (or anyone else) are able to find out what I broke, please let me
know. Otherwise I will revert the turbine-2 repo version tomorrow.
you can specify mapToProperty="" for fields that do not map to bean
properties.
john mcnally
Filippos Slavik wrote:
>
> At 08:22 ðì 20/10/2001 -0700, you wrote:
> >I just committed a better patch than the one I gave earlier into both
> >fulcrum and turbine-2 repo's.
>
> I'v imported your last patch (from the turbine-2 repo) and I think it
> actually broke things in my app. The new revision is more unstable. I had
> problems to map even String properties. The one I'v imported from the
> fulcrum repo work better for me :)
>
> Also there is another issue I would like to stress. I think that it would
> be a good idea to have the ability to have declared fields in a group that
> are not mapped to a property of a OM class instance. With the current build
> you can perfectly ommit the mapToProperty tag in the inputs-xxx.xml file,
> but when you try to map the group's attributes/fields to the corresponing
> OM instance you get an exception (apparently because the intake service
> could not resolve a setter for the property).
>
> Cheers
> Filippos Slavik
>
> >john mcnally
> >
> >Filippos Slavik wrote:
> > >
> > > At 12:55 ðì 20/10/2001 -0700, you wrote:
> > > >I just tracked down this bug yesterday. Can't believe it did not come
> > > >up earlier.
> > >
> > > Thanks John.. I did some debugging my self and came to same conclusion as
> > > you :)
> > >
> > > Since I'm developing under VisualAge which has no support for CVS, I'm
> > > trying to parse the diff file my "self" and apply the patch :))))
> > >
> > > Best Regards
> > > Filippos Slavik
> > >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: turbine-user-help@jakarta.apache.org
>
> ################################################################
> Filippos Slavik
> FORTHnet R&D, Heraklion, Greece
> e-mail : fsla@forthnet.gr
> phone : (+3) 081 391230
> ################################################################
>
> "The software said 'runs on Win95 or better,' so I installed it
> on Linux..."
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake Integers ??
Posted by Filippos Slavik <fs...@forthnet.gr>.
At 08:22 ðì 20/10/2001 -0700, you wrote:
>I just committed a better patch than the one I gave earlier into both
>fulcrum and turbine-2 repo's.
I'v imported your last patch (from the turbine-2 repo) and I think it
actually broke things in my app. The new revision is more unstable. I had
problems to map even String properties. The one I'v imported from the
fulcrum repo work better for me :)
Also there is another issue I would like to stress. I think that it would
be a good idea to have the ability to have declared fields in a group that
are not mapped to a property of a OM class instance. With the current build
you can perfectly ommit the mapToProperty tag in the inputs-xxx.xml file,
but when you try to map the group's attributes/fields to the corresponing
OM instance you get an exception (apparently because the intake service
could not resolve a setter for the property).
Cheers
Filippos Slavik
>john mcnally
>
>Filippos Slavik wrote:
> >
> > At 12:55 ðì 20/10/2001 -0700, you wrote:
> > >I just tracked down this bug yesterday. Can't believe it did not come
> > >up earlier.
> >
> > Thanks John.. I did some debugging my self and came to same conclusion as
> > you :)
> >
> > Since I'm developing under VisualAge which has no support for CVS, I'm
> > trying to parse the diff file my "self" and apply the patch :))))
> >
> > Best Regards
> > Filippos Slavik
> >
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: turbine-user-help@jakarta.apache.org
################################################################
Filippos Slavik
FORTHnet R&D, Heraklion, Greece
e-mail : fsla@forthnet.gr
phone : (+3) 081 391230
################################################################
"The software said 'runs on Win95 or better,' so I installed it
on Linux..."
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake Integers ??
Posted by John McNally <jm...@collab.net>.
I just committed a better patch than the one I gave earlier into both
fulcrum and turbine-2 repo's.
john mcnally
Filippos Slavik wrote:
>
> At 12:55 ðì 20/10/2001 -0700, you wrote:
> >I just tracked down this bug yesterday. Can't believe it did not come
> >up earlier.
>
> Thanks John.. I did some debugging my self and came to same conclusion as
> you :)
>
> Since I'm developing under VisualAge which has no support for CVS, I'm
> trying to parse the diff file my "self" and apply the patch :))))
>
> Best Regards
> Filippos Slavik
>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: Intake Integers ??
Posted by Filippos Slavik <fs...@forthnet.gr>.
At 12:55 ðì 20/10/2001 -0700, you wrote:
>I just tracked down this bug yesterday. Can't believe it did not come
>up earlier.
Thanks John.. I did some debugging my self and came to same conclusion as
you :)
Since I'm developing under VisualAge which has no support for CVS, I'm
trying to parse the diff file my "self" and apply the patch :))))
Best Regards
Filippos Slavik
>There is a bug in the bean introspector that causes it to pick the wrong
>method as the setter when there are multiple candidates. The proper
>procedure is to look at the getter since it is guaranteed to be unique
>and then use that to pick the proper setter. The introspector is taking
>them in the order returned by Class.getPublicDeclaredMethods (not sure
>that is the exact method) and whichever candidate comes up first is
>chosen. Then since the getter does not agree it leaves it null. Not
>sure how the order that the methods are returned in is different for
>different torque objects. But most of the time it gets it right and
>occasionally the wrong setter comes up first.
>
>I checked in a fix for this into the fulcrum repo. I think I will clean
>it up a bit to avoid using the Introspector at all. I will then check
>this change into turbine-2 as well.
>
>Until then if you want to patch your TurbineIntakeService, here is a
>patch:
>
>
>Index: TurbineIntakeService.java
> ===================================================================
> RCS file:
>/home/cvs/jakarta-turbine-fulcrum/src/services/java/org/apache/fulcrum/intake/TurbineIntakeService.java,v
> retrieving revision 1.3
> retrieving revision 1.4
> diff -u -r1.3 -r1.4
> --- TurbineIntakeService.java 2001/10/12 23:56:33 1.3
> +++ TurbineIntakeService.java 2001/10/20 00:20:16 1.4
> @@ -87,7 +87,7 @@
> * on an XML specification.
> *
> * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
> - * @version $Id: TurbineIntakeService.java,v 1.3 2001/10/12 23:56:33
>jon Exp $
> + * @version $Id: TurbineIntakeService.java,v 1.4 2001/10/20 00:20:16
>jmcnally Exp $
> */
> public class TurbineIntakeService
> extends BaseService
> @@ -102,6 +102,9 @@
> /** The cache of group keys. */
> private Map groupKeyMap;
>
> + /** The cache of PropertyDescriptor[]. */
> + private Map beanPropsMap;
> +
> /** The cache of property getters. */
> private Map getterMap;
>
> @@ -189,6 +192,7 @@
> groupNames = new String[appData.getGroups().size()];
> groupKeyMap = new HashMap();
> groupNameMap = new HashMap();
> + beanPropsMap = new HashMap();
> getterMap = new HashMap();
> setterMap = new HashMap();
> // omTool = new OMTool();
> @@ -283,9 +287,15 @@
> // of bean from the parameters, where a
> // (case-insensitive) name match between the bean
> // property and the parameter is looked for.
> - PropertyDescriptor[] beanProps = Introspector
> - .getBeanInfo(Class.forName(className))
> - .getPropertyDescriptors();
> + PropertyDescriptor[] beanProps =
> + (PropertyDescriptor[])beanPropsMap.get(className);
> + if ( beanProps == null )
> + {
> + beanProps = Introspector
> + .getBeanInfo(Class.forName(className))
> + .getPropertyDescriptors();
> + beanPropsMap.put(className, beanProps);
> + }
>
> boolean noMatch = true;
> for (int j=beanProps.length-1; j>=0; j--)
> @@ -296,6 +306,42 @@
> {
> case GETTER:
> method = beanProps[j].getReadMethod();
> + // it appears that the introspector
>misses some
> + // getters
> + if ( method == null )
> + {
> + Class cls = Class.forName(className);
> + try
> + {
> + method = cls
> + .getMethod("get" + propName,
>null);
> + // we have to force the setter as
>well
> + Class[] sig = new Class[1];
> + sig[0] = method.getReturnType();
> + Method setterMethod = null;
> + try
> + {
> + setterMethod = cls
> + .getMethod("set" +
>propName, sig);
> + }
> + catch(NoSuchMethodException e)
> + {
> + // ignore, setter was null;
> + }
> +
> + beanProps[j] = new
>PropertyDescriptor(
> + propName, method,
>setterMethod);
> + System.out.println("reset
>descriptor");
> + }
> + catch(NoSuchMethodException e)
> + {
> + // ignore, getter was really null
> + // we should check for boolean
>"is"
> + // prefix, though boolean less
>likely to
> + // override setters to cause
>problems
> + }
> + }
> +
> ((HashMap)getterMap.get(className))
> .put(propName, method);
> break;
>
>
>
>
>Filippos Slavik wrote:
> >
> > Hello all,
> >
> > I have a problem with intake that's driving me crazy for the last two
> days...
> >
> > My database xml schema defines a column in a table like:
> > <table javaName="DigitalLarge" name="DIGITAL_LARGE" idMethod="idbroker">
> > ....
> > <column javaName="DiskPlatformID" name="DIGITAL_LARGE_DISKPLATFORM_ID"
> > type="INTEGER"/>
> > .....
> > </table>
> >
> > The coresponding group in inputs.xml defines a field as follows:
> >
> > <group name="DigitalLarge" key="digitallarge"
> mapToObject="om.DigitalLarge">
> > ....
> > <field name="DiskPlatformID" key="diskplatformid" type="NumberKey"
> > mapToProperty="DiskPlatformID"/>
> > ....
> > </group>
> >
> > When I'm using the above group instance to map the form values to the
> > coresponding om.DigitalLarge instance properties I get an exception
> saying...
> >
> > java.lang.Exception: java.lang.Exception:
> > org.apache.turbine.util.TurbineException: An exception prevented the
> > setting property DiskPlatformID of gr.printcity.om.DigitalLarge@5e0638 to
> > 2: argument type mismatch
> >
> > I really I'm out of clues ! I can't understand what I'm doing wrong and I
> > can map the property. I have also tryed to declare the field
> > "DiskPlatfromID" like:
> >
> > <field name="DiskPlatformID" key="diskplatformid" type="int"
> > mapToProperty="DiskPlatformID"/>
> >
> > with no success.
> >
> > Any Hints ?
> >
> > PS: My OM objects are generated using the Torque as shipped with TDK2.1. I
> > use the HEAD version from CVS of Turbine.
> >
> > Regards
> > Filippos Slavik
> >
> > ################################################################
> > Filippos Slavik
> > FORTHnet R&D, Heraklion, Greece
> > e-mail : fsla@forthnet.gr
> > phone : (+3) 081 391230
> > ################################################################
> >
> > "The software said 'runs on Win95 or better,' so I installed it
> > on Linux..."
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: turbine-user-help@jakarta.apache.org
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: turbine-user-help@jakarta.apache.org
################################################################
Filippos Slavik
FORTHnet R&D, Heraklion, Greece
e-mail : fsla@forthnet.gr
phone : (+3) 081 391230
################################################################
"The software said 'runs on Win95 or better,' so I installed it
on Linux..."
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org