Re: Memory Leak

2001-01-23 Thread Mike Clark

The memory won't actually be reclaimed until the GC kicks in, which in
most cases isn't until the heap is a certain percentage utilized.

Mike

--- Dan DiCesare [EMAIL PROTECTED] wrote:

HR
htmlDIV
PFONT face="Geneva, Arial, Sans-serif"Hello,/FONT/P
PFONT face=ArialI am using JSP lt;useBeangt; tags to invoke java
beans. In my java beans I create a reference to my EJB's. In my
JSPnbsp;I scope the bean as session. In other words the syntax looks
as follows:/FONT/P
Plt;jsp:useBean id="fooBean"nbsp; scope="session"nbsp;nbsp;nbsp;
class="FooBean" /gt;/P
PFONT face="Geneva, Arial, Sans-serif"What we are noticing is that
every time the page is called, a certain amount of memory is used by
each session as expected by the session scope. However, when the
session is complete, the memory is not released by the JVM. The end
result is that we need to stop Orion server and restart to clear the
JVM memory usage. Can anyone advise as to what we need to do.
/FONT/P
PFONT face=Arial/FONTnbsp;/P
PFONT face=ArialThanks/FONT/P
PFONT face=Arial-Dan/FONT/P/DIVbr clear=allhrGet your
FREE download of MSN Explorer at a
href="http://explorer.msn.com"http://explorer.msn.com/abr/p/html






__
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices. 
http://auctions.yahoo.com/




Re: serialisation problem?

2001-01-16 Thread Mike Clark

Prior to JDK 1.3, the serialization of a string exceeding 64k would 
result in a java.io.UTFDataFormatException being thrown.  If you're 
using a 1.2 version (or earlier) JVM, then you should see this exception 
being raised somewhere rather than getting an empty string.

Mike

-- 
Mike Clark
Clarkware Consulting
Enterprise Java Architecture, Design, Development
http://www.clarkware.com


Greg Matthews wrote:

 dear all,
 
  
 
 we're got a strange problem whereby a large (141K) String return value 
 from a stateless session bean is turning up at the client as an empty 
 string.
 
  
 
 this happens whether we call the ejb method from a jsp or a java client 
 external to orion.
 
  
 
 it has also happened in other ejb methods during testing where a 
 master-detail type record suddenly stopped being retrievable when the 
 total size of all data in xml format as a String exceeded a certain size.
 
  
 
 is there an upper limit on the size of variables that can be serialised?
 
  
 
 does anyone have any ideas on why this might be happening?
 
  
 
 thanks,
 
 greg






Re: How to use jikes compiler?

2000-12-10 Thread Mike Clark

Download information for jikes is available at...

   http://alphaworks.ibm.com/tech/Jikes

Make sure the jikes executable is in your PATH, or fully qualify it's 
location in the "executable" tag of the server.xml file.

Mike


LouisVoo wrote:

 Hi,
I want to configure my orion to use jikes compiler to do some experiment,
 can anyone tell me how to do it?
 I modified the server.xml file, and did:
 compiler executable="jikes" classpath="../lib/rt.jar" /
 rt.jar is already in orion/lib directory, do I need to get jikes executable
 file?  where can I get it? And after that what to do?
 
 Thanks
 
 
 
 
 
 Regards,
 
 Louis
 ø¤°`°¤ø,¸¸¸,ø¤°`°¤ø,¸¸»«¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø
 
 - Original Message -
 From: "Santosh Kumar" [EMAIL PROTECTED]
 To: "Orion-Interest" [EMAIL PROTECTED]
 Sent: Friday, December 01, 2000 3:44 AM
 Subject: Re: class cast exception
 
 
 Try:
 PhoneEntryHome home = (PhoneEntryHome)
 PortableRemoteObject.narrow(boundObject,PhoneEntryHome.class);
 It should work fine.
 
 Regards,
 Santosh.
 
 - Original Message -
 From: Marcus Lankenau [EMAIL PROTECTED]
 To: Orion-Interest [EMAIL PROTECTED]
 Sent: Friday, December 01, 2000 3:51 PM
 Subject: class cast exception
 
 
 Hi!
 
 I've started developing a very simple phonebook application for
 learining purpose. The app consists of an ejb and a servlet adding and
 showing the phone entries. The servlet is running quite well at home,
 but in office I get
 this exception:
 Exception caught: java.lang.ClassCastException:
 PhoneEntryHome_EntityHomeWrapper14
 while casting the homeinterface:
Object boundObject = context.lookup("java:comp/env/ejb/PhoneEntry");
 
 PhoneEntryHome home = (PhoneEntryHome) boundObject;
 
 Any idears what is going wrong?
 
 
 thx in regards
 Marcus Lankenau
 
 
 
 

-- 
Mike Clark
Clarkware Consulting
Enterprise Java Architecture, Design, Development
http://www.clarkware.com 





RE: EJB Performance Question.

2000-11-14 Thread Mike Clark

If you're referring to the enable-call-by-reference tag, then indeed it
does do something (at lease in version 5.1).  Setting this tag to true
will effectively pass EJB method arguments and returned objects by
reference when called within the same JVM, rather than by value in
accordance with the EJB 1.1 specification.  This obviously increases
performance by eliminating the marshalling overhead, at the cost of
being non-spec compliant.

At any rate, for better or worse, in WebLogic call by reference is
enabled by default.  In other words, calls between servlets and EJBs in
the same JVM are optimized.

That said, don't let these optimizations pollute your EJB design. 
Having a well-defined and minimal remote contract is much more
portable, and generally easier to maintain and manage.  Moreover, you
may at some point in the future decide to separate the web server and
EJB container into separate JVMs. In general, EJB interface contracts
are specifically important to design correctly, as the invocation of
remote methods may in turn provoke life cycle methods, transactions,
etc.  

Mike


--- Tim Drury [EMAIL PROTECTED] wrote:
  At 10:03 14.11.00 , you wrote:
  Every single one of those calls to dir.getXXX() has to go across
  the network via RMI.  This is slow.  You are better off using a
  
  well, with orion this is intra-vm so its not that bad ...
 
 Is there proof that Orion does this?  I'm not trying to be a jerk,
 but I'd like to see some numbers on how long a set/get takes for
 a client-to-ejb call and an ejb-to-ejb (same vm) call.
 
 Not even Weblogic optimizes to pass-by-value for intra-vm ejb
 calls.  You have to use TopLink to get that optimization.
 Funny though, Weblogic provides a tag in their deployment 
 description but it doesn't do anything.
 
 -tim
 
 
 
 


__
Do You Yahoo!?
Yahoo! Calendar - Get organized for the holidays!
http://calendar.yahoo.com/




Re: DeadlockException

2000-11-14 Thread Mike Clark

Ah, nothing quite like two threads in a deadly embrace!  At least the
server detects the deadlock and prints some useful debug for deadlock
situations.

Try generating a VM dump using
  
   Windows: Ctrl Scroll Lock
   *nix   : kill -QUIT server process id

In general, you're looking for a thread in the MW state that has
already locked a monitor on which some other MW thread is trying to
synchronize.  

In your case, thread 5 and thread 6 are deadlocked, both waiting to
synchronize on a monitor held by the other.  The stack trace
information may help you determine where the deadlock is occurring.

Mike

--- Thomas Hertz [EMAIL PROTECTED] wrote:
 
 Hello,
 
 AC Does anyone know what the following error means?
 
 AC 11/14/00 10:51 PM Error in bean
 com.netregistry.aucom.accounting.BillingAccount:
 AC Error in ejbPassivate
 AC com.evermind.server.DeadlockException: Deadlock detected: thread
 11 is waiting for
 AC resource entity 1003 held by thread 11
 
 AC Any ideas on how to track it down?
 
 Just ten minutes before I read this message I encountered the same
 error in my application. (1.4.4)
 
 com.evermind.server.rmi.OrionRemoteException: Transaction was rolled
 back:
 com.evermind.server.DeadlockException: thread 6 is waiting for
 resource entity K-5
 held by thread 5 in transaction [Transaction
 4d:1:0:0:0:0:0:0:0:e2:0:e2:d4:67:89:da]
 who is waiting for resource entity E-6 held by thread 6 in
 transaction [
 Transaction 4a:1:0:0:0:0:0:0:0:e2:0:e2:d4:67:89:93]; nested exception
 is:
 
 I am not quite sure what that means exactly. Can anybody help us?
 
 Thanks in advance,
 
/Thomas
 
 -- 
 
 | /Thomas Hertz   |   [y] hybris GmbH | Software Engineering
 |
 | [EMAIL PROTECTED] | Schwere-Reiter-Strasse 35 | tel +49 89 306697- 0
 |
 | www.hybris.de   | Haus 16, D-80797 Muenchen | fax +49 89 306697-99
 |
 | pgp fingerprint: D070 5D86 BE2D C3AF E2CC D2D8 C29A 7F68 7407 629E
 |
 
 
 
 
 
 


__
Do You Yahoo!?
Yahoo! Calendar - Get organized for the holidays!
http://calendar.yahoo.com/




Re: DeadlockException

2000-11-14 Thread Mike Clark

For generating JVM dump on Windows, ctrl break and ctrl scroll lock work
equally well.

Mike

Scott Stirling wrote:

 Does Orion do more than check a timeout value for deadlock detection?  Some
 servers just assume a deadlock if a method call takes too long.  That's the
 simplest type of deadlock detection.

 Anyway, I use CtrlPause/Break to get a stack dump on Windows (i.e, I
 don't think CtrlScrLk will work, will it?). The Ctrl\ combo also
 works on both Windows and UNIX. A real stack dump from the JVM will tell you
 more about what K-5 and E-6 are, and show you a call stack for the two
 threads that are deadlocked.

 So did the Orion server print out that deadlock info, or was that somehow
 percolated from the JVM?  That's interesting.  You're extremely lucky if the
 JVM detects a deadlock for you, which it sometimes does.  Having spent many
 hours wading through stack dumps from problem apps and buggy JVMs, I think
 if you have the exact deadlock info like you do below (thread A is locking
 resource x and thread B is locking resource y, etc.) you're pretty darn
 fortunate.  Lots of times that deadlocks occur, JVMs don't detect it.

 Disable JIT when before you try to catch this in a stack dump, or else you
 won't be able to see the line numbers in the stack traces.

 Scott Stirling

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]]On Behalf Of Mike Clark
 Sent: Tuesday, November 14, 2000 2:23 PM
 To: Orion-Interest
 Subject: Re: DeadlockException

 Ah, nothing quite like two threads in a deadly embrace!  At least the
 server detects the deadlock and prints some useful debug for deadlock
 situations.

 Try generating a VM dump using

Windows: Ctrl Scroll Lock
*nix   : kill -QUIT server process id

 In general, you're looking for a thread in the MW state that has
 already locked a monitor on which some other MW thread is trying to
 synchronize.

 In your case, thread 5 and thread 6 are deadlocked, both waiting to
 synchronize on a monitor held by the other.  The stack trace
 information may help you determine where the deadlock is occurring.

 Mike

 --- Thomas Hertz [EMAIL PROTECTED] wrote:
 
  Hello,
 
  AC Does anyone know what the following error means?
 
  AC 11/14/00 10:51 PM Error in bean
  com.netregistry.aucom.accounting.BillingAccount:
  AC Error in ejbPassivate
  AC com.evermind.server.DeadlockException: Deadlock detected: thread
  11 is waiting for
  AC resource entity 1003 held by thread 11
 
  AC Any ideas on how to track it down?
 
  Just ten minutes before I read this message I encountered the same
  error in my application. (1.4.4)
 
  com.evermind.server.rmi.OrionRemoteException: Transaction was rolled
  back:
  com.evermind.server.DeadlockException: thread 6 is waiting for
  resource entity K-5
  held by thread 5 in transaction [Transaction
  4d:1:0:0:0:0:0:0:0:e2:0:e2:d4:67:89:da]
  who is waiting for resource entity E-6 held by thread 6 in
  transaction [
  Transaction 4a:1:0:0:0:0:0:0:0:e2:0:e2:d4:67:89:93]; nested exception
  is:
 
  I am not quite sure what that means exactly. Can anybody help us?
 
  Thanks in advance,
 
 /Thomas

--
Mike Clark
Clarkware Consulting
Enterprise Java Architecture, Design, Development
http://www.clarkware.com






Re: Get the web uploaded file

2000-11-12 Thread Mike Clark

Have a look at the com.oreilly.servlet.MultipartRequest utility class which
encapsulates the details of the file upload specification (RFC 1867) parsing
available here

http://www.servlets.com/resources/com.oreilly.servlet/index.html

An example servlet which uses this utility class is here...

http://www.servlets.com/jsp/examples/ch04/index.html#ex04_17

Mike


Storm Linux User wrote:

 At 15:00 12.11.00 , you wrote:
 It's not form commercial use. It's for my research project for getting my
 master's degree in Electrical Engineering ... I'm not concered about securety
 right now.

 then hack right on. will be fun. the security aspects of this could easily
 fill a chapter of your thesis if it fits your topic ;-).

 Thanks, Robert.

 The problem is that I'm not able to get the file that I uploaded using a HTML
 form like:

 form method="post" action="my_servlet"
 input type="file" name="my_class_file"
 input type="submit"
 /form

 How do I get the file in the servlet and make an object of it?

 I've tried:

 File f = (File)request.getAttribute("my_class_file");

 But it does not work. It compiles if I change to:

 Object obj = request.getAttribute("my_class_file");

 But then, how do I transform an Object to a File, and then, as the file is a
 compiled class, how do I create an instantiate this class to call some
 methods of it?

 Thanks again!
 []s
 Guilherme Ceschiatti
 [EMAIL PROTECTED]

--
Mike Clark
Clarkware Consulting
Enterprise Java Architecture, Design, Development
http://www.clarkware.com






Re: xml

2000-09-24 Thread Mike Clark

The reference to the DTD file in the line...

   !DOCTYPE Catolog SYSTEM "Catalog.dtd"

isn't resolvable by the XML parser probably because it doesn't exist in the
directory from which you started Orion.  You must either use an absolute file
specification or a valid URL.

Mike


Derek Akers wrote:

 I am having a problem parsing an xml file using the following code, trying
 to validate the enclosed xml files...

 i keep getting the following error:

 ** Parsing error, line 2, uri null
Relative URI "Catalog.dtd"; can not be resolved without a document URI.

 can anyone help?  sorry for the length...

 public boolean checkXML (String source) // source is a file name string
 passed from the web
  {
Document doc;
String path = "d:/orion/applications/eldan/eldan-web/xml/" + source;

   if (source == null)
System.out.println("\nValidator:checkXML: source string is null");

try
{
  DocumentBuilderFactory docBuilderFactory =
 DocumentBuilderFactory.newInstance();
  docBuilderFactory.setValidating(true);
  DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
  Validator v =  new Validator();

  FileInputStream xmlStream = new FileInputStream(path);

 // URL url = v.getClass().getResource(path);
 //   doc = docBuilder.parse (url.toString());

  doc = docBuilder.parse(xmlStream);
  valid = true;
  System.out.println("\nxml valid");

  } // end try
catch (SAXParseException err)
{
 System.out.println("exception 1");
 System.out.println ("** Parsing error"
 + ", line " + err.getLineNumber ()
 + ", uri " + err.getSystemId ());
System.out.println("   " + err.getMessage ());
 // print stack trace as below

   } // end catch 1
catch (SAXException e)
{
 System.out.println("exception 2");
 Exception x = e.getException ();
((x == null) ? e : x).printStackTrace ();
} // end catch 2
catch (Throwable t)
   {
 System.out.println("exception 3");
t.printStackTrace ();
   } // end catch 3
   return valid;
   } // end checkXML
 
 --
 Catalog.xml
 
 --
 ?xml version='1.0' encoding='UTF-8' ?
 !DOCTYPE Catolog SYSTEM "Catalog.dtd"
 Catolog
  Product ID = "1273"
   ProductNameAir Jordan/ProductName
   DescriptionThe best basketball shoe in town./Description
   Price140.99/Price
  /Product
  Product ID = "1274"
   ProductNameNike Zoom/ProductName
   DescriptionAn amazing crosstrainer./Description
   Price75.99/Price
  /Product
  Product ID = "1276"
   ProductNameAddidas Predator/ProductName
   DescriptionThe best aspect of soccer today./Description
   Price219.99/Price
  /Product
  Product ID = "1279"
   ProductNameAddidas Turbo/ProductName
   DescriptionThe lightweight shoe for the future./Description
   Price99.99/Price
  /Product
 /Catolog
 
 --
 Catalog.dtd
 
 --
 !ELEMENT Catalog  (Product+ )

 !ELEMENT Product  (ProductName , Description , Price )
 !ATTLIST Product  ID CDATA  #REQUIRED 
 !ELEMENT ProductName  (#PCDATA )
 !ATTLIST ProductName  e-dtype NMTOKEN  #FIXED 'string' 
 !ELEMENT Description  (#PCDATA )
 !ATTLIST Description  e-dtype NMTOKEN  #FIXED 'string' 
 !ELEMENT Price  (#PCDATA )
 !ATTLIST Price  e-dtype NMTOKEN  #FIXED 'fixed.14.4' 
 --------
 --

 Derek Akers

 Internet Application Developer
 Eldan Software, Toronto

 www.eldan.com

--
Mike Clark
Clarkware Consulting
Enterprise Java Architecture, Design, Development
http://www.clarkware.com






Re: I nee help Please Please

2000-09-08 Thread Mike Clark

The Orion Primer has step-by-step instructions for packaging and deploying a
J2EE application...

http://www.znerd.demon.nl/orion-primer/

Mike

[EMAIL PROTECTED] wrote:

 I'm getting mad because I don't know how to generate .ear and .jar(ejb). I
 have generated using deploytool from Sun, but I got an error from Orion with
 I generate a .jar and try to add it to .ear.
 Please Could someone tell me how could I generate ejb.jar and .ear (step by
 step)files very weel generated and without error.

 I have used Orion gui tool unsuccessfully

 Thank you very much for your help

 Michel

 ___
 Say Bye to Slow Internet!
 http://www.home.com/xinbox/signup.html

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Strange error with Netscape

2000-09-06 Thread Mike Clark

For what it's worth, I've seen this happen when the URL location parameter of
HttpResponse.sendRedirect() is null.

Mike

[EMAIL PROTECTED] wrote:

 In netscape, I am sometimes getting this error when posting to a page.  Any
 ideas?
 No problems in IE.

 HTTP/1.1 413 Request Entity Too Large Date: Wed, 06 Sep 2000 13:17:26
 GMT Server: Orion/1.3.1 Connection: Close Content-Type: text/html

 413 Request Entity Too Large

 James Birchfield

 Ironmax
 a better way to buy, sell and rent construction equipment
 5 Corporate Center
 9960 Corporate Campus Drive,
 Suite 2000
 Louisville, KY 40223

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Counter.jar

2000-09-06 Thread Mike Clark

I'm not familiar with this application, but based on your diagnosis, it appears
that the JNDI naming context used by your application is different than that
used by the (successful) servlet.  I'd start by looking at the initialization of
the JNDI context to verify that the naming properties are the same.

Mike

[EMAIL PROTECTED] wrote:

 I'm trying to use the counter.jar provided with the orion release.

 Following the instructions for deploying it with my app with one change (I
 also had to add "ejb-ref-typeEntity/ejb-ref-type" to web.xml), when I
 launch my app, I get a NaeNotFoundException when I call
 blah.getNextId("java"java:comp/env/ejb/Counter", "AccountEJB")). When I
 make the exact same call from my servlet, it works fine. I'm guessing it's
 some kind of permissions thing, but I don't have a clue as to where to look.
 Any ideas?

 Thanks,
 Bill

--
//////
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Autoencoding URLs

2000-09-05 Thread Mike Clark

You must explicitly encode the URL using...

   A href=servletResponse.encodeURL("management.jsp?id=%=ka%")
   %=user.getKaName(ka)%
   /A

Mike


--- "Werff, M.R. van der" [EMAIL PROTECTED] wrote:
 Hi,
 
 I'm trying to support browsers that don't have cookies enabled. The
 autoencoding of Orion works fine in most cases. It automatically
 appends
 ;jsessionid=EDGKOOGMNHNH to most URLs. It even works on URLs with a
 parameter: password.jsp?oper=modify becomes
 password.jsp?oper=modify;jsessionid=EDGKOOGMNHNH.
 
 So far so good. It does not work when I'm creating the links from
 information from a session bean:
 
   A href="management.jsp?id=%=ka%"%=user.getKaName(ka)%/A
 
 In that case I'm ending up with: management.jsp?id=midip without the
 ;jsessionid=EDGKOOGMNHNH part, and so the user is required to login
 again
 when accessing this link.
 
 Any help is appreciated.
 
 Cheers, Martin.
 
 
 
 Martin van der Werff
 KPN Research, PO Box 15000, 9700 CD Groningen, The Netherlands
 Tel (+31 50 58) 21005, Fax (+31 50) 3122415
 [EMAIL PROTECTED]
 
 
 
 
 
 


__
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/




Re: URLs in web apps

2000-09-02 Thread Mike Clark

Indeed it is.

Mike

Kevin Duffey wrote:

 HI,

 Is that a HTML 4.0 tag? I never saw that one before.

  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED]]On Behalf Of Mike Clark
  Sent: Friday, September 01, 2000 6:48 AM
  To: Orion-Interest
  Subject: Re: URLs in web apps
 
 
  Alternatively, you could use this syntax...
 
html
head
base href="%= request.getContextPath() %" /
/head
body
a href="file.jsp"click/a
/body
 
  In general, the servlet engine automatically maps the directory
  name to the
  application, but references to URLs from standard HTML tags are not
  automatically mapped.  When the base href tag is used, all
  relative URLs are
  resolved relative to this value.  If your application is mapped
  to the directory
  "myapp", then in the example above the href would reference
  "/myapp/file.jsp".
 
  Mike
 
  Kevin Duffey wrote:
 
   I think your ok..but I use the request.getContextPath() in a "included"
   header file on all my JSP pages. I assign it to a contextPath
  string var and
   use it in all my href tags a href="%= contextPath
   %/path/file.jsp"click/a
  
   But, I believe the spec allows relative paths to the root of
  the web app.
   So, if your root is /, and the dir is i3-web, and you have a linke to
   /path/page.jsp, it would be from /i3-web/path/page.jsp.
  
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Kurt Hoyt
Sent: Thursday, August 31, 2000 7:31 PM
To: Orion-Interest
Subject: URLs in web apps
   
   
I've noticed an inconsistency in how URLs are used within the
servlet engine
in Orion. Perhaps I've never had to deal with this since this
  is the first
servlet engine I've used that supports .war files, server.xml, web.xml
files, etc.
   
I have a web app that is deployed like this:
   
server.xml contains this line:
   application name="i3" path="../i3"/
   
default-web-site.xml contains this line:
   web-app application="i3" name="i3-web" root="/i3"/
   
application.xml contains these lines:
   /module
  web
 web-urii3-web/web-uri
 context-root//context-root
  /web
   /module
   
I expect that absolute URLs used anywhere in my JSPs (and
  that includes a
href="..", %@ include file="..." %, and
  response.sendRedirect() calls)
would look like this /i3/rest of URL. However, I've noticed that for
anything other than a href="..." tags, the /i3 is implied
  and all I need
is /rest of URL for absolute paths.
   
I have two questions:
1. What does the context-root element do? The servlet and JSP
  specs are
pretty vague about this.
   
2. Should I be calling request.getContextPath() and using it to create
absolute URLs for a href="..." tags or just try and use
  relative URLs
within the a href="..." tags?
   
Kurt in Atlanta
   
 
  --
  //
  //
  //  Mike Clark
  //
  //  Clarkware Consulting
  //  Enterprise Java Architecture, Design, Development
  //
  //  http://www.clarkware.com
  //  [EMAIL PROTECTED]
  //  +1.720.851.2014
  //
 
 
 

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: URLs in web apps

2000-09-01 Thread Mike Clark

Alternatively, you could use this syntax...

  html
  head
  base href="%= request.getContextPath() %" /
  /head
  body
  a href="file.jsp"click/a
  /body

In general, the servlet engine automatically maps the directory name to the
application, but references to URLs from standard HTML tags are not
automatically mapped.  When the base href tag is used, all relative URLs are
resolved relative to this value.  If your application is mapped to the directory
"myapp", then in the example above the href would reference "/myapp/file.jsp".

Mike

Kevin Duffey wrote:

 I think your ok..but I use the request.getContextPath() in a "included"
 header file on all my JSP pages. I assign it to a contextPath string var and
 use it in all my href tags a href="%= contextPath
 %/path/file.jsp"click/a

 But, I believe the spec allows relative paths to the root of the web app.
 So, if your root is /, and the dir is i3-web, and you have a linke to
 /path/page.jsp, it would be from /i3-web/path/page.jsp.

  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED]]On Behalf Of Kurt Hoyt
  Sent: Thursday, August 31, 2000 7:31 PM
  To: Orion-Interest
  Subject: URLs in web apps
 
 
  I've noticed an inconsistency in how URLs are used within the
  servlet engine
  in Orion. Perhaps I've never had to deal with this since this is the first
  servlet engine I've used that supports .war files, server.xml, web.xml
  files, etc.
 
  I have a web app that is deployed like this:
 
  server.xml contains this line:
 application name="i3" path="../i3"/
 
  default-web-site.xml contains this line:
 web-app application="i3" name="i3-web" root="/i3"/
 
  application.xml contains these lines:
 /module
web
   web-urii3-web/web-uri
   context-root//context-root
/web
 /module
 
  I expect that absolute URLs used anywhere in my JSPs (and that includes a
  href="..", %@ include file="..." %, and response.sendRedirect() calls)
  would look like this /i3/rest of URL. However, I've noticed that for
  anything other than a href="..." tags, the /i3 is implied and all I need
  is /rest of URL for absolute paths.
 
  I have two questions:
  1. What does the context-root element do? The servlet and JSP specs are
  pretty vague about this.
 
  2. Should I be calling request.getContextPath() and using it to create
  absolute URLs for a href="..." tags or just try and use relative URLs
  within the a href="..." tags?
 
  Kurt in Atlanta
 

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Inheritance

2000-09-01 Thread Mike Clark

There has been lively discussion on this topic in the ejb-interest
mailing list.  You can search the archives for inheritance here...

  http://archives.java.sun.com/archives/ejb-interest.html

EJB inheritance has some general restrictions, though I don't think
you'll find Orion to be the culprit.

In summary, here are the restrictions as imposed by the EJB spec:

  - Bean-managed EJBs must return a primary key for an ejbCreate()
method. Any class that inherits from the bean-managed EJB class cannot
have an ejbCreate() method that returns a different primary key class.
The restriction also applies to the bean-managed EJB's ejbFind()
method.  

  - Since EJB Home methods return a distinct remote interface, you
cannot have a Home interface inherit from another Home interface that
returns a different remote interface.  In other words, BankAcountHome
cannot extend AccountHome and attempt to return a BankAccount remote
interface for a finder method whereas the AccountHome will return an
Account remote interface.

You can, however, use inheritance in EJB beans to refactor common
business methods into a common superclass, and/or override base class
behavior. 

Mike

 
--- Kurt Hoyt [EMAIL PROTECTED] wrote:
 I know the EJB 1.1 and 2.0 specs avoid (finesse?) the issue of bean
 inheritance, but has anyone tried doing anything that mimics
 inheritance
 using Orion? If so, can you share how you accomplished it?
 
 I have an object model that uses inheritance. I started with a trial
 version
 of PowerTier from Persistence, which does support inheritance, but
 also
 costs two arms and a leg just for developer licenses, not to mention
 the
 wheelbarrows of cash needed to deploy it.
 
 Orion has cleared all but two hurdles for us in our evaluation:
 servlets (I
 haven't tried one yet, but JSPs work, so I'm pretty sure we're OK
 there) and
 "inheritance".
 
 Thanks.
 
 Kurt in Atlanta
 
 
 
 


__
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/




Using development=true

2000-08-30 Thread Mike Clark

Is anyone successfully using the development="true" option for web
applications where the web application classes and the non-web
application classes share the same root directory?

For example, if you have all your classes rooted in
d:/projects/com/xyz/, you can point the reloading classloader to this
directory by adding the following to the global-web-application.xml
file...

  orion-web-app
jsp-cache-directory="file:d:/orion/persistence/jsp"
servlet-webdir="/servlet"
development="true"
autoreload-jsp-beans="true"

classpath path="file:/d:/projects" / 
...
  /orion-web-app

The servlet engine will automatically compile and reload servlets (and
referenced beans) contained within this root directory that have been
edited.

However, if you add the same directory to the application.xml file, as
in...
   
   library path="file:/d:/projects" /

then the standard (non-reloading) classloader will take precedence over
the reloading classloader used by the web application, and edited
servlet files will no longer be reloaded.

I understand that I could break up my directory hierarchy into two
separate roots, for example

   d:/projects/apps/com/xyz/...
   d:/projects/web-apps/com/xyz/...

and use the d:/projects/apps in the application.xml and the
d:/projects/web-apps in the global-web-application.xml.  I also
understand that these apps could be deployed as separate JAR and WAR
files, but this isn't very convenient in development mode.  

It's common to root all classes in a single directory, so I'm
interested to hear how others may be tackling this problem.

Mike

__
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/




Re: RMI vs. HTTPTunneling

2000-08-28 Thread Mike Clark

RMI uses the Java Remote Method Protocol (JRMP) to wire the client and
server together, whereas HTTP tunneling proxies JRMP requests through
the HTTP protocol.  HTTP tunneling allows RMI requests to be served from
the far side of a firewall.

Mike

Roman Kagan wrote:

 Hi!

 Maybe someone knows:

 What the difference in RMI vs. HTTPTunnelling ?

 Sincerely,

 Roman Kagan







Re: Deploying without a .war file

2000-08-25 Thread Mike Clark

Indeed, you can "expand" the WAR file structure using directories and
sub-directories, and then point to the root directory of the web application in
your server.xml file, as in...

application name="mywebapp" path="file:c:/projects/mywebapp/" /

which points to a directory structure like

c:/projects/mywebapp/WEB-INF/web.xml
c:/projects/mywebapp/WEB-INF/classes/...
c:/projects/mywebapp/index.html
c:/projects/mywebapp/login.jsp

This makes it much easier during development than manipulating files in the
.war file itself.

Mike

Kurt Hoyt wrote:

 I'd like to develop my web app without having to package everything up into
 a .war file or .ear file first. Is this possible with Orion? My reading of
 the docs seems to imply that it isn't.

 Also, can the various applications "talk" to each other? Can one web app,
 for example, use EJBs from another application?

 Kurt in Atlanta

--
//////
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: 100% processor load with SSL (URGENT PROBLEM)

2000-08-24 Thread Mike Clark

Yep, I've seen this same problem using Netscape with an HTTP POST when
initiating the SSL session.  IE doesn't seem to suffer from the same
problem.  I'm unaware of any work-around.

We're patiently waiting for production SSL support, but currently you
can't get a production certificate for Orion.  The Orion team claims to be
working with Thawte (VeriSign) to ensure that a certificate will be
available in the future.

Mike

Porfiriev Sergey wrote:

 I've got troubles using SSL with orion
 (windows NT sp6 platform, JDK 1.3 ),
 after SSL usage CPU usage goes to 100% even on my dual P3-800 (even no
 request are serving)
 ( This not happends immediate, but always after some times )
 Orion 1.1.37
 Orion 1.2

 Is there some workarounds?

 PS: what about getting certificate for production SSL with Orion?
 Where can i get it.





Re: Help - SSL Usage in Production - is it really possbile?

2000-08-23 Thread Mike Clark

Unfortunately, that cert is no longer available from Thawte.  We're still out of
business with Orion using a production SSL certificate.

What gives?

Mike

Mattias Arbin wrote:

 I have Orion running with a "real" 40-bit cert from Thawte.
 I guess it does not matter which web-server you say you have. Probably it is
 for statistics. (I chose Java Webserver).
 You will be able to choose from a number of different formats when you
 download the cert.
 Here I chose "PKCS #7 Certificate Chain". Make sure that you save it in a
 file that ends with a new line before importing it to the keystore.
 Good luck.
 /Mattias

 - Original Message -
 From: "Mike Fontenot" [EMAIL PROTECTED]
 To: "Orion-Interest" [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Friday, August 18, 2000 10:50 PM
 Subject: Help - SSL Usage in Production - is it really possbile?

  orion users,
 
  I've been using the test certificate from Thawte, as both the orion docs.
  and the OrionSupport suggested. That has been working fine. However, I am
  now ready to move to production with our e-commerce system and I have run
  into some major snags that leads me to think NO one is using Orion in a
  production SSL environment.
 
  After going through the Thawte process for getting a server cert, the
 'pick
  your web server' does not list Orion. After talking with Thawte support
 they
  suggested picking 'Apache SSL' as a choice. Ok, that seems fine to me.
  However, they also said I would need to pick the certificate type: x509v3.
 
  Since I've been using the 'SSL Chained CA Cert' for development, I wanted
 to
  try this out with a development cert to be sure it would work. I tried
 this
  using a X509v3 development cert but it will not work. Again, after getting
  back in touch with Thawte support regarding X509v3 not working, I said I
  will need to just use the 'SSL Chained CA Cert'.  They then informed me
 that
  they no longer sell this type of certificate, and that I must go to
 Verisign
  to obtain this type of certificate. Well, my first question to Thawte was
  'If you dont sell this type of certificate, why is it available on your
  developers cert pages?' Answer from Thawte: 'Yeah, I've been meaning to
 talk
  to our developers to take that off the website.'.
 
  Guess how much hair I've lost so far!?  Now I am in the 'process' of
 getting
  a certificate from Verisign. Of course they do not have 'Orion Server'
  listed in their pick list of valid webservers. Since I just started this
  process today I really dont know if they can/cannot support the type of
 SSL
  certificate I will need to work with Orion.
 
  I'll be the first to admit I'm not real familiar with the Java 1.3
 keytool,
  and different certificate meanings. But, if anyone has really obtained a
  valid production level SSL certificate, from any Certificate Authority,
 and
  successfully integrated this with Orion, please let me/us know how this
 was
  accomplished. The only docs I've see are related to development certs, and
  as I stated earlier, I've got this working fine. I now need to graduate to
  real e-commerce transactions. Please dont make me go back to Apache/JRun,
 I
  feel Orion is so much better but this is a real show-stopper. I have
 looked
  through the orion mail archives and it seems all discussions are related
 to
  trying to get the developer certs to work, not production certs.
 
  Thanks in advance,
  Mike
 
  
  Mike Fontenot - Object Systems Architect
  BrandMatrix, Ltd.
  Golden, Colorado
  
 

--
//////
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Help - SSL Usage in Production - is it really possbile?

2000-08-23 Thread Mike Clark

Any idea when we'll be able to get a production cert?

Mike

--- Karl Avedal [EMAIL PROTECTED] wrote:
 Hello Mike,
 
 We're currently making sure that Thawte will have an Orion option for
 the purchase
 to make it easier to get a cert (and we'll work with Verisign too).
 
 We are also creating a guide to show how you can get a 128 bit or 40
 bit production
 license.
 
 Regards,
 Karl Avedal
 
 Mike Clark wrote:
 
  Unfortunately, that cert is no longer available from Thawte.  We're
 still out of
  business with Orion using a production SSL certificate.
 
  What gives?
 
  Mike
 
  Mattias Arbin wrote:
 
   I have Orion running with a "real" 40-bit cert from Thawte.
   I guess it does not matter which web-server you say you have.
 Probably it is
   for statistics. (I chose Java Webserver).
   You will be able to choose from a number of different formats
 when you
   download the cert.
   Here I chose "PKCS #7 Certificate Chain". Make sure that you save
 it in a
   file that ends with a new line before importing it to the
 keystore.
   Good luck.
   /Mattias
  
   - Original Message -
   From: "Mike Fontenot" [EMAIL PROTECTED]
   To: "Orion-Interest" [EMAIL PROTECTED]
   Cc: [EMAIL PROTECTED]
   Sent: Friday, August 18, 2000 10:50 PM
   Subject: Help - SSL Usage in Production - is it really possbile?
  
orion users,
   
I've been using the test certificate from Thawte, as both the
 orion docs.
and the OrionSupport suggested. That has been working fine.
 However, I am
now ready to move to production with our e-commerce system and
 I have run
into some major snags that leads me to think NO one is using
 Orion in a
production SSL environment.
   
After going through the Thawte process for getting a server
 cert, the
   'pick
your web server' does not list Orion. After talking with Thawte
 support
   they
suggested picking 'Apache SSL' as a choice. Ok, that seems fine
 to me.
However, they also said I would need to pick the certificate
 type: x509v3.
   
Since I've been using the 'SSL Chained CA Cert' for
 development, I wanted
   to
try this out with a development cert to be sure it would work.
 I tried
   this
using a X509v3 development cert but it will not work. Again,
 after getting
back in touch with Thawte support regarding X509v3 not working,
 I said I
will need to just use the 'SSL Chained CA Cert'.  They then
 informed me
   that
they no longer sell this type of certificate, and that I must
 go to
   Verisign
to obtain this type of certificate. Well, my first question to
 Thawte was
'If you dont sell this type of certificate, why is it available
 on your
developers cert pages?' Answer from Thawte: 'Yeah, I've been
 meaning to
   talk
to our developers to take that off the website.'.
   
Guess how much hair I've lost so far!?  Now I am in the
 'process' of
   getting
a certificate from Verisign. Of course they do not have 'Orion
 Server'
listed in their pick list of valid webservers. Since I just
 started this
process today I really dont know if they can/cannot support the
 type of
   SSL
certificate I will need to work with Orion.
   
I'll be the first to admit I'm not real familiar with the Java
 1.3
   keytool,
and different certificate meanings. But, if anyone has really
 obtained a
valid production level SSL certificate, from any Certificate
 Authority,
   and
successfully integrated this with Orion, please let me/us know
 how this
   was
accomplished. The only docs I've see are related to development
 certs, and
as I stated earlier, I've got this working fine. I now need to
 graduate to
real e-commerce transactions. Please dont make me go back to
 Apache/JRun,
   I
feel Orion is so much better but this is a real show-stopper. I
 have
   looked
through the orion mail archives and it seems all discussions
 are related
   to
trying to get the developer certs to work, not production
 certs.
   
Thanks in advance,
Mike
   

Mike Fontenot - Object Systems Architect
BrandMatrix, Ltd.
Golden, Colorado

   
 
  --
  //////
  //
  //  Mike Clark
  //
  //  Clarkware Consulting
  //  Enterprise Java Architecture, Design, Development
  //
  //  http://www.clarkware.com
  //  [EMAIL PROTECTED]
  //  +1.720.851.2014
  //
 
 
 
 
 


__
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/




Re: http session timeouts

2000-08-21 Thread Mike Clark

Checking for the existence of a marker object in the HTTP session is a very
common security pattern.

Mike

Todd McGrath wrote:

 The site I'm working has a custom login component where users must have
 a valid username/ password combination.  I would like to redirect or
 present a user with a message when a Http session timeout has
 occurred.   You know, "your session has expired, so you must re-login"
 message or something similar.

 I'm in the beginning stages of the code.  So far, the app stores certain
 information about the user in a http session Java Bean, so I'm thinking
 of checking for the existence of this bean in a Controller servlet to
 determine if the Http session has timed out:

 if (javabean == null) {
   String message = "Your session has timed out, please login again";

 }
 else ...

 Any opinions on this?  (including other, better ways to achieve this
 functionality)

 -Todd

--
//////
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






RE: about versions

2000-08-21 Thread Mike Clark

Or, since you already have an existing version, just use the very
cool...

   java -jar autoupdate.jar

Mike

--- JavierG [EMAIL PROTECTED] wrote:
 Version 1.0.3 is the last stable version available, 1.2.* are
 experimental
 and yes, you can find them in the Orion, only that when downloading
 do not
 click in the "binaries" link, go to "Download" and there you will
 find what
 you're looking for.
 Hope this help...
J


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]]On Behalf Of Mikael
 Andréasson
 Sent: Monday, August 21, 2000 10:39 AM
 To: Orion-Interest
 Subject: about versions

 Hi!

 I wonder about the new versions of Orion. I noticed that a lot of the
 people
 here on the list talk about version 1.2.* and so on...and I only have
 version 1.0.3b, because thats the only one i could find on the site
 orionserver.com.

 Are the versions above 1.0.* just for commercial use or whats the
 story?

 Regards
 Mikael Andréasson







__
Do You Yahoo!?
Yahoo! Mail – Free email you can access from anywhere!
http://mail.yahoo.com/




Re: url rewrite parameter

2000-08-18 Thread Mike Clark

According to the orion-web.dtd, you can add this element to the
global-web-application.xml (or equivalent)...

session-tracking autoencode-absolute-urls="true"
autoencode-urls="true" /

Mike

Terence Kwan wrote:

 anybody know how to turn on the URL rewrite option in the orion server?

 Thanks

 TK





Re: Orion and CachedRowSet

2000-08-08 Thread Mike Clark

The constructor for CachedRowSet requires that jndi.jar is in your
CLASSPATH.  This may be the NoClassDefFoundException you're
experiencing.

Mike

--- John Sinnott [EMAIL PROTECTED] wrote:
 I'm having an interesting problem attempting to get Sun's
 CachedRowSet
 working with Orion.  I have downloaded rowset.jar, placed it in my
 classpath, can compile my classes which use the CachedRowSet, however
 when
 my program tries to instantiate a CachedRowSet call during runtime, I
 get a
 NoClassDefFoundException.  I don't understand why under Orion, this
 class
 can not be instantiated.  I have verified multiple times that the
 classpath
 and import statements are correct.  Any ideas?
 
 Thanks,
 John
 
 
 
 
 


__
Do You Yahoo!?
Kick off your party with Yahoo! Invites.
http://invites.yahoo.com/




Re: DTD usage

2000-08-07 Thread Mike Clark

If you're truly seeing an XSL error, then somewhere along the line an XSL
transformation is being attempted on your XML before displaying it in the
browser.  I'm assuming you're using the XSL servlet in Orion?!

Mike

Olaf Mersmann wrote:

 I have a DTD named page.dtd and a file page1.xml
 If I add a !DOCTYPE page SYSTEM "page.dtd to page1.xml and put page.dtd
 in the same directory as page1.xml and make it world readable and then try
 to access page1.xml I get an XSL paresing error. What am I doing wrong?

   Thanks in advance.
Olaf Mersmann







Re: Begging for Help: EJB Deployment in Orion Server 1.0

2000-08-07 Thread Mike Clark

The Orion Primer provides an introduction to deploying EJBs with
Orion...

   http://www.znerd.demon.nl/orion-primer/

Mike

--- Ray Harrison [EMAIL PROTECTED] wrote:
 Hello: (I am quite new - forgiveness and patience please!)
 
 I am working with Monson-Haefel's EJB book and am trying to figure
 out a way to deploy the
 example EJBs to the Orion Server (1.0). I have seen a number of
 postings on the subject 
 (deployment of EJBs) but have seen few, if any, answers. I would like
 to ask for, nay
 beg for, some answers. I am quite new at EJBs but making rapid
 progress and would like
 to continue learning w/o being bogged down by the well-known poor
 docs of Orion. I have
 successfully deployed EJBs in Sybase's Jaguar CTS (I guess it's EA
 Server, now).
 
 Does ANYONE have suggestions on deployment of EJBs. Has anyone
 successfully deployed
 the Monson-Haefel EJBs in Orion? I have the JAR file and the
 ejb-jar.xml file.
 I take the these and do what, exactly?
 
 Any help is greatly appreciated
  
 
 __
 Do You Yahoo!?
 Kick off your party with Yahoo! Invites.
 http://invites.yahoo.com/
 
 
 
 


__
Do You Yahoo!?
Kick off your party with Yahoo! Invites.
http://invites.yahoo.com/




Re: Faster deployment?

2000-08-03 Thread Mike Clark

What specifically is creating a drag on your deployment time?

I use a Makefile which creates the .ear file, and once the .ear file is
"touched", the server re-deploys the application at blazing speed.

Mike

--- Anders Bengtsson [EMAIL PROTECTED] wrote:
 Hello,
 
 Does anyone have any ideas for how to make .ear deployment go faster?
 
 We're doing a lot of testing during development. Our test script
 re-deploys the entire application before running the test suite, so
 the
 deployment speed is really important for us.
 
 Using Jikes as the EJB and JSP compiler made a great difference, but
 there must be other ways to shorten deployment time?
 
 /Anders


 A n d e r s  B e n g t s s o n
 [EMAIL PROTECTED]
 http://www.natakademin.se/
 
 
 
 


__
Do You Yahoo!?
Kick off your party with Yahoo! Invites.
http://invites.yahoo.com/




Re: How do you like Orion?

2000-08-03 Thread Mike Clark

It's unfortunate that folks are willing to fork over tens of thousands of dollars for 
similar products while casting a skeptical eye on products that are more realistically 
priced.  It's a high-powered application server, not a Mercedes!  We've somehow been 
brainwashed into thinking that application servers should be expensive, both for 
development and
production, and along the way the notion of quality has gone by the wayside.

At any rate, Orion is an outstanding product, at a reasonable price, and I'd highly 
recommend that you kick its tires.

Mike



Charles Fausz wrote:

 Hi there busy people, I'll be quick.

 We're in the research stage, we've chosen JBuilder for our Java tool, now we've got 
to find an application server.  Our development platform will be NT.  My boss wants 
to use MS IIS and MTS, but I'd like to stay away from MS if possible.  So... how do 
you like working with Orion App server?  Would you recommend it to others?  Anything 
we should know about it?

 I'm concerned about how cheap it is, is there something hidden here?  Will I get 
what I pay for?  Thanks for any input.  Have a nice day!

 Phil

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//






Re: Latest Version

2000-08-02 Thread Mike Clark

You can download version 1.1.24 and then use...

java -jar $ORION_HOME/autoupdate.jar

This will update the installation to 1.1.30+.

Mike


Adam Cassar wrote:

 I have noticed on previous postings talk about Orion v1.1.30. Where
 does one get this version? The WWW site only has 1.1.24

 --

 Adam Cassar
 Senior Web Developer
 ___
 NetRegistry http://www.netregistry.au.com
 Tel: +61 2 9699 6099 | Fax: +61 2 9699 6088
 PO Box 270 Broadway NSW 2007 Australia

--
//
//
//  Mike Clark
//
//  Clarkware Consulting
//  Enterprise Java Architecture, Design, Development
//
//  http://www.clarkware.com
//  [EMAIL PROTECTED]
//  +1.720.851.2014
//