@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public CreateResourceHistory persistCreateHistory(Subject user, int parentResourceId, int resourceTypeId, String createResourceName, Configuration configuration) { // Load relationships Resource parentResource = entityManager.getReference(Resource.class, parentResourceId); ResourceType resourceType = entityManager.getReference(ResourceType.class, resourceTypeId); // CreateResourceHistory.configuration is one-to-one, so make sure to clone the config, zeroing out all id's. Configuration configurationClone = (configuration != null) ? configuration.deepCopy(false) : null; // Persist and establish relationships CreateResourceHistory history = new CreateResourceHistory(parentResource, resourceType, user.getName(), configurationClone); history.setCreatedResourceName(createResourceName); history.setStatus(CreateResourceStatus.IN_PROGRESS); entityManager.persist(history); parentResource.addCreateChildResourceHistory(history); // Caller will need this parentResource.getAgent(); return history; }
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public CreateResourceHistory persistCreateHistory(Subject user, int parentResourceId, int resourceTypeId, String createResourceName, PackageVersion packageVersion, Configuration deploymentTimeConfiguration) { // Load relationships Resource parentResource = entityManager.getReference(Resource.class, parentResourceId); ResourceType resourceType = entityManager.getReference(ResourceType.class, resourceTypeId); // Persist and establish relationships // TODO: Note, InstalledPackage is set to null because it doesn't really make sense. An InstalledPackage // represents a backing package relationship between a Resource and a PackageVersion, not its parent. // I think it should probably be removed from the history entity. -jshaughn 9/1/09. CreateResourceHistory history = new CreateResourceHistory(parentResource, resourceType, user.getName(), (InstalledPackage) null); history.setCreatedResourceName(createResourceName); history.setConfiguration(deploymentTimeConfiguration); history.setStatus(CreateResourceStatus.IN_PROGRESS); entityManager.persist(history); parentResource.addCreateChildResourceHistory(history); // Caller will need this parentResource.getAgent(); return history; }