BTW Adrian,

<parody>
I did in fact discuss it and no one said much in reply. Perhaps if you'd read the forum posts more closely, I would not have to repeat myself here.
</parody>

So if it is needed for 5.0 I'll port it there. I think it might be useful for that profile service thingy. If not, then I won't.

peace,

Andy

Andrew Oliver wrote:
*gives adrian a big hug and kiss*

:-*

Next thing you'll be wanting me to try compiling things first before I check them in... sheesh.


Adrian Brock wrote:
Congratulations on:

1) Not discussing this change before implementing it.
2) Raising a JIRA task to document it.
3) Porting it to jboss-head so it doesn't get lost

On Sun, 2006-04-16 at 20:29 -0400, Andy Oliver wrote:
  User: acoliver
  Date: 06/04/16 20:29:00

  Modified:    src/main/org/jboss/deployment/scanner   Tag: Branch_4_0
                        URLDeploymentScanner.java
                        URLDeploymentScannerMBean.java
  Log:
Add abillity to ignore a file while it is being updated and then re-attend to it once it is updated (assuming that some other service will attend to bringing the runtime in sync without re-deployment)
    Revision  Changes    Path
  No                   revision
      No                   revision
1.32.2.6 +81 -11 jboss-system/src/main/org/jboss/deployment/scanner/URLDeploymentScanner.java (In the diff below, changes in quantity of whitespace are not shown.)
    Index: URLDeploymentScanner.java
  ===================================================================
RCS file: /cvsroot/jboss/jboss-system/src/main/org/jboss/deployment/scanner/URLDeploymentScanner.java,v
  retrieving revision 1.32.2.5
  retrieving revision 1.32.2.6
  diff -u -b -r1.32.2.5 -r1.32.2.6
--- URLDeploymentScanner.java 29 Oct 2005 05:06:09 -0000 1.32.2.5 +++ URLDeploymentScanner.java 17 Apr 2006 00:29:00 -0000 1.32.2.6
  @@ -56,12 +56,14 @@
    *
* @jmx:mbean extends="org.jboss.deployment.scanner.DeploymentScannerMBean"
    *
  - * @version <tt>$Revision: 1.32.2.5 $</tt>
  + * @version <tt>$Revision: 1.32.2.6 $</tt>
    * @author  <a href="mailto:[EMAIL PROTECTED]">Jason Dillon</a>
    */
   public class URLDeploymentScanner extends AbstractDeploymentScanner
      implements DeploymentScanner, URLDeploymentScannerMBean
   {
  +   /** The list of URLs to skip **/
+ protected List skipList = Collections.synchronizedList(new ArrayList());
      /** The list of URLs to scan. */
protected List urlList = Collections.synchronizedList(new ArrayList());
     @@ -251,6 +253,66 @@
         return urlList.contains(url);
      }
     +   /**
+ * You can ask the deployment scanner NOT to update a URL that you are + * about to change. This must be the same as the actual deployment URL and + * not the minor watchURL (deployment descriptor). This operation ADDs a + * url to the list of "not" urls. The actual time/datestamp of the deployed + * url will be modified to reflect the timestamp as if the url were actually + * deployed the first time scan is called either programmatically as an + * mbean operation call or during normal temporal operations. Note that this + * only affects UPDATES (redeploy) not undeploy or deploy(obviously).
  +    *
  +    * @jmx:managed-operation
  +    */
  +   public void addNotURL(final URL url)   +   {  //ACO wuz here
  +      if (url == null)
  +         throw new NullArgumentException("url");
  +      if (!skipList.contains(url))   +      {
  +         skipList.add(url);
  +      }   +   }
  +
  +   /**
+ * removes a url from the list of urls NOT to update. Make sure that you + * call scan before removing urls or if the scan window is wide enough the + * timestamp may not get updated. (the scan window IS wide enough by default)
  +    *
  +    * @jmx:managed-operation
  +    */
  +   public void removeNotURL(final URL url)   +   {  //ACO wuz here
  +      if (url == null)
  +         throw new NullArgumentException("url");
  +      if (skipList.contains(url))   +      {
  +         skipList.remove(url);
  +      }
  +   }
  +
  +   /**
+ * list all deployed urls for this deployment scanner instance in a big comma + * and carriage return seperated list
  +    *
  +    * @jmx:managed-operation
  +    */
  +   public String listDeployed() {
  +      String retval = "";
  +      Iterator i = deployedSet.iterator();
  +      while (i.hasNext()) {
  +          String url = i.next().toString();
  +          if (!retval.equals("")) {
  +              retval += ",\n"+url;
  +          }   +          else   +          {
  +              retval += url;
  +          }
  +      }
  +      return retval;
  +   }
///////////////////////////////////////////////////////////////////////// // Management/Configuration Helpers //
  @@ -331,8 +393,15 @@
         }
         try
         {
  +         if(!skipList.contains(du.url))   +         {
            deployer.deploy(du.url);
         }
  +         else   +         {
  +             du.deployed();
  +         }
  +      }
         catch (IncompleteDeploymentException e)
         {
            lastIncompleteDeploymentException = e;
  @@ -361,7 +430,10 @@
            {
               log.trace("Undeploying: " + du);
            }
  +         if (!skipList.contains(du.url))   +         {
            deployer.undeploy(du.url);
  +         }
            deployedSet.remove(du);
         }
         catch (Exception e)
  @@ -606,7 +678,8 @@
      protected class DeployedURL
      {
         public URL url;
  -      public URL watchUrl;
+ public URL watchUrl; // the url to watch to decide if we need to redeploy
  +                            // usually the deployment descriptor
         public long deployedLastModified;
            public DeployedURL(final URL url)
  @@ -642,11 +715,7 @@
         {
            if (watchUrl == null)
            {
  -            //
- // jason: getWatchUrl() is not part of Deployer interface.. wtf is this?
  -            //
  -            try
  -            {
  +            try {
Object o = getServer().invoke(getDeployer(), "getWatchUrl",
                  new Object[] { url },
                  new String[] { URL.class.getName() });
  @@ -666,7 +735,8 @@
               if (watchUrl != null)
               {
                  connection = watchUrl.openConnection();
  -            } else
  +            }   +            else
               {
                  connection = url.openConnection();
               }
1.4.2.4 +25 -0 jboss-system/src/main/org/jboss/deployment/scanner/URLDeploymentScannerMBean.java (In the diff below, changes in quantity of whitespace are not shown.)
    Index: URLDeploymentScannerMBean.java
  ===================================================================
RCS file: /cvsroot/jboss/jboss-system/src/main/org/jboss/deployment/scanner/URLDeploymentScannerMBean.java,v
  retrieving revision 1.4.2.3
  retrieving revision 1.4.2.4
  diff -u -b -r1.4.2.3 -r1.4.2.4
--- URLDeploymentScannerMBean.java 29 Oct 2005 05:06:09 -0000 1.4.2.3 +++ URLDeploymentScannerMBean.java 17 Apr 2006 00:29:00 -0000 1.4.2.4
  @@ -59,10 +59,35 @@
void addURL(java.lang.String urlspec) throws java.net.MalformedURLException; + /** + * You can ask the deployment scanner NOT to update a URL that you are + * about to change. This must be the same as the actual deployment URL and + * not the minor watchURL (deployment descriptor). This operation ADDs a + * url to the list of "not" urls. The actual time/datestamp of the deployed + * url will be modified to reflect the timestamp as if the url were actually + * deployed the first time scan is called either programmatically as an + * mbean operation call or during normal temporal operations. Note that this + * only affects UPDATES (redeploy) not undeploy or deploy(obviously).
  +    */        +   void addNotURL(java.net.URL url);
  +
+ /** + * removes a url from the list of urls NOT to update. Make sure that you + * call scan before removing urls or if the scan window is wide enough the + * timestamp may not get updated. (the scan window IS wide enough by default)
  +    */
  +   public void removeNotURL(java.net.URL url);
  +
void removeURL(java.lang.String urlspec) throws java.net.MalformedURLException; boolean hasURL(java.lang.String urlspec) throws java.net.MalformedURLException;
     +   /**
+ * list all deployed urls for this deployment scanner instance in a big comma
  +    * and carriage return seperated list
  +    */
  +   public String listDeployed();   +
      void scan() throws java.lang.Exception;
      }
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
jboss-cvs-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-cvs-commits







-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-Development mailing list
JBoss-Development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to