@Override public PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName, int packageTypeId, String version, String displayVersion, Integer architectureId, byte[] packageBytes) { // Check permissions first if (!authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_CONTENT)) { throw new PermissionException("User [" + subject.getName() + "] does not have permission to create package versions"); } return createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version, displayVersion, (null == architectureId) ? getNoArchitecture().getId() : architectureId, new ByteArrayInputStream( packageBytes)); }
@Override public PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName, int packageTypeId, String version, String displayVersion, Integer architectureId, String temporaryContentHandle) { // Check permissions first if (!authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_CONTENT)) { throw new PermissionException("User [" + subject.getName() + "] does not have permission to create package versions"); } FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream(getTemporaryContentFile(temporaryContentHandle)); return createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version, displayVersion, (null == architectureId) ? getNoArchitecture().getId() : architectureId, fileInputStream); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { StreamUtil.safeClose(fileInputStream); } }
@Override @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public PackageVersion persistPackageVersion(PackageVersion pv) { // EM.persist requires related entities to be attached, let's attach them now // package has persist cascade enabled, so skip loading it if we'll allow it to be created here if (pv.getGeneralPackage().getId() > 0) { pv.setGeneralPackage(entityManager.find(Package.class, pv.getGeneralPackage().getId())); } // arch has persist cascade enabled, so skip loading it if we'll allow it to be created here if (pv.getArchitecture().getId() > 0) { pv.setArchitecture(entityManager.find(Architecture.class, pv.getArchitecture().getId())); } // config is optional but has persist cascade enabled, so skip loading it if we'll allow it to be created here if (pv.getExtraProperties() != null && pv.getExtraProperties().getId() > 0) { pv.setExtraProperties(entityManager.find(Configuration.class, pv.getExtraProperties().getId())); } // our object's relations are now full attached, we can persist it entityManager.persist(pv); return pv; }
PackageType packageType = bundle.getPackageType(); architecture = (null == architecture) ? contentManager.getNoArchitecture() : architecture; if (architecture.getId() == 0) { Query q = entityManager.createNamedQuery(Architecture.QUERY_FIND_BY_NAME); q.setParameter("name", architecture.getName()); packageType.getId(), version, null, architecture.getId(), fileStream);
persisted.getArchitecture().getId(); if (persisted.getExtraProperties() != null) { persisted.getExtraProperties().getId();
architectureId = (null != architectureId) ? architectureId : contentManager.getNoArchitecture().getId();
@Override public InstalledPackage getBackingPackageForResource(Subject subject, int resourceId) { InstalledPackage result = null; // check if the resource is content backed if not, return null Resource res = resourceManager.getResourceById(subject, resourceId); ResourceType type = res.getResourceType(); if (!ResourceCreationDataType.CONTENT.equals(type.getCreationDataType())) { return null; } InstalledPackageCriteria criteria = new InstalledPackageCriteria(); criteria.addFilterResourceId(resourceId); PageList<InstalledPackage> ips = findInstalledPackagesByCriteria(subject, criteria); // should not be more than 1 if ((null != ips) && (ips.size() > 0)) { int mostRecentPackageIndex = 0; if (ips.size() > 1) { for (int index = 1; index < ips.size(); index++) { if (ips.get(index).getInstallationDate() > ips.get(mostRecentPackageIndex).getInstallationDate()) { mostRecentPackageIndex = index; } } } result = ips.get(mostRecentPackageIndex); // fetch these result.getPackageVersion().getGeneralPackage().getId(); result.getPackageVersion().getGeneralPackage().getPackageType().getId(); result.getPackageVersion().getArchitecture().getId(); } return result; }