Example #1
0
 public void removePackageType(PackageType packageType) {
   packageTypes.remove(packageType);
   packageType.setResourceType(null);
   if (packageTypes.isEmpty()) {
     packageTypes = null;
   }
 }
Example #2
0
 public void addPackageType(PackageType packageType) {
   if (packageTypes == null) {
     packageTypes = new HashSet<PackageType>(1);
   }
   packageType.setResourceType(this);
   packageTypes.add(packageType);
 }
Example #3
0
  private void initContent() {
    ContentManagerRemote contentManager = remoteClient.getContentManager();
    List<PackageType> types = null;
    try {
      types =
          contentManager.findPackageTypes(
              remoteClient.getSubject(),
              resource.getResourceType().getName(),
              resource.getResourceType().getPlugin());

      for (PackageType packageType : types) {
        contentTypes.put(packageType.getName(), new ContentType(packageType));
      }
    } catch (ResourceTypeNotFoundException e) {
      LOG.error(
          "Could not find resource type while creating content mappings of the resource proxy for resource with id "
              + resourceId,
          e);
    }
  }
Example #4
0
  public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) {
    Set<ResourcePackageDetails> results = new HashSet<ResourcePackageDetails>();
    if (PACKAGE_TYPE.equals(type.getName())) {
      String jbossHomeDir =
          resourceContext
              .getParentResourceComponent()
              .getResourceContext()
              .getPluginConfiguration()
              .getSimpleValue(ApplicationServerPluginConfigurationProperties.HOME_DIR, null);
      File binDirectory = new File(jbossHomeDir, "bin");

      File scriptFile = new File(binDirectory, resourceContext.getResourceKey());

      String sha256 = PACKAGE_VERSION;
      try {
        sha256 =
            new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(scriptFile);
      } catch (IOException e) {
        log.warn(
            "Failed to compute the SHA256 digest of the script: " + scriptFile.getAbsolutePath(),
            e);
      }

      PackageDetailsKey key =
          new PackageDetailsKey(
              scriptFile.getName(), this.getVersion(sha256), PACKAGE_TYPE, PACKAGE_ARCHITECTURE);
      ResourcePackageDetails details = new ResourcePackageDetails(key);
      details.setDisplayName(scriptFile.getName());
      details.setFileName(scriptFile.getAbsolutePath());
      details.setFileSize(scriptFile.length());
      details.setLocation(scriptFile.getAbsolutePath());
      details.setFileCreatedDate(scriptFile.lastModified());
      details.setInstallationTimestamp(System.currentTimeMillis());
      details.setSHA256(sha256);

      results.add(details);
    }

    return results;
  }
  @AfterMethod
  public void tearDownAfterMethod() throws Exception {
    try {

      TransactionManager tx = getTransactionManager();
      tx.begin();
      EntityManager entityManager = getEntityManager();

      Query query;

      ContentSourceManagerLocal contentSourceManagerLocal = LookupUtil.getContentSourceManager();
      RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
      DistributionManagerLocal distroManager = LookupUtil.getDistributionManagerLocal();
      SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
      Subject overlord = subjectManager.getOverlord();

      // Delete all distributions
      distroManager.deleteDistributionMappingsForRepo(overlord, repoToSync.getId());

      for (String distroLabel : TestContentProvider.DISTRIBUTIONS.keySet()) {
        Distribution distro = distroManager.getDistributionByLabel(distroLabel);
        if (distro != null) {
          // Delete the files
          query = entityManager.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID);
          query.setParameter("distId", distro.getId());
          query.executeUpdate();

          // Delete the actual distro
          distroManager.deleteDistributionByDistId(overlord, distro.getId());
        }
      }

      // Delete all package version <-> content source mappings
      for (ContentSource source : repoContentSources) {
        contentSourceManagerLocal.deleteContentSource(overlord, source.getId());
      }
      repoContentSources.clear();

      // Delete the repo
      repoManager.deleteRepo(overlord, repoToSync.getId());

      // Delete any packages that were created
      for (ContentProviderPackageDetails details : TestContentProvider.PACKAGES.values()) {
        String packageName = details.getContentProviderPackageDetailsKey().getName();

        query = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
        query.setParameter("name", packageName);
        query.setParameter("packageTypeId", packageType.getId());

        Package p = (Package) query.getSingleResult();
        entityManager.remove(p);
      }

      // Delete the package type
      packageType = entityManager.find(PackageType.class, packageType.getId());
      entityManager.remove(packageType);

      resourceType = entityManager.find(ResourceType.class, resourceType.getId());
      entityManager.remove(resourceType);

      // Delete the content source type
      contentSourceType = entityManager.find(ContentSourceType.class, contentSourceType.getId());
      entityManager.remove(contentSourceType);

      tx.commit();

      // Cleanup providers between tests
      contentProvider1.reset();
      contentProvider2.reset();

    } finally {
      // Plugin service teardown
      unprepareServerPluginService();
      unprepareScheduler();
    }
  }