public PackageDetailsKey getPackageDetailsKey() { return new PackageDetailsKey(packageName, version, packageTypeName, archName); } }
public ValidatablePackageDetailsKey(PackageDetailsKey key) { this.name = key.getName(); this.version = key.getVersion(); this.packageTypeName = key.getPackageTypeName(); this.architectureName = key.getArchitectureName(); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if ((o == null) || (!(o instanceof PackageDetails))) { return false; } PackageDetails that = (PackageDetails) o; if (!key.equals(that.key)) { return false; } return true; }
public String getName() { return key.getName(); }
public String getPackageTypeName() { return key.getPackageTypeName(); }
@Override public int hashCode() { return key.hashCode(); }
public String getArchitectureName() { return key.getArchitectureName(); }
public String getVersion() { return key.getVersion(); }
/** * JBNADM-2022 - It still needs to be determined if it is the responsibility of the plugin container or the * plugin to be concerned with path information in the package name. For now, it's the plugin's * responsibility. We strip out the path information to keep control of where the JARs are * deployed to. Note: when we add support for more package types, we'll need to refactor this * out on a package type basis. * @param details package details * @return destination path */ private File getPath(PackageDetails details) { String fileName = details.getKey().getName(); int lastPathStart = fileName.lastIndexOf(File.separatorChar); if (lastPathStart > -1) { fileName = fileName.substring(lastPathStart + 1); } if (this.fileEnding != null && !fileName.endsWith(this.fileEnding)) { fileName = fileName + this.fileEnding; } return new File(this.directory, fileName); } }
continue; String packageTypeName = key.getPackageTypeName();
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = (prime * result) + resourceTypeName.hashCode(); result = (prime * result) + resourceTypePluginName.hashCode(); return result; }
public long getPackageBitsLength(int resourceId, PackageDetailsKey packageDetailsKey) { Query q = entityManager.createNamedQuery(PackageVersion.QUERY_GET_PKG_BITS_LENGTH_BY_PKG_DETAILS_AND_RES_ID); q.setParameter("packageName", packageDetailsKey.getName()); q.setParameter("packageTypeName", packageDetailsKey.getPackageTypeName()); q.setParameter("version", packageDetailsKey.getVersion()); q.setParameter("architectureName", packageDetailsKey.getArchitectureName()); q.setParameter("resourceId", resourceId); Long count = (Long) q.getSingleResult(); return count.longValue(); }
@Override public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) { Operation op = new ReadChildrenNames(address, "deployment"); // TODO read full packages not only names Result node = getASConnection().execute(op); if (!node.isSuccess()) return null; List<String> resultList = (List<String>) node.getResult(); // TODO needs checking Set<ResourcePackageDetails> details = new HashSet<ResourcePackageDetails>(); for (String file : resultList) { String t; if (file.contains(".")) t = file.substring(file.lastIndexOf(".") + 1); else t = "-none-"; ResourcePackageDetails detail = new ResourcePackageDetails(new PackageDetailsKey(file, "1.0", t, "all")); details.add(detail); } return details; }
public File getPath(PackageDetails details) { /* JBNADM-2022 - It still needs to be determined if it is the responsibility of the plugin container or the * plugin to be concerned with path information in the package name. For now, it's the plugin's * responsibility. We strip out the path information to keep control of where the JARs are * deployed to. Note: when we add support for more package types, we'll need to refactor this * out on a package type basis. * * jdobies, Sep 20, 2007 */ PackageDetailsKey key = details.getKey(); String fileName = key.getName(); int lastPathStart = fileName.lastIndexOf(File.separatorChar); if (lastPathStart > -1) { fileName = fileName.substring(lastPathStart + 1); } return new File(this.deployDirectory, fileName); }
continue; String packageTypeName = key.getPackageTypeName(); individualResponse.getKey().getPackageTypeName()); } catch (Throwable throwable) { log.error("Error occurred on content discovery request" + throwable);
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!super.equals(obj)) { return false; } if (!(obj instanceof ContentProviderPackageDetailsKey)) { return false; } final ContentProviderPackageDetailsKey other = (ContentProviderPackageDetailsKey) obj; if (!resourceTypeName.equals(other.resourceTypeName)) { return false; } if (!resourceTypePluginName.equals(other.resourceTypePluginName)) { return false; } return true; } }
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @TransactionTimeout(45 * 60) public long outputPackageVersionBitsRangeGivenResource(int resourceId, PackageDetailsKey packageDetailsKey, OutputStream outputStream, long startByte, long endByte) { if (startByte < 0L) { throw new IllegalArgumentException("startByte[" + startByte + "] < 0"); } if ((endByte > -1L) && (endByte < startByte)) { throw new IllegalArgumentException("endByte[" + endByte + "] < startByte[" + startByte + "]"); } // what package version? Query query = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_ID_BY_PACKAGE_DETAILS_KEY_AND_RES_ID); query.setParameter("packageName", packageDetailsKey.getName()); query.setParameter("packageTypeName", packageDetailsKey.getPackageTypeName()); query.setParameter("architectureName", packageDetailsKey.getArchitectureName()); query.setParameter("version", packageDetailsKey.getVersion()); query.setParameter("resourceId", resourceId); int packageVersionId = ((Integer) query.getSingleResult()).intValue(); return outputPackageVersionBitsRangeHelper(resourceId, packageDetailsKey, outputStream, startByte, endByte, packageVersionId); }
public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) { Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>(); Configuration pluginConfiguration = getResourceContext().getPluginConfiguration(); String fullFileName = pluginConfiguration.getSimpleValue(PROPERTY_FILENAME, null); if (fullFileName == null) { throw new IllegalStateException("Plugin configuration does not contain the full file name of the WAR file."); } // If the parent WAR resource was found, this file should exist File file = new File(fullFileName); if (file.exists()) { // Package name and file name of the application are the same String fileName = new File(fullFileName).getName(); String sha256 = getSHA256(file); String version = getVersion(sha256); String displayVersion = getDisplayVersion(file); PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE); ResourcePackageDetails details = new ResourcePackageDetails(key); details.setFileName(fileName); details.setLocation(file.getPath()); if (!file.isDirectory()) details.setFileSize(file.length()); details.setFileCreatedDate(null); // TODO: get created date via SIGAR details.setInstallationTimestamp(System.currentTimeMillis()); // TODO: anything better than discovery time details.setSHA256(sha256); details.setDisplayVersion(displayVersion); packages.add(details); } return packages; }
private void warCreate(CreateResourceReport report) throws Exception { ResourcePackageDetails details = report.getPackageDetails(); PackageDetailsKey key = details.getKey(); String archiveName = key.getName();
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @TransactionTimeout(45 * 60) public long outputPackageBitsForChildResource(int parentResourceId, String resourceTypeName, PackageDetailsKey packageDetailsKey, OutputStream outputStream) { Resource parentResource = entityManager.find(Resource.class, parentResourceId); ResourceType parentResourceType = parentResource.getResourceType(); Query query = entityManager.createNamedQuery(ResourceType.QUERY_FIND_BY_PARENT_AND_NAME); query.setParameter("parent", parentResourceType); query.setParameter("name", resourceTypeName); ResourceType childResourceType = (ResourceType) query.getSingleResult(); query = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_DETAILS_KEY_WITH_NON_NULL_RESOURCE_TYPE); query.setParameter("packageName", packageDetailsKey.getName()); query.setParameter("packageTypeName", packageDetailsKey.getPackageTypeName()); query.setParameter("architectureName", packageDetailsKey.getArchitectureName()); query.setParameter("version", packageDetailsKey.getVersion()); query.setParameter("resourceTypeId", childResourceType.getId()); PackageVersion packageVersion = (PackageVersion) query.getSingleResult(); return outputPackageVersionBitsRangeHelper(parentResourceId, packageDetailsKey, outputStream, 0, -1, packageVersion.getId()); }