Package org.jboss.system.server.profileservice.repository.clustered.metadata

Examples of org.jboss.system.server.profileservice.repository.clustered.metadata.RepositoryContentMetadata


      assertEquals(item2, mods.get(0).getItem());
   }
  
   public void testJoinSwap() throws Exception
   {
      RepositoryContentMetadata base = getNewRepositoryContentMetadata();
     
      RepositoryItemMetadata item1 = new RepositoryItemMetadata();
      item1.setRelativePath("item1");
      item1.setOriginatingNode("localhost");
      item1.setTimestamp(1);
      base.getRepositories().iterator().next().getContent().add(item1);

      RepositoryContentMetadata modified = getNewRepositoryContentMetadata();
     
      RepositoryItemMetadata item2 = new RepositoryItemMetadata();
      item2.setRelativePath("item2");
      item2.setOriginatingNode("localhost");
      item2.setTimestamp(1);
      modified.getRepositories().iterator().next().getContent().add(item2);
     
      MockSynchronizationPolicy policy = new MockSynchronizationPolicy();
      policy.setAllowJoinRemovals(Boolean.FALSE);
     
      RemoteContentModificationGenerator testee =
View Full Code Here


      assertEquals(item2, mods.get(1).getItem());
   }
  
   public void testMergeSwap() throws Exception
   {
      RepositoryContentMetadata base = getNewRepositoryContentMetadata();
     
      RepositoryItemMetadata item1 = new RepositoryItemMetadata();
      item1.setRelativePath("item1");
      item1.setOriginatingNode("localhost");
      item1.setTimestamp(1);
      base.getRepositories().iterator().next().getContent().add(item1);

      RepositoryContentMetadata modified = getNewRepositoryContentMetadata();
     
      RepositoryItemMetadata item2 = new RepositoryItemMetadata();
      item2.setRelativePath("item2");
      item2.setOriginatingNode("localhost");
      item2.setTimestamp(1);
      modified.getRepositories().iterator().next().getContent().add(item2);
     
      MockSynchronizationPolicy policy = new MockSynchronizationPolicy();
      policy.setAllowMergeRemovals(Boolean.FALSE);
     
      RemoteContentModificationGenerator testee =
View Full Code Here

     return getNewRepositoryContentMetadata("farm");
   }
  
   private static RepositoryContentMetadata getNewRepositoryContentMetadata(String ... rootNames)
   {
      RepositoryContentMetadata base = new RepositoryContentMetadata();
      base.setDomain("domain");
      base.setServer("server");
      base.setName("name");
      for (String rootName : rootNames)
      {
         RepositoryRootMetadata root = new RepositoryRootMetadata();
         root.setName(rootName);
         base.getRepositories().add(root);
      }
     
      return base;
   }
View Full Code Here

   public RepositoryContentMetadata synchronizeContent(boolean pullFromCluster)
         throws InconsistentRepositoryStructureException, IOException
   {
      List<ContentModification> modifications = null;
      RepositoryContentMetadata localCurrentContent = this.contentManager.getCurrentContentMetadata();
           
      if (pullFromCluster)
      {
         // Normal join case
         modifications = getModificationsFromCluster(localCurrentContent);
      }
      else if (!inSync)
      {
         // Merge case
         modifications = getModificationsFromCluster(null);        
      }
      else
      {
         // Periodic scan case
         modifications = getLocalModifications(localCurrentContent);
      }
     
      if (modifications != null)
      {
         installModifications(modifications, localCurrentContent);
      }
      else
      {
         // No one else out there. Install the localCurrentContent as official.
         this.contentManager.installCurrentContentMetadata();
      }
     
      RepositoryContentMetadata result = this.contentManager.getOfficialContentMetadata();
      inSync = true;
      return result;     
   }
View Full Code Here

   }

   public RepositoryItemMetadata addDeploymentContent(String vfsPath, InputStream contentIS) throws IOException
   {
      RepositoryItemMetadata item = this.contentManager.getItemForAddition(vfsPath);
      RepositoryContentMetadata updated = this.contentManager.getContentMetadataForAdd(item, contentIS);
      RepositoryContentMetadata official = this.contentManager.getOfficialContentMetadata();
      LocalContentModificationGenerator generator = new LocalContentModificationGenerator();
      List<ContentModification> modifications;
      try
      {
         modifications = generator.getModificationList(official, updated);
      }
      catch (InconsistentRepositoryStructureException e)
      {
         throw new IllegalStateException("Incompatible structure change", e);
      }
     
      installModifications(modifications, updated);
     
      official = this.contentManager.getOfficialContentMetadata();
      RepositoryRootMetadata rrmd = official.getRepositoryRootMetadata(item.getRootName());
      return rrmd.getItemMetadata(item.getRelativePathElements());
   }
View Full Code Here

      return rrmd.getItemMetadata(item.getRelativePathElements());
   }

   public void removeDeploymentContent(String repositoryRoot, String relativePath) throws Exception
   {
      RepositoryContentMetadata updated = this.contentManager.getContentMetadataForRemove(repositoryRoot, relativePath);
      RepositoryContentMetadata official = this.contentManager.getOfficialContentMetadata();
      LocalContentModificationGenerator generator = new LocalContentModificationGenerator();
      List<ContentModification> modifications;
      try
      {
         modifications = generator.getModificationList(official, updated);
View Full Code Here

   private List<ContentModification> getModificationsFromCluster(RepositoryContentMetadata localCurrentContent)
         throws IOException, InconsistentRepositoryStructureException
   {
      List<ContentModification> modifications = null;
     
      RepositoryContentMetadata localBaseMetadata = this.contentManager.getOfficialContentMetadata();
      if (localBaseMetadata == null)
      {
         localBaseMetadata = this.contentManager.createEmptyContentMetadata();
      }
     
View Full Code Here

      return modifications;
   }

   private List<ContentModification> getLocalModifications(RepositoryContentMetadata localCurrentContent)
   {
      RepositoryContentMetadata official = this.contentManager.getOfficialContentMetadata();
      LocalContentModificationGenerator generator = new LocalContentModificationGenerator();
      try
      {
         return generator.getModificationList(official, localCurrentContent);
      }
View Full Code Here

   }
  
   public void testSerializationDeserialization() throws Exception
   {
      ProfileKey key = new ProfileKey("domain", "server", "name");
      RepositoryContentMetadata rcm = new RepositoryContentMetadata(key);
      RepositoryRootMetadata rrm = new RepositoryRootMetadata("normal");
     
      RepositoryItemMetadata rim = new RepositoryItemMetadata();
      rim.setRelativePath("/item");
      rim.setOriginatingNode("192.168.100.1:1099");
      rim.setTimestamp(1);
      rrm.addItemMetadata(rim);
     
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_item");
      rim.setRemoved(true);
      rim.setOriginatingNode("192.168.100.1:1099");
      rim.setTimestamp(2);
      rrm.addItemMetadata(rim);
     
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/dir.sar");
      rim.setDirectory(true);
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setTimestamp(4);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/dir.sar/item.jar");
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setTimestamp(4);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/dir.sar/META-INF");
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setDirectory(true);
      rim.setTimestamp(3);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/dir.sar/META-INF/jboss-beans.xml");
      rim.setDirectory(true);
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setTimestamp(3);
      rrm.addItemMetadata(rim);
     
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_dir.ear");
      rim.setDirectory(true);
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setTimestamp(7);
      rim.setRemoved(true);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_dir.ear/ejb.jar");
      rim.setOriginatingNode("192.168.100.2:1099");
      rim.setTimestamp(5);
      rim.setRemoved(true);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_dir.ear/META-INF");
      rim.setDirectory(true);
      rim.setOriginatingNode("192.168.100.3:1099");
      rim.setTimestamp(7);
      rim.setRemoved(true);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_dir.ear/META-INF/application.xml");
      rim.setDirectory(true);
      rim.setOriginatingNode("192.168.100.3:1099");
      rim.setTimestamp(7);
      rim.setRemoved(true);
      rrm.addItemMetadata(rim);
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/removed_dir.ear/war.war");
      rim.setOriginatingNode("192.168.100.3:1099");
      rim.setTimestamp(6);
      rim.setRemoved(true);
      rrm.addItemMetadata(rim);
     
      RepositoryRootMetadata emptyRRM = new RepositoryRootMetadata("empty");
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/");
      rim.setOriginatingNode("192.168.100.4:1099");
      rim.setTimestamp(10);
      rcm.setRepositories(Arrays.asList(new RepositoryRootMetadata[]{rrm, emptyRRM}));
     
      rim = new RepositoryItemMetadata();
      rim.setRelativePath("/");
      rim.setOriginatingNode("127.0.0.1:1099");
      rim.setTimestamp(20);
      emptyRRM.addItemMetadata(rim);
     
      File temp = new File(System.getProperty("java.io.tmpdir"));
     
      JAXBRepositoryContentMetadataPersister testee = new JAXBRepositoryContentMetadataPersister(temp.toURI());
      testee.store("test", rcm);
     
      // Ensure we clean up
      File stored = testee.getMetadataPath("test");
      stored.deleteOnExit();
      toDelete.add(stored);
     
      InputStreamReader isr = new InputStreamReader(new FileInputStream(stored));
      StringWriter writer = new StringWriter();
      int read;
      while ((read = isr.read()) != -1)
         writer.write(read);
      writer.close();
      System.out.println(writer.toString());
     
      RepositoryContentMetadata deserialized = testee.load("test");
     
      assertEquals(rcm, deserialized);
   }
View Full Code Here

      }
      else if (mod.getType() == Type.REMOVE_FROM_CLUSTER)
      {
         // An addition has been rejected. We don't record the item as
         // removed in the metadata, we just remove it.
         RepositoryContentMetadata contentMetadata = getContext().getInProgressMetadata();
         RepositoryRootMetadata rmd = contentMetadata.getRepositoryRootMetadata(mod.getRootName());
         rmd.removeItemMetadata(modItem.getRelativePathElements());        
      }
      else
      {
         // Add a record of the item, marked as removed
         RepositoryItemMetadata markedRemoved = getMarkedRemovedItem(mod);
         RepositoryContentMetadata contentMetadata = getContext().getInProgressMetadata();
         RepositoryRootMetadata rmd = contentMetadata.getRepositoryRootMetadata(mod.getRootName());
         rmd.addItemMetadata(markedRemoved);
      }
   }
View Full Code Here

TOP

Related Classes of org.jboss.system.server.profileservice.repository.clustered.metadata.RepositoryContentMetadata

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.