RE: Reducing the time of the development cyc le.

Dorothy Gantenbein <[email protected]> Mon, 6 Jan 2003 09:33:53 -0800
Newsgroups gmane.comp.java.tapestry.devel
Message-ID <6FFA5AEBCD9ED311861A00508B0E71FB01E0DD17@SFREXCH>
Hi -
 
I agree that sounds like a better idea if you can.  It is not an option for
our development because we are using the local EJB interfaces.  Using local
EJB interfaces requires that JBoss/Jetty or Resin must be running inside the
same virtual machine.
 
Dorothy

-----Original Message-----
From: Howard M. Lewis Ship [mailto:[email protected]]
Sent: Sunday, January 05, 2003 7:38 PM
To: Dorothy Gantenbein; 'Simon Robins ';
[email protected]
Subject: Re: [Tapestry-developer] Reducing the time of the development
cycle.


I still favor running business objects (session EJBs) inside JBoss and
configuring Jetty or Resin to call in via JNDI and RMI.  The business
objects tend to be dozens of times more stable than the presentation layer
(which is subject to immense amounts of "tweaking").  It also ensures that
all data that passes between the two layers is properly serializable (and
so, your app is ready for clustering).
 

----- Original Message ----- 
From: Dorothy Gantenbein <mailto:[email protected]>  
To: 'Simon Robins ' <mailto:[email protected]>  ; Dorothy Gantenbein
<mailto:[email protected]>  ;
'[email protected]
<mailto:'[email protected] '> ' 
Sent: Sunday, January 05, 2003 9:45 PM
Subject: RE: [Tapestry-developer] Reducing the time of the development
cycle.


Thanks those are great ideas.  I will look into this on Monday. 

Dorothy 

-----Original Message----- 
From: Simon Robins 
To: Dorothy Gantenbein; [email protected]
<mailto:[email protected]>  
Sent: 1/4/03 2:39 PM 
Subject: Re: [Tapestry-developer] Reducing the time of the development
cycle. 

Hi Dorothy, 

Thanks for your response. 

I have now changed my set up to the one you describe with one exception. 
I was wary of depending on the hidden secrets of JBoss as you do in step 
3. Instead I have deployed an unpacked war into the 
server/default/deploy directory, this is also the development 
environment and thus avoids having two copies of the source. If you 
don't like developing directly into the JBoss directories it should be 
possible to alter the jboss-service.xml file to point a directory of 
your choice but I've found this to be unreliable. 

I was also looking for ways of catching as many errors as possible 
before deployment and to that end I have spotted that Ant has an 
optional task called <xmlvalidate> which could be used as below: 

        <target name="validate"> 
                <xmlvalidate failonerror="no" lenient="no" warn="yes"> 
                        <fileset dir="WEB-INF/classes" 
includes="**/*.page"/>   
            <fileset dir="WEB-INF/classes" includes="**/*.jwc"/>   
            <fileset dir="WEB-INF/classes" includes="**/*.script"/>   
            <fileset dir="WEB-INF/classes" includes="**/*.application"/> 

            <fileset dir="WEB-INF" includes="web.xml"/>   
                </xmlvalidate> 
        </target> 

Regards 

Simon 


>This was a timely question.  Our UI designer was getting very 
>frustrated trying to tweak the HTML associated with Tapestry components 
>because of the long turn around times.  Based on the suggestions on the 
>list, we developed a process where he could change the HTML and see 
>results in a few seconds. 
> 
>Here is the process for people using JBoss/Resin or JBoss/Jetty with 
>Tapestry.  
> 
>1.  Change the JBoss startup script to pass 
>'-Dnet.sf.tapestry.disable-caching=true'.  When you disable caching, 
>you can change the HTML/page or jwc files after deployment.  Pages are 
>rendered a little  more slowly but not too bad. 
> 
>2.  Change war file so that all HTML, jwc, page files are packaged 
>under the war's WEB-INF/classes directory.  When deployed, these 
>Tapestry files can be modified without rebuilding, redeploying or 
>restarting JBoss. 
> 
>3.  Go ahead and change the deployed Tapestry files.  After the change, 
>refresh the browser page to force Tapestry to re-load your definitions 
>and HTML.  Here are directions for finding the deployed Tapestry files 
> 
>for Resin and Jetty. 
> 
>   -  If you are using Resin, the deployed Tapestry files are 
>      located under the jboss/server/default/tmp directory assuming 
>      you are using the 'default' server configuration. 
> 
>   -  If you are using Jetty, the location is located in your Documents 
> 
>      directory.  Watch the deployment and JBoss/Jetty tells you 
>      where the deployed files are located.  Here a sample of the 
>output. 
> 
>      10:38:50,231 INFO  [jbossweb] Registered 
>      jboss.web:Jetty=0,JBossWebApplicationContext=4,context=/asset 
>      10:38:50,451 INFO  [jbossweb] Extract 
>jar: file:/D:/jboss-3.0.5RC1/ <file:/D:/jboss-3.0.5RC1/>  
>      server/default/tmp/deploy/server/default/deploy/ 
>      admin.ear/27.admin.ear-contents/asset.war!/ to 
>      c:\DOCUME~2\Owner\LOCALS~1\Temp\Jetty_0_0_0_0_8080__asset\webapp 
>  
>4.  Make sure to copy any deployed Tapestry files back to your source 
>directories before redeploying/restarting JBoss. 
> 
>Hope that helps... 
>Dorothy 
>