solved an issue on versioning
This commit is contained in:
parent
7591536a69
commit
31751ca11e
|
@ -59,8 +59,6 @@ import org.gcube.data.access.storagehub.handlers.items.Node2ItemConverter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import net.bull.javamelody.internal.common.LOG;
|
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
public final static String SERVICE_NAME = "home-library";
|
public final static String SERVICE_NAME = "home-library";
|
||||||
|
@ -304,18 +302,14 @@ public class Utils {
|
||||||
public static void getAllContentIds(Session ses, Set<String> idsToDelete, Item itemToDelete, VersionHandler versionHandler) throws Exception{
|
public static void getAllContentIds(Session ses, Set<String> idsToDelete, Item itemToDelete, VersionHandler versionHandler) throws Exception{
|
||||||
if (itemToDelete instanceof AbstractFileItem) {
|
if (itemToDelete instanceof AbstractFileItem) {
|
||||||
Node currentNode = ses.getNodeByIdentifier(itemToDelete.getId());
|
Node currentNode = ses.getNodeByIdentifier(itemToDelete.getId());
|
||||||
List<NodeType> ntList = Arrays.asList(currentNode.getMixinNodeTypes());
|
List<Version> versions = null;
|
||||||
boolean isVersioned = false;
|
try {
|
||||||
logger.debug("mixin node type are {}",ntList);
|
versions = versionHandler.getContentVersionHistory(currentNode, ses);
|
||||||
for (NodeType nt: ntList)
|
}catch (Exception e) {
|
||||||
if(nt.getName().equals("mix:versionable")) {
|
logger.warn("versions cannot be retrieved for node with id {}",itemToDelete.getId());
|
||||||
isVersioned = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isVersioned) {
|
if (versions!= null) {
|
||||||
List<Version> versions = versionHandler.getContentVersionHistory(currentNode, ses);
|
|
||||||
|
|
||||||
versions.forEach(v -> {
|
versions.forEach(v -> {
|
||||||
try {
|
try {
|
||||||
String storageId =v.getFrozenNode().getProperty(NodeProperty.STORAGE_ID.toString()).getString();
|
String storageId =v.getFrozenNode().getProperty(NodeProperty.STORAGE_ID.toString()).getString();
|
||||||
|
@ -327,7 +321,7 @@ public class Utils {
|
||||||
});
|
});
|
||||||
|
|
||||||
} else
|
} else
|
||||||
logger.info("not versionable node type found of type {}", currentNode.getPrimaryNodeType().toString());
|
logger.info("not versionable node type found of type {}", currentNode.getPrimaryNodeType().getName().toString());
|
||||||
|
|
||||||
idsToDelete.add(((AbstractFileItem) itemToDelete).getContent().getStorageId());
|
idsToDelete.add(((AbstractFileItem) itemToDelete).getContent().getStorageId());
|
||||||
}else if (itemToDelete instanceof FolderItem) {
|
}else if (itemToDelete instanceof FolderItem) {
|
||||||
|
|
|
@ -10,10 +10,8 @@ import java.util.function.Predicate;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.jcr.Node;
|
import javax.jcr.Node;
|
||||||
import javax.jcr.NodeIterator;
|
|
||||||
import javax.jcr.PathNotFoundException;
|
import javax.jcr.PathNotFoundException;
|
||||||
import javax.jcr.RepositoryException;
|
import javax.jcr.RepositoryException;
|
||||||
import javax.jcr.query.QueryResult;
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.DELETE;
|
import javax.ws.rs.DELETE;
|
||||||
|
@ -33,7 +31,6 @@ import org.apache.jackrabbit.api.security.user.Query;
|
||||||
import org.apache.jackrabbit.api.security.user.QueryBuilder;
|
import org.apache.jackrabbit.api.security.user.QueryBuilder;
|
||||||
import org.apache.jackrabbit.api.security.user.User;
|
import org.apache.jackrabbit.api.security.user.User;
|
||||||
import org.apache.jackrabbit.core.security.principal.PrincipalImpl;
|
import org.apache.jackrabbit.core.security.principal.PrincipalImpl;
|
||||||
import org.apache.poi.hpsf.Array;
|
|
||||||
import org.gcube.common.authorization.control.annotations.AuthorizationControl;
|
import org.gcube.common.authorization.control.annotations.AuthorizationControl;
|
||||||
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
||||||
import org.gcube.common.storagehub.model.Excludes;
|
import org.gcube.common.storagehub.model.Excludes;
|
||||||
|
|
Loading…
Reference in New Issue