RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-25 Thread Brugge, John

Pardon my skepticism, but from all appearances, the WAS 4.0 GA release is
out (nothing on the IBM WebSphere site says that the 4.0 you can now
download is beta), and this particular issue is *not* resolved. The
antiquated version of Jasper is still included. And from the response to my
question about this on this list a month ago or so, just dropping in a new
Jasper is not something that's likely to happen quickly. If this issue was
just brought to their attention a couple of weeks ago (meaning that they
didn't know about it), I wouldn't hold my breath on a quick resolution.

I'd love to see the fix appear in a fixpack (and soon) but we tried out 4.0
as soon as it was released the end of June, primarily to see if this issue
was resolved, and were disappointed.

John

 -Original Message-
 From: Pravin George [SMTP:[EMAIL PROTECTED]]
 Sent: Tuesday, July 24, 2001 9:26 AM
 To:   [EMAIL PROTECTED]
 Cc:   [EMAIL PROTECTED]
 Subject:  RE: Struts on IBM WAS 4.0 - Error removing attributes from
 reques t sc  ope!
 
 Hi everyone,
 
 I wanted to clarify the status of Struts and Websphere 4
 compatability. As a business partner to IBM, we are on the beta testing
 program for Websphere 4.0 . This particular issue was brought to their
 attention a couple of weeks ago.  Last week we received word that it has
 been fixed in the latest beta build and will not be an issue in the
 final GA release.
 
 
  Pravin George,
  Software Engineer,
  eBuilt Inc. ,
  Irvine, CA 92614.
 
 
 
 
 
   RE: Struts on IBM WAS 4.0 - Error removing attributes from
 reques t sc ope!
  Date:
   Tue, 24 Jul 2001 13:16:48 -0700
 From:
   Calabrese, Jason [EMAIL PROTECTED]
  Reply-To:
   [EMAIL PROTECTED]
To:
   '[EMAIL PROTECTED]'
 [EMAIL PROTECTED]
 
 
 
 I'm running struts on Websphere 3.5.4 and had similar problems.
 
 This is the response I got.
 
  Check this out..
 
 http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html
 
  And..
  Sure thing - I already sent it but the list refused it due to its file
 
 size.
  As an alternative, I'll put it up on my personal FTP space and anyone
 who
  wants it can download it from there! :)
 
  Struts.jar with Form tag modifications:
 http://www.enfused.com/struts.jar
 
 
 -Original Message-
 From: Mark Wilson [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, July 24, 2001 1:07 PM
 To: '[EMAIL PROTECTED]'
 Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
 sc ope!
 
 
 Hello, thanks for you're attention.
 
 I am deploying the struts-example app on IBM Websphere App Server 4.0
 and
 receive an IllegalArgumentException - Can't remove attribute from
 request
 scope.
 
 
 the situation:
 
 I have drilled into the problem and discovered that IBM is using a
 significantly different implementation of the class,
 org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic
 
 of
 removing attributes using the methods removeAttribute(String s, int i)
 and
 removeAttribute(String s).
 
 I have included the code in the next section of the e-mail.  In summary,
 
 using WAS 4.0, attributes are not removed from request scope.
 
 This conflicts most directly with the struts framework class,
 org.apache.struts.taglib.html.FormTag.  FormTag calls
 pageContext.removeAttribute(Constants.BEAN_KEY,
 PageContext.REQUEST_SCOPE)
 and pageContext.removeAttribute(Constants.FORM_KEY,
 PageContext.REQUEST_SCOPE) within the doEndTag() method.
 
 Either of these method calls will generate an IllegalArgumentException
 on
 WAS 4.0.
 
 
 the code (more or less):
 
 org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
 used
 in tomcat's implementation...)
 
 public void removeAttribute(String s, int i)
 {
 switch (i)
 {
 case PAGE_SCOPE:
 pageScopeAttributes.remove(s);
 break;
 
 case REQUEST_SCOPE:
 throw new IllegalArgumentException(Can't remove Attributes
 from
 request scope);
 
 case SESSION_SCOPE:
 if (session == null)
 throw new IllegalArgumentException(Can't access
 SESSION_SCOPE without an HttpSession);
 theSession.removeAttribute(s);
 break;
 
 case APPLICATION_SCOPE:
 theContext.removeAttribute(s);
 break;
 }
 }
 
 
 // and ...
 
public void removeAttribute(String s)
 {
 pageScopeAttributes.remove(s);
 }
 
// (pageScopeAttributes is a Hashtable of objects stored at Page
 scope
 only!)
 
 
 a partial solution:
 
 Replacing the removeAttribute(String s, int i) method calls with
 removeAttribute(String s) within the struts class, FormTag.doEndTag()
 relieves the exception, but on WAS 4.0, it will not remove the
 attribute!
 (in fact, only attributes found in page scope will be removed when the
 method, removeAttribute(String s) is called.)
 
 
 testing results:
 
 Even though

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-25 Thread Mark Wilson

Hi John (or others using struts on IBM WAS),

I was wondering if you have come accross any other negative implications
besides the nasty show stopping Exception from using struts on WAS.
(work-around provided earlier in thread) 

In particular I am concerned that struts makes calls to PageContext -
removeAttribute(String s), while in the Jasper code used by IBM, this will
remove page scope attributes only.  Primarily, I am concerned with the
struts class, taglib.logic.IterateTag, which appears to be written to
iterate through attributes at any scope. 

Any heads-up about struts on IBM is much appreciated.

Thanks a lot,
Mark

-Original Message-
From: Brugge, John [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 25, 2001 9:26 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!


Pardon my skepticism, but from all appearances, the WAS 4.0 GA release is
out (nothing on the IBM WebSphere site says that the 4.0 you can now
download is beta), and this particular issue is *not* resolved. The
antiquated version of Jasper is still included. And from the response to my
question about this on this list a month ago or so, just dropping in a new
Jasper is not something that's likely to happen quickly. If this issue was
just brought to their attention a couple of weeks ago (meaning that they
didn't know about it), I wouldn't hold my breath on a quick resolution.

I'd love to see the fix appear in a fixpack (and soon) but we tried out 4.0
as soon as it was released the end of June, primarily to see if this issue
was resolved, and were disappointed.

John

 -Original Message-
 From: Pravin George [SMTP:[EMAIL PROTECTED]]
 Sent: Tuesday, July 24, 2001 9:26 AM
 To:   [EMAIL PROTECTED]
 Cc:   [EMAIL PROTECTED]
 Subject:  RE: Struts on IBM WAS 4.0 - Error removing attributes from
 reques t sc  ope!
 
 Hi everyone,
 
 I wanted to clarify the status of Struts and Websphere 4
 compatability. As a business partner to IBM, we are on the beta testing
 program for Websphere 4.0 . This particular issue was brought to their
 attention a couple of weeks ago.  Last week we received word that it has
 been fixed in the latest beta build and will not be an issue in the
 final GA release.
 
 
  Pravin George,
  Software Engineer,
  eBuilt Inc. ,
  Irvine, CA 92614.
 
 
 
 
 
   RE: Struts on IBM WAS 4.0 - Error removing attributes from
 reques t sc ope!
  Date:
   Tue, 24 Jul 2001 13:16:48 -0700
 From:
   Calabrese, Jason [EMAIL PROTECTED]
  Reply-To:
   [EMAIL PROTECTED]
To:
   '[EMAIL PROTECTED]'
 [EMAIL PROTECTED]
 
 
 
 I'm running struts on Websphere 3.5.4 and had similar problems.
 
 This is the response I got.
 
  Check this out..
 
 http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html
 
  And..
  Sure thing - I already sent it but the list refused it due to its file
 
 size.
  As an alternative, I'll put it up on my personal FTP space and anyone
 who
  wants it can download it from there! :)
 
  Struts.jar with Form tag modifications:
 http://www.enfused.com/struts.jar
 
 
 -Original Message-
 From: Mark Wilson [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, July 24, 2001 1:07 PM
 To: '[EMAIL PROTECTED]'
 Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
 sc ope!
 
 
 Hello, thanks for you're attention.
 
 I am deploying the struts-example app on IBM Websphere App Server 4.0
 and
 receive an IllegalArgumentException - Can't remove attribute from
 request
 scope.
 
 
 the situation:
 
 I have drilled into the problem and discovered that IBM is using a
 significantly different implementation of the class,
 org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic
 
 of
 removing attributes using the methods removeAttribute(String s, int i)
 and
 removeAttribute(String s).
 
 I have included the code in the next section of the e-mail.  In summary,
 
 using WAS 4.0, attributes are not removed from request scope.
 
 This conflicts most directly with the struts framework class,
 org.apache.struts.taglib.html.FormTag.  FormTag calls
 pageContext.removeAttribute(Constants.BEAN_KEY,
 PageContext.REQUEST_SCOPE)
 and pageContext.removeAttribute(Constants.FORM_KEY,
 PageContext.REQUEST_SCOPE) within the doEndTag() method.
 
 Either of these method calls will generate an IllegalArgumentException
 on
 WAS 4.0.
 
 
 the code (more or less):
 
 org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
 used
 in tomcat's implementation...)
 
 public void removeAttribute(String s, int i)
 {
 switch (i)
 {
 case PAGE_SCOPE:
 pageScopeAttributes.remove(s);
 break;
 
 case REQUEST_SCOPE:
 throw new IllegalArgumentException(Can't remove Attributes
 from
 request scope);
 
 case SESSION_SCOPE:
 if (session == null)
 throw new

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-25 Thread Calabrese, Jason

Why can't IBM keep up.  I don't think I'd ever recommended Websphere or
any other IBM java application.

-Original Message-
From: Boulatian, Misak [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 25, 2001 8:07 AM
To: [EMAIL PROTECTED]
Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!


It seems like you have the same problem as I was having with Powertier
app
server. The solution was that
the powertier current release was coming with an older jasper libraries
(jsp
engine) but struts is using the newer
ones. I hope this helps.
Thanks
Misak

-Original Message-
From: Pravin George [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 24, 2001 7:26 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!


Hi everyone,

I wanted to clarify the status of Struts and Websphere 4
compatability. As a business partner to IBM, we are on the beta testing
program for Websphere 4.0 . This particular issue was brought to their
attention a couple of weeks ago.  Last week we received word that it has
been fixed in the latest beta build and will not be an issue in the
final GA release.


 Pravin George,
 Software Engineer,
 eBuilt Inc. ,
 Irvine, CA 92614.





  RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!
 Date:
  Tue, 24 Jul 2001 13:16:48 -0700
From:
  Calabrese, Jason [EMAIL PROTECTED]
 Reply-To:
  [EMAIL PROTECTED]
   To:
  '[EMAIL PROTECTED]'
[EMAIL PROTECTED]



I'm running struts on Websphere 3.5.4 and had similar problems.

This is the response I got.

 Check this out..

http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html

 And..
 Sure thing - I already sent it but the list refused it due to its file

size.
 As an alternative, I'll put it up on my personal FTP space and anyone
who
 wants it can download it from there! :)

 Struts.jar with Form tag modifications:
http://www.enfused.com/struts.jar


-Original Message-
From: Mark Wilson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 24, 2001 1:07 PM
To: '[EMAIL PROTECTED]'
Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
sc ope!


Hello, thanks for you're attention.

I am deploying the struts-example app on IBM Websphere App Server 4.0
and
receive an IllegalArgumentException - Can't remove attribute from
request
scope.


the situation:

I have drilled into the problem and discovered that IBM is using a
significantly different implementation of the class,
org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic

of
removing attributes using the methods removeAttribute(String s, int i)
and
removeAttribute(String s).

I have included the code in the next section of the e-mail.  In summary,

using WAS 4.0, attributes are not removed from request scope.

This conflicts most directly with the struts framework class,
org.apache.struts.taglib.html.FormTag.  FormTag calls
pageContext.removeAttribute(Constants.BEAN_KEY,
PageContext.REQUEST_SCOPE)
and pageContext.removeAttribute(Constants.FORM_KEY,
PageContext.REQUEST_SCOPE) within the doEndTag() method.

Either of these method calls will generate an IllegalArgumentException
on
WAS 4.0.


the code (more or less):

org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
used
in tomcat's implementation...)

public void removeAttribute(String s, int i)
{
switch (i)
{
case PAGE_SCOPE:
pageScopeAttributes.remove(s);
break;

case REQUEST_SCOPE:
throw new IllegalArgumentException(Can't remove Attributes
from
request scope);

case SESSION_SCOPE:
if (session == null)
throw new IllegalArgumentException(Can't access
SESSION_SCOPE without an HttpSession);
theSession.removeAttribute(s);
break;

case APPLICATION_SCOPE:
theContext.removeAttribute(s);
break;
}
}


// and ...

   public void removeAttribute(String s)
{
pageScopeAttributes.remove(s);
}

   // (pageScopeAttributes is a Hashtable of objects stored at Page
scope
only!)


a partial solution:

Replacing the removeAttribute(String s, int i) method calls with
removeAttribute(String s) within the struts class, FormTag.doEndTag()
relieves the exception, but on WAS 4.0, it will not remove the
attribute!
(in fact, only attributes found in page scope will be removed when the
method, removeAttribute(String s) is called.)


testing results:

Even though the attributes weren't removed from the request scope, those

attributes were replaced by new objects the next time.  This didn't seem

to
affect the observable behavior of the struts example application.


the question(s):

We really, really want to use struts on WAS 4.0.  There seems to be some

logic within struts that relates to null attributes.

What

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-25 Thread Brugge, John

Yes, WAS 4.0 is a big step forward in usability. However, if you look
closely at the struts.jar file that is ships with, it's Struts 0.5.

That notwithstanding, the console looks like a pretty sophisticated app.
Probably not trivial for them to move it to Struts 1.0.

John
 -Original Message-
 From: Assenza, Chris [SMTP:[EMAIL PROTECTED]]
 Sent: Wednesday, July 25, 2001 11:22 AM
 To:   '[EMAIL PROTECTED]'
 Subject:  RE: Struts on IBM WAS 4.0 - Error removing attributes from
 reques t sc   ope!
 
 I had no problems with our test run with WAS 4.0 using the modified
 struts.jar I posted - heck the console is built with Struts. :-P
 
 Frankly, I feel like WAS 4.0 is a dream-come true as far as usability and
 administration.  Yeah, Java isn't up to spec, but what else is new.  At
 least it is easier to maintain. 
 
 Our struts app deployed flawlessly from the EAR file without any extra
 manipulation from me outside of using their Application Assembly tool (ie.
 no moving WEB-INF, no pulling out DTD's, nadda). :D
 
 Be that as it may, our app didn't work 100%, but I am pretty sure that was
 an unrelated issue (IIS wasn't configured properly).
 
 Chris
 
 -Original Message-
 From: Pravin George [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, July 25, 2001 5:13 AM
 To: [EMAIL PROTECTED]
 Subject: Re: Struts on IBM WAS 4.0 - Error removing attributes from
 request sc ope!
 
 
 you're right Websphere 4.0 is a pain to work with. I did get a struts
 application running on 3.5.3 but not on any later version.
 
 
 
 Calabrese, Jason wrote:
 
  Why can't IBM keep up.  I don't think I'd ever recommended Websphere or
  any other IBM java application.
 
  -Original Message-
  From: Boulatian, Misak [mailto:[EMAIL PROTECTED]]
  Sent: Wednesday, July 25, 2001 8:07 AM
  To: [EMAIL PROTECTED]
  Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
  reques t sc ope!
 
  It seems like you have the same problem as I was having with Powertier
  app
  server. The solution was that
  the powertier current release was coming with an older jasper libraries
  (jsp
  engine) but struts is using the newer
  ones. I hope this helps.
  Thanks
  Misak
 
  -Original Message-
  From: Pravin George [mailto:[EMAIL PROTECTED]]
  Sent: Tuesday, July 24, 2001 7:26 AM
  To: [EMAIL PROTECTED]
  Cc: [EMAIL PROTECTED]
  Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
  reques t sc ope!
 
  Hi everyone,
 
  I wanted to clarify the status of Struts and Websphere 4
  compatability. As a business partner to IBM, we are on the beta testing
  program for Websphere 4.0 . This particular issue was brought to their
  attention a couple of weeks ago.  Last week we received word that it has
  been fixed in the latest beta build and will not be an issue in the
  final GA release.
 
   Pravin George,
   Software Engineer,
   eBuilt Inc. ,
   Irvine, CA 92614.
 
RE: Struts on IBM WAS 4.0 - Error removing attributes from
  reques t sc ope!
   Date:
Tue, 24 Jul 2001 13:16:48 -0700
  From:
Calabrese, Jason [EMAIL PROTECTED]
   Reply-To:
[EMAIL PROTECTED]
 To:
'[EMAIL PROTECTED]'
  [EMAIL PROTECTED]
 
  I'm running struts on Websphere 3.5.4 and had similar problems.
 
  This is the response I got.
 
   Check this out..
  
  http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html
 
   And..
   Sure thing - I already sent it but the list refused it due to its file
 
  size.
   As an alternative, I'll put it up on my personal FTP space and anyone
  who
   wants it can download it from there! :)
 
   Struts.jar with Form tag modifications:
  http://www.enfused.com/struts.jar
 
  -Original Message-
  From: Mark Wilson [mailto:[EMAIL PROTECTED]]
  Sent: Tuesday, July 24, 2001 1:07 PM
  To: '[EMAIL PROTECTED]'
  Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
  sc ope!
 
  Hello, thanks for you're attention.
 
  I am deploying the struts-example app on IBM Websphere App Server 4.0
  and
  receive an IllegalArgumentException - Can't remove attribute from
  request
  scope.
 
  the situation:
 
  I have drilled into the problem and discovered that IBM is using a
  significantly different implementation of the class,
  org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic
 
  of
  removing attributes using the methods removeAttribute(String s, int i)
  and
  removeAttribute(String s).
 
  I have included the code in the next section of the e-mail.  In summary,
 
  using WAS 4.0, attributes are not removed from request scope.
 
  This conflicts most directly with the struts framework class,
  org.apache.struts.taglib.html.FormTag.  FormTag calls
  pageContext.removeAttribute(Constants.BEAN_KEY,
  PageContext.REQUEST_SCOPE)
  and pageContext.removeAttribute(Constants.FORM_KEY,
  PageContext.REQUEST_SCOPE) within the doEndTag() method.
 
  Either of these method

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-24 Thread Pravin George

Hi everyone,

I wanted to clarify the status of Struts and Websphere 4
compatability. As a business partner to IBM, we are on the beta testing
program for Websphere 4.0 . This particular issue was brought to their
attention a couple of weeks ago.  Last week we received word that it has
been fixed in the latest beta build and will not be an issue in the
final GA release.


 Pravin George,
 Software Engineer,
 eBuilt Inc. ,
 Irvine, CA 92614.





  RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!
 Date:
  Tue, 24 Jul 2001 13:16:48 -0700
From:
  Calabrese, Jason [EMAIL PROTECTED]
 Reply-To:
  [EMAIL PROTECTED]
   To:
  '[EMAIL PROTECTED]'
[EMAIL PROTECTED]



I'm running struts on Websphere 3.5.4 and had similar problems.

This is the response I got.

 Check this out..

http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html

 And..
 Sure thing - I already sent it but the list refused it due to its file

size.
 As an alternative, I'll put it up on my personal FTP space and anyone
who
 wants it can download it from there! :)

 Struts.jar with Form tag modifications:
http://www.enfused.com/struts.jar


-Original Message-
From: Mark Wilson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 24, 2001 1:07 PM
To: '[EMAIL PROTECTED]'
Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
sc ope!


Hello, thanks for you're attention.

I am deploying the struts-example app on IBM Websphere App Server 4.0
and
receive an IllegalArgumentException - Can't remove attribute from
request
scope.


the situation:

I have drilled into the problem and discovered that IBM is using a
significantly different implementation of the class,
org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic

of
removing attributes using the methods removeAttribute(String s, int i)
and
removeAttribute(String s).

I have included the code in the next section of the e-mail.  In summary,

using WAS 4.0, attributes are not removed from request scope.

This conflicts most directly with the struts framework class,
org.apache.struts.taglib.html.FormTag.  FormTag calls
pageContext.removeAttribute(Constants.BEAN_KEY,
PageContext.REQUEST_SCOPE)
and pageContext.removeAttribute(Constants.FORM_KEY,
PageContext.REQUEST_SCOPE) within the doEndTag() method.

Either of these method calls will generate an IllegalArgumentException
on
WAS 4.0.


the code (more or less):

org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
used
in tomcat's implementation...)

public void removeAttribute(String s, int i)
{
switch (i)
{
case PAGE_SCOPE:
pageScopeAttributes.remove(s);
break;

case REQUEST_SCOPE:
throw new IllegalArgumentException(Can't remove Attributes
from
request scope);

case SESSION_SCOPE:
if (session == null)
throw new IllegalArgumentException(Can't access
SESSION_SCOPE without an HttpSession);
theSession.removeAttribute(s);
break;

case APPLICATION_SCOPE:
theContext.removeAttribute(s);
break;
}
}


// and ...

   public void removeAttribute(String s)
{
pageScopeAttributes.remove(s);
}

   // (pageScopeAttributes is a Hashtable of objects stored at Page
scope
only!)


a partial solution:

Replacing the removeAttribute(String s, int i) method calls with
removeAttribute(String s) within the struts class, FormTag.doEndTag()
relieves the exception, but on WAS 4.0, it will not remove the
attribute!
(in fact, only attributes found in page scope will be removed when the
method, removeAttribute(String s) is called.)


testing results:

Even though the attributes weren't removed from the request scope, those

attributes were replaced by new objects the next time.  This didn't seem

to
affect the observable behavior of the struts example application.


the question(s):

We really, really want to use struts on WAS 4.0.  There seems to be some

logic within struts that relates to null attributes.

What are the architectural implications of running an app built upon
struts
that will never have it's attributes removed from request scope?

If there are implications, are there ways to work around the problems?

Is it feasible to extend the struts framework to specifically target the

changes noted in WAS 4.0?  If so, do you have any recommendations how to

go
about doing this?


Thank you very much,
Mark