User: schaefera
  Date: 01/11/12 11:59:17

  Modified:    src/main/org/jboss/ha/framework/server ClusterPartition.java
                        FarmMemberService.java
  Log:
  Finished 1. Version of the JBoss Farm. Now it uses the AutoDeployer and
  therefore FarmAutoDeployer became obsolete. The Farm now support also
  undeployment, copies a deployed file back to /deploy/farm when on a
  remote node and also removes it from there when undeployed on a remote
  node.
  
  Revision  Changes    Path
  1.6       +3 -7      
jbossmx/src/main/org/jboss/ha/framework/server/ClusterPartition.java
  
  Index: ClusterPartition.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmx/src/main/org/jboss/ha/framework/server/ClusterPartition.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ClusterPartition.java     2001/11/11 19:04:25     1.5
  +++ ClusterPartition.java     2001/11/12 19:59:17     1.6
  @@ -24,7 +24,7 @@
    *
    *   @author [EMAIL PROTECTED]
    *   @author [EMAIL PROTECTED]
  - *   @version $Revision: 1.5 $
  + *   @version $Revision: 1.6 $
    *
    * <p><b>Revisions:</b><br>
    */
  @@ -108,7 +108,7 @@
         return this.partition;      
      }
      
  -   public void initService() throws Exception
  +   public void startService() throws Exception
      {
         log.info ("Creating JavaGroups JChannel");
         this.channel = new JChannel(jgProps);
  @@ -122,12 +122,8 @@
         
         log.info("...Initing HAPartition...");
         partition.init();
  -      
         log.info("...HAPartition initialized.");
  -   }
  -
  -   public void startService() throws Exception
  -   {
  +      
         log.info("Starting ClusterPartition: " + partitionName);
         
         log.info(" Connecting to channel");
  
  
  
  1.2       +76 -2     
jbossmx/src/main/org/jboss/ha/framework/server/FarmMemberService.java
  
  Index: FarmMemberService.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmx/src/main/org/jboss/ha/framework/server/FarmMemberService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FarmMemberService.java    2001/11/12 04:24:18     1.1
  +++ FarmMemberService.java    2001/11/12 19:59:17     1.2
  @@ -64,7 +64,7 @@
    * </ul>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Andreas Schaefer</a>
  - * @version $Revision: 1.1 $ <p>
  + * @version $Revision: 1.2 $ <p>
    *
    * <b>Revisions:</b> <p>
    *
  @@ -135,7 +135,7 @@
            IOException, 
            DeploymentException
      {
  -//      undeploy( new URL( pFileURL ) );
  +      undeploy( new URL( pFileURL ) );
      }
   
      public boolean isDeployed( String pFileURL )
  @@ -161,6 +161,11 @@
            // Get the date of the file
            File lFile = new File( pFile.getFile() );
            Date lFileDate = new Date( lFile.lastModified() );
  +         Date lOldFileDate = (Date) mDeployedServices.get( lFile.getName() );
  +         if( lOldFileDate != null && !lFileDate.after( lOldFileDate ) ) {
  +            log.info( "deploy(), file is locally already deployed, ignore" );
  +            return;
  +         }
            FileContent lFileContent = getFileContent( lFile );
            HAPartition lHAPartition = (HAPartition) mServer.getAttribute(
               sClusterPartitionService,
  @@ -181,6 +186,31 @@
         }
      }
      
  +   public void undeploy( URL pFile ) {
  +      try {
  +         log.info( "undeploy(), file: " + pFile );
  +         // Get the date of the file
  +         File lFile = new File( pFile.getFile() );
  +         Date lFileDate = new Date( lFile.lastModified() );
  +         HAPartition lHAPartition = (HAPartition) mServer.getAttribute(
  +            sClusterPartitionService,
  +            "HAPartition"
  +         );
  +         lHAPartition.callMethodOnCluster(
  +            SERVICE_NAME,
  +            "doUndeployment",
  +            new Object[] {
  +               lFile,
  +               lFileDate
  +            },
  +            false
  +         );
  +      }
  +      catch( Exception e ) {
  +         logException( e );
  +      }
  +   }
  +   
      public void doDeployment( FileContent pFile, Date pDate ) {
         try {
            // First check if file not already deployed
  @@ -202,6 +232,50 @@
               );
               log.info( "doDeployment(), add file served" );
               mDeployedServices.put( lFile.getName(), pDate );
  +            // Adjust the date and move the file back to /deploy/farm
  +            // if not already there
  +            File lFarmFile = new File( "../deploy/farm", pFile.mFile.getName() );
  +            if( !lFarmFile.exists() ) {
  +               lFile.setLastModified( pDate.getTime() );
  +               lFile.renameTo( lFarmFile );
  +               log.info( "doDeployment(), file copied back to /deploy/farm" );
  +            } else {
  +               lFile.delete();
  +               log.info( "doDeployment(), file is already in /deploy/farm" );
  +            }
  +         }
  +      }
  +      catch( Exception e ) {
  +         logException( e );
  +      }
  +   }
  +   
  +   public void doUndeployment( File pFile, Date pDate ) {
  +      try {
  +         // First check if file is already deployed
  +         log.info( "doUndeployment(), File: " + pFile + ", data: " + pDate );
  +         if( mDeployedServices.containsKey( pFile.getName() ) ) {
  +            // Create File locally and use it
  +            File lFile = new File( "../tmp", pFile.getName() );
  +            log.info( "doUndeployment(), undeploy locally: " + lFile );
  +            // Deploy file on Service Deployer
  +            mServer.invoke(
  +               sDeployerService,
  +               "undeploy",
  +               new Object[] { lFile.toURL().toString() },
  +               new String[] { String.class.getName() }
  +            );
  +            log.info( "doUndeployment(), remove file served" );
  +            mDeployedServices.remove( lFile.getName() );
  +            // Check if the file is still in /deploy/farm and if yes
  +            // then remove it
  +            File lFarmFile = new File( "../deploy/farm", pFile.getName() );
  +            if( lFarmFile.exists() ) {
  +               lFarmFile.delete();
  +               log.info( "doDeployment(), remove file from /deploy/farm" );
  +            } else {
  +               log.info( "doDeployment(), file is already removed" );
  +            }
            }
         }
         catch( Exception e ) {
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to