[jboss-user] [JBoss Tools (users)] - Re: WTP2.0.1, JBossAS-Tools-1.0.0.beta4 not publishing corre

dlmiles do-not-reply at jboss.com
Thu Oct 11 04:25:47 EDT 2007


It looks like you are leaving the work of the actual copy to WTP's PublishUtil class.

My understand of how this works inside WTP is that it does a file copy of each file to the directory $HOME/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp12345.class and then does a rename to the final deployment location (which WTP is expecting to be in a directory like $HOME/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/

If you check your directory $HOME/workspace/.metadata/.plugins/org.eclipse.wst.server.core/ both before and after your a publish with JBossTools-AS where your runtime is on another file system you should see left over files appear and the number of files in the directory grow.  It does not seem WTP deletes the old temporary after the renameTo() failed.

This works great for Tomcat and other such containers that can treat the "tmp1" directory above as a deployment directory but not do useful if the runtime it somewhere else.

Since all the built in WTP runtime tools I have seen use the "tmp1/" directory in the workspace area as the deployment area you can't expect these tools to work for deployment outside of the workspace area.


My suggestion would be for JBoss to open up an API request with the server tooling to allow the PublishUtil tool to be instanced and configured an exact path to be used as the temporary location to copy to.

File tmpDir = new File("/opt/jboss-4.2.1.GA/server/default/tmp/jbosside-as");
  | if(!tmpDir.getParent().exist() == false)
  |   throw new RuntimeException("Directory " + tmpDir.getParent().getAbsolutePath() + " does not exist");
  | tmpDir.mkdirs();
  | PublishUtil publishUtilInstance = new PublishUtil(tmpDir);
  | 
  | // Then in your code instead of using the static methods use the instanced ones
  | publishUtilInstance.callSomeMethod(someArgs);
  | 


So it looks like to me you need a way to pass down a temporary path that WTP standard methods can use as the temporary directory to perform the initial copy from the "project build area".  This is runtime specific.  Its also concerning that the rename must have failed and that no error is indicated in the UI so there is another area to look at in that.



What does this idiom "copied = copied &&" do ?

http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosstools/trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java?view=log
  | 
  | #fileSafeCopy(File src, File dest, IFileUtilListener listener) {
  | 				copied = copied && fileSafeCopy(subFiles, newDest, listener);
  | }
  | 
  | // I would think that propagation of an error would but more correct here :
  | 
  | if(fileSafeCopy(subFiles, newDest, listener) == false) {
  |  copied = false;
  | }

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4093910#4093910

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4093910



More information about the jboss-user mailing list