Return-Path: Delivered-To: apmail-geronimo-user-archive@www.apache.org Received: (qmail 11483 invoked from network); 15 Aug 2007 15:48:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Aug 2007 15:48:21 -0000 Received: (qmail 11462 invoked by uid 500); 15 Aug 2007 15:48:16 -0000 Delivered-To: apmail-geronimo-user-archive@geronimo.apache.org Received: (qmail 11428 invoked by uid 500); 15 Aug 2007 15:48:16 -0000 Mailing-List: contact user-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: user@geronimo.apache.org List-Id: Delivered-To: mailing list user@geronimo.apache.org Received: (qmail 11417 invoked by uid 99); 15 Aug 2007 15:48:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Aug 2007 08:48:16 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jeervin@gmail.com designates 64.233.162.237 as permitted sender) Received: from [64.233.162.237] (HELO nz-out-0506.google.com) (64.233.162.237) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Aug 2007 15:48:12 +0000 Received: by nz-out-0506.google.com with SMTP id m7so760164nzf for ; Wed, 15 Aug 2007 08:47:51 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=LhDUZBOGkzIGvU8QNt1j/UwbN6dd8/47kTLD5v0bi4h6rKMNdZ7fpb0v17G8LVNWDn0zdpLZ4nFDaU+4SPZgHTDSHmNWuyD1SdQK8oSqK+FQO8Vui7b1VYMAhGVtkr0jwVapEY7QsFE9sm+rF4clVQ7cO4Iuiqr1Va4WtqUwcDk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=En/xE5Y63w4ME7wkODIRhOjVHrKeB6y/duJEDpFAYm584kAeYibwe3AgQ46VojrsYI0u7i80yrngCUGpAebBCoH1ncYvVf+2qXTHEuKWMa+L56TJpT7MZyE9BEFMIG2jgKJRstDPwpnYx+iG9+jE7oSHWnjjNbeJppxwmPsV9Vs= Received: by 10.114.198.1 with SMTP id v1mr680926waf.1187192870049; Wed, 15 Aug 2007 08:47:50 -0700 (PDT) Received: by 10.115.76.2 with HTTP; Wed, 15 Aug 2007 08:47:49 -0700 (PDT) Message-ID: <38f47a240708150847s6ac30d1dibe149d3c7ee51952@mail.gmail.com> Date: Wed, 15 Aug 2007 08:47:49 -0700 From: "James Ervin" To: user@geronimo.apache.org, shivahr@gmail.com Subject: Re: Help with the Geronimo Eclipse Plugin In-Reply-To: <38f47a240708130843r58fa850bnbe4ccd62c5d5185a@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_71572_2442587.1187192869917" References: <38f47a240708062011h498fbf3by27f29676d1663777@mail.gmail.com> <46B886BA.8020305@gmail.com> <38f47a240708070816y53d76c8cwe6d5357fa67ecc57@mail.gmail.com> <46BA8949.6020305@gmail.com> <38f47a240708090614g780284a9v5aa1b375a149c378@mail.gmail.com> <5da94e5a0708130700kba1afe7xd72ae8a41d62daf7@mail.gmail.com> <38f47a240708130835m7a2f6d3em1e30d76c8c05ac6e@mail.gmail.com> <38f47a240708130843r58fa850bnbe4ccd62c5d5185a@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_71572_2442587.1187192869917 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I was just following up to see if anyone saw any side effects from considering the resolved classpath of a java project instead of just the raw classpath? Thanks, James On 8/13/07, James Ervin wrote: > > I was looking at the method a bit and it seems as though the only > classpath container that is recognized is the maven classpath container. > Perhaps by using the resolved classpath or by removing the if statement that > checks for the maven classpath container exclusively would be enough. Maybe > the code could be simplified by using getResolvedClasspath() since I don' t > think you would need to call a resolveVarOrLibEntry() method anymore. > > Thanks for pointer btw... You brightened my morning.... > > Thanks, > James > > On 8/13/07, James Ervin < jeervin@gmail.com> wrote: > > > > Oh that would be awesome.... thanks.... please let me know of your > > results ASAP. > > > > Thanks, > > James > > > > On 8/13/07, Shiva Kumar H R < shivahr@gmail.com> wrote: > > > > > > Hi James, > > > Looks like this is what you are looking for (I hit across this by > > > searching for "getRawClasspath" in plug-in source): > > > "processJavaProject() method of > > > org.apache.geronimo.st.core.operations.SharedLibEntryCreationOperation.javain plugins/org.apache.geronimo.st.core" > > > > > > Now seeing if changing this to getResolvedClasspath (as you suggest), > > > would lead to any side effects. > > > > > > - Shiva > > > > > > On 8/9/07, James Ervin wrote: > > > > > > > > > > > > > > > > On 8/8/07, Tim McConnell < tim.mcconne@gmail.com> wrote: > > > > > > > > > > Hi again James, Sorry for the delay but I've been trying to fully > > > > > understand > > > > > what you're trying to accomplish. Have you considered using the > > > > > shared lib > > > > > support that is already provided by the Geronimo plugin > > > > > publish/deploy > > > > > functionality ?? If I correctly understand what you're trying to > > > > > accomplish the > > > > > shared lib support should work for you. It's not obvious to me > > > > > though why you > > > > > are so adverse to using the built-in publish/deploy capabilities > > > > > of the plugin. > > > > > Finally, have you considered upgrading to the latest versions of > > > > > Geronimo and > > > > > the plugin ?? Geronimo 2.0 is currently being voted on for > > > > > release, and the > > > > > plugin will be voted on for release shortly thereafter. Just > > > > > curious. Thanks > > > > > much.... > > > > > > > > > > > > Thanks for the reply, I actually am using a Publish Operation to set > > > > the shared library support, so yes I am using some of that support. The > > > > issue I am having is the fact that when the Geronimo plugin is computing the > > > > .eclipse.jar manifest for the ${GERONIMO_HOME}/shared/lib > > > > directory, it seems to only consider the raw classpath from the Eclipse > > > > JDT. In other words, it appears almost as though its using > > > > org.eclipse.jdt.core.IJavaProject.getRawClasspath() instead of > > > > org.eclipse.jdt.core.IJavaProject.getResolvedClasspath(). I say > > > > almost, because it will resolve Classpath Variable entries. The net effect > > > > is that I have to hard code entries in the .classpath file for each jar file > > > > I want in that manifest, but that is what classpath containers are supposed > > > > to help you with. > > > > > > > > I have considered it, but the circumstances are such that I have to > > > > use what I am given so far. I will look at version 2.0 and the > > > > latest from the plugin, but that leads me to one of my earlier questions in > > > > my first post. Where in the plugin do I look for where it is computing the > > > > manifest for the .eclipse.jar? I have to admit I am a bit of > > > > a newbie when it comes to EMF (I'm not sure that I hate it, but I have yet > > > > to see what I really like about it. The idea seems very interesting, but I > > > > am not crazy about the results I have seen so far) and well the Geronimo > > > > Plugin source tree seems almost as big as WTP's at this point, so any > > > > pointers would be most appreciated. > > > > > > > > Thanks, > > > > James > > > > > > > > James Ervin wrote: > > > > > > Tim, > > > > > > Thanks for the reply. Reviewing the plugins installed it looks > > > > > as > > > > > > though the plugin is at version 1.0.0 with the > > > > > > org.apache.geronimo.runtime.v1 plugin at version 1.0.1. Hmm I > > > > > don't see > > > > > > a feature. I am not quite sure the version of geronimo. It > > > > > comes > > > > > > bundled and is installed by a script so I am not entirely sure > > > > > of the > > > > > > version. My educated guess is that it is at version 1.2. The > > > > > version > > > > > > of WTP is 1.5.x. > > > > > > > > > > > > Its not straightforward to offer a sample app, since I can't > > > > > really > > > > > > offer up my plugin, so I will describe it. > > > > > > > > > > > > When you add a project dependency for a web app, I noticed that > > > > > the > > > > > > Geronimo Eclipse plugin will generate a jar file in the > > > > > > ${GERONIMO_HOME}/shared/lib directory with the name > > > > > > ${PROJECT_NAME}.eclipse.jar. In that jar there is a manifest > > > > > that is > > > > > > pointing at the java source output directories for the web app > > > > > project > > > > > > and the output directories for any project dependencies. It > > > > > would be > > > > > > nice to customize that, but that is just fine for now. The > > > > > shared/lib > > > > > > directory is also where I generate a jar file that contains a > > > > > manifest > > > > > > describing the set of shared libraries that all deployed web > > > > > apps will > > > > > > share. > > > > > > > > > > > > If I add a classpath entry directly in the .classpath file for a > > > > > library > > > > > > jar dependency, it will show in the ${PROJECT_NAME}.eclipse.jar > > > > > just > > > > > > fine. The problem comes in that I want to use a classpath > > > > > container to > > > > > > resolve library dependencies and not have to manage entries > > > > > directly in > > > > > > the .classpath file. Even when the container resolves down to a > > > > > set of > > > > > > flat jar files, it does not matter. It seems that the plugin > > > > > does not > > > > > > check the resolved classpath of a java project and only checks > > > > > the raw > > > > > > classpath. Shouldn't it construct the classpath by checking all > > > > > project > > > > > > dependencies and by using the resolved, and not raw, classpath? > > > > > > > > > > > > I am faced with a significant rewrite right now if I cannot > > > > > figure out a > > > > > > solution, any help would be really appreciated. > > > > > > > > > > > > Thanks, > > > > > > James > > > > > > > > > > > > On 8/7/07, * Tim McConnell* < tim.mcconne@gmail.com > > > > > > > wrote: > > > > > > > > > > > > Hi James, which version of Geronimo and the Geronimo plugin > > > > > are you > > > > > > using ?? > > > > > > Also, do you have an example test app that you could attach > > > > > that > > > > > > demonstrates > > > > > > the failure ?? > > > > > > > > > > > > James Ervin wrote: > > > > > > > Hello, > > > > > > > I am a developer working on an Eclipse plugin attempting > > > > > to use > > > > > > WTP to > > > > > > > help ppl write Service Based web apps. Why am I asking a > > > > > question on > > > > > > > the geronimo user group? Well because I am attempting to > > > > > use Apache > > > > > > > Geronimo as the primary J2EE container. > > > > > > > > > > > > > > My problem is this, I need to be able to deploy libraries > > > > > (yes I > > > > > > know > > > > > > > about the PublishOperation and that I can generate a jar > > > > > with a big > > > > > > > manifest file enumerating all shared libraries) that are > > > > > only used by > > > > > > > one particular web app or dependent web app. So I have a > > > > > classpath > > > > > > > container, the trouble is that the Apache Geronimo plugin > > > > > that I have > > > > > > > access to does not seem to care about entries in > > > > > classpath > > > > > > containers, > > > > > > > only those that are directly enumerated in a .classpath > > > > > file (bad > > > > > > form > > > > > > > IMHO). > > > > > > > > > > > > > > I have attempted to deploy libs into > > > > > WebContent/WEB-INF/lib, but on > > > > > > > windows WTP ( or some plugin ) keeps the bloody file lock > > > > > and > > > > > > will not > > > > > > > let me update or delete it. I even attempted to deploy > > > > > the libs > > > > > > to a > > > > > > > separate directory and then told WTP via a > > > > > tag in > > > > > > the WST > > > > > > > common component configuration file where to find > > > > > it. The lib > > > > > > showed up > > > > > > > in the list of WebApp Libraries, but then when deployed > > > > > to > > > > > > Geronimo it > > > > > > > was not recognized. > > > > > > > > > > > > > > I have tried this and a few other combinations. The only > > > > > one > > > > > > that has > > > > > > > worked is if I create a new shared lib entry jar (bad > > > > > form since > > > > > > not all > > > > > > > web apps on the container will want the given set of > > > > > libraries) > > > > > > or if I > > > > > > > enumerate the libraries one by one directly in the > > > > > .classpath > > > > > > (classpath > > > > > > > containers anyone?). > > > > > > > > > > > > > > Is there anyway to make the plugin respect the classpath > > > > > > container? Or > > > > > > > at least give me a clue through the bloody EMF wilderness > > > > > as to > > > > > > where in > > > > > > > the plugin the deployment configuration is determined so > > > > > that I can > > > > > > > consider my options (you know like a patch...)? I am at > > > > > my wits end, > > > > > > > any help would be most appreciated. > > > > > > > > > > > > > > Thanks, > > > > > > > -- > > > > > > > James E. Ervin > > > > > > > > > > > > > > A human being should be able to change a diaper, plan an > > > > > invasion, > > > > > > > butcher a hog, conn a ship, design a building, write a > > > > > sonnet, > > > > > > balance > > > > > > > accounts, build a wall, set a bone, comfort the dying, > > > > > take > > > > > > orders, give > > > > > > > orders, cooperate, act alone, solve equations, analyze a > > > > > new problem, > > > > > > > pitch manure, program a computer, cook a tasty meal, > > > > > fight > > > > > > efficiently, > > > > > > > die gallantly. Specialization is for insects. > > > > > > > -Robert A. Heinlein > > > > > > > > > > > > > > Blog: http://iacobus.blogspot.com > > > > > > > > > > > > -- > > > > > > Thanks, > > > > > > Tim McConnell > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > James E. Ervin, IV > > > > > > > > > > > > A human being should be able to change a diaper, plan an > > > > > invasion, > > > > > > butcher a hog, conn a ship, design a building, write a sonnet, > > > > > balance > > > > > > accounts, build a wall, set a bone, comfort the dying, take > > > > > orders, give > > > > > > orders, cooperate, act alone, solve equations, analyze a new > > > > > problem, > > > > > > pitch manure, program a computer, cook a tasty meal, fight > > > > > efficiently, > > > > > > die gallantly. Specialization is for insects. > > > > > > -Robert A. Heinlein > > > > > > > > > > > > Blog: http://iacobus.blogspot.com > > > > > > > > > > -- > > > > > Thanks, > > > > > Tim McConnell > > > > > > > > > > > > > > > > > > > > > -- > > > > James E. Ervin, IV > > > > > > > > A human being should be able to change a diaper, plan an invasion, > > > > butcher a hog, conn a ship, design a building, write a sonnet, balance > > > > accounts, build a wall, set a bone, comfort the dying, take orders, give > > > > orders, cooperate, act alone, solve equations, analyze a new problem, pitch > > > > manure, program a computer, cook a tasty meal, fight efficiently, die > > > > gallantly. Specialization is for insects. > > > > -Robert A. Heinlein > > > > > > > > Blog: http://iacobus.blogspot.com > > > > > > > > > > > > > > > > -- > > James E. Ervin, IV > > > > A human being should be able to change a diaper, plan an invasion, > > butcher a hog, conn a ship, design a building, write a sonnet, balance > > accounts, build a wall, set a bone, comfort the dying, take orders, give > > orders, cooperate, act alone, solve equations, analyze a new problem, pitch > > manure, program a computer, cook a tasty meal, fight efficiently, die > > gallantly. Specialization is for insects. > > -Robert A. Heinlein > > > > Blog: http://iacobus.blogspot.com > > > > > > -- > James E. Ervin, IV > > A human being should be able to change a diaper, plan an invasion, butcher > a hog, conn a ship, design a building, write a sonnet, balance accounts, > build a wall, set a bone, comfort the dying, take orders, give orders, > cooperate, act alone, solve equations, analyze a new problem, pitch manure, > program a computer, cook a tasty meal, fight efficiently, die gallantly. > Specialization is for insects. > -Robert A. Heinlein > > Blog: http://iacobus.blogspot.com > -- James E. Ervin, IV A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. -Robert A. Heinlein Blog: http://iacobus.blogspot.com ------=_Part_71572_2442587.1187192869917 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I was just following up to see if anyone saw any side effects from considering the resolved classpath of a java project instead of just the raw classpath?

Thanks,
James

On 8/13/07, James Ervin <jeervin@gmail.com> wrote:
I was looking at the method a bit and it seems as though the only classpath container that is recognized is the maven classpath container.  Perhaps by using the resolved classpath or by removing the if statement that checks for the maven classpath container exclusively would be enough.  Maybe the code could be simplified by using getResolvedClasspath() since I don' t think you would need to call a resolveVarOrLibEntry() method anymore.

Thanks for pointer btw...  You brightened my morning....

Thanks,
James


On 8/13/07, James Ervin < jeervin@gmail.com> wrote:
Oh that would be awesome.... thanks.... please let me know of your results ASAP.

Thanks,
James


On 8/13/07, Shiva Kumar H R < shivahr@gmail.com> wrote:
Hi James,
Looks like this is what you are looking for (I hit across this by searching for "getRawClasspath" in plug-in source):
"processJavaProject() method of org.apache.geronimo.st.core.operations.SharedLibEntryCreationOperation.java in plugins/org.apache.geronimo.st.core"

Now seeing if changing this to getResolvedClasspath (as you suggest), would lead to any side effects.

- Shiva


On 8/9/07, James Ervin <jeervin@gmail.com> wrote:


On 8/8/07, Tim McConnell < tim.mcconne@gmail.com> wrote:
Hi again James, Sorry for the delay but I've been trying to fully understand
what you're trying to accomplish. Have you considered using the shared lib
support that is already provided by the Geronimo plugin publish/deploy
functionality ?? If I correctly understand what you're trying to accomplish the
shared lib support should work for you. It's not obvious to me though why you
are so adverse to using the built-in publish/deploy capabilities of the plugin.
Finally, have you considered upgrading to the latest versions of Geronimo and
the plugin ?? Geronimo 2.0 is currently being voted on for release, and the
plugin will be voted on for release shortly thereafter. Just curious. Thanks
much....

Thanks for the reply, I actually am using a Publish Operation to set the shared library support, so yes I am using some of that support.  The issue I am having is the fact that when the Geronimo plugin is computing the <Project-Name>.eclipse.jar manifest for the ${GERONIMO_HOME}/shared/lib directory, it seems to only consider the raw classpath from the Eclipse JDT.  In other words, it appears almost as though its using org.eclipse.jdt.core.IJavaProject.getRawClasspath() instead of org.eclipse.jdt.core.IJavaProject.getResolvedClasspath().  I say almost, because it will resolve Classpath Variable entries.  The net effect is that I have to hard code entries in the .classpath file for each jar file I want in that manifest, but that is what classpath containers are supposed to help you with.
 
I have considered it, but the circumstances are such that I have to use what I am given so far.  I will look at version 2.0 and the latest from the plugin, but that leads me to one of my earlier questions in my first post.  Where in the plugin do I look for where it is computing the manifest for the <Project-Name>.eclipse.jar?  I have to admit I am a bit of a newbie when it comes to EMF (I'm not sure that I hate it, but I have yet to see what I really like about it.  The idea seems very interesting, but I am not crazy about the results I have seen so far) and well the Geronimo Plugin source tree seems almost as big as WTP's at this point, so any pointers would be most appreciated.


Thanks,
James

James Ervin wrote:
> Tim,
> Thanks for the reply.  Reviewing the plugins installed it looks as
> though the plugin is at version 1.0.0 with the
> org.apache.geronimo.runtime.v1 plugin at version 1.0.1.  Hmm I don't see
> a feature.  I am not quite sure the version of geronimo.  It comes
> bundled and is installed by a script so I am not entirely sure of the
> version.  My educated guess is that it is at version 1.2.  The version
> of WTP is 1.5.x.
>
> Its not straightforward to offer a sample app, since I can't really
> offer up my plugin, so I will describe it.
>
> When you add a project dependency for a web app, I noticed that the
> Geronimo Eclipse plugin will generate a jar file in the
> ${GERONIMO_HOME}/shared/lib directory with the name
> ${PROJECT_NAME}.eclipse.jar.  In that jar there is a manifest that is
> pointing at the java source output directories for the web app project
> and the output directories for any project dependencies.  It would be
> nice to customize that, but that is just fine for now.  The shared/lib
> directory is also where I generate a jar file that contains a manifest
> describing the set of shared libraries that all deployed web apps will
> share.
>
> If I add a classpath entry directly in the .classpath file for a library
> jar dependency, it will show in the ${PROJECT_NAME}.eclipse.jar just
> fine.  The problem comes in that I want to use a classpath container to
> resolve library dependencies and not have to manage entries directly in
> the .classpath file.  Even when the container resolves down to a set of
> flat jar files, it does not matter.  It seems that the plugin does not
> check the resolved classpath of a java project and only checks the raw
> classpath.  Shouldn't it construct the classpath by checking all project
> dependencies and by using the resolved, and not raw, classpath?
>
> I am faced with a significant rewrite right now if I cannot figure out a
> solution, any help would be really appreciated.
>
> Thanks,
> James
>
> On 8/7/07, * Tim McConnell* < tim.mcconne@gmail.com
> <mailto: tim.mcconne@gmail.com>> wrote:
>
>     Hi James, which version of Geronimo and the Geronimo plugin are you
>     using ??
>     Also, do you have an example test app that you could attach that
>     demonstrates
>     the failure ??
>
>     James Ervin wrote:
>      > Hello,
>      > I am a developer working on an Eclipse plugin attempting to use
>     WTP to
>      > help ppl write Service Based web apps.  Why am I asking a question on
>      > the geronimo user group?  Well because I am attempting to use Apache
>      > Geronimo as the primary J2EE container.
>      >
>      > My problem is this, I need to be able to deploy libraries (yes I
>     know
>      > about the PublishOperation and that I can generate a jar with a big
>      > manifest file enumerating all shared libraries) that are only used by
>      > one particular web app or dependent web app.  So I have a classpath
>      > container, the trouble is that the Apache Geronimo plugin that I have
>      > access to does not seem to care about entries in classpath
>     containers,
>      > only those that are directly enumerated in a .classpath file (bad
>     form
>      > IMHO).
>      >
>      > I have attempted to deploy libs into WebContent/WEB-INF/lib, but on
>      > windows WTP ( or some plugin ) keeps the bloody file lock and
>     will not
>      > let me update or delete it.  I even attempted to deploy the libs
>     to a
>      > separate directory and then told WTP via a <wb-resource/> tag in
>     the WST
>      > common component configuration file where to find it.  The lib
>     showed up
>      > in the list of WebApp Libraries, but then when deployed to
>     Geronimo it
>      > was not recognized.
>      >
>      > I have tried this and a few other combinations.  The only one
>     that has
>      > worked is if I create a new shared lib entry jar (bad form since
>     not all
>      > web apps on the container will want the given set of libraries)
>     or if I
>      > enumerate the libraries one by one directly in the .classpath
>     (classpath
>      > containers anyone?).
>      >
>      > Is there anyway to make the plugin respect the classpath
>     container?  Or
>      > at least give me a clue through the bloody EMF wilderness as to
>     where in
>      > the plugin the deployment configuration is determined so that I can
>      > consider my options (you know like a patch...)?  I am at my wits end,
>      > any help would be most appreciated.
>      >
>      > Thanks,
>      > --
>      > James E. Ervin
>      >
>      > A human being should be able to change a diaper, plan an invasion,
>      > butcher a hog, conn a ship, design a building, write a sonnet,
>     balance
>      > accounts, build a wall, set a bone, comfort the dying, take
>     orders, give
>      > orders, cooperate, act alone, solve equations, analyze a new problem,
>      > pitch manure, program a computer, cook a tasty meal, fight
>     efficiently,
>      > die gallantly. Specialization is for insects.
>      > -Robert A. Heinlein
>      >
>      > Blog: http://iacobus.blogspot.com
>
>     --
>     Thanks,
>     Tim McConnell
>
>
>
>
> --
> James E. Ervin, IV
>
> A human being should be able to change a diaper, plan an invasion,
> butcher a hog, conn a ship, design a building, write a sonnet, balance
> accounts, build a wall, set a bone, comfort the dying, take orders, give
> orders, cooperate, act alone, solve equations, analyze a new problem,
> pitch manure, program a computer, cook a tasty meal, fight efficiently,
> die gallantly. Specialization is for insects.
> -Robert A. Heinlein
>
> Blog: http://iacobus.blogspot.com

--
Thanks,
Tim McConnell



--
James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com




--

James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com



--

James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com



--
James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com ------=_Part_71572_2442587.1187192869917--