Author: rombert
Date: Fri Sep 27 14:24:07 2013
New Revision: 1526912
URL: http://svn.apache.org/r1526912
Log:
SLING-3123 - Resource deletion no longer obeys filters
Apply filter for deleted resources.
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF?rev=1526912&r1=1526911&r2=1526912&view=diff
==============================================================================
---
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
(original)
+++
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
Fri Sep 27 14:24:07 2013
@@ -15,6 +15,7 @@ Import-Package: org.apache.commons.httpc
org.apache.commons.httpclient.auth;version="3.1.0",
org.apache.commons.httpclient.methods;version="3.1.0",
org.apache.commons.httpclient.params;version="3.1.0",
+ org.apache.commons.io;version="2.0.1",
org.apache.sling.ide.artifacts,
org.apache.sling.ide.filter,
org.apache.sling.ide.osgi,
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java?rev=1526912&r1=1526911&r2=1526912&view=diff
==============================================================================
---
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
(original)
+++
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
Fri Sep 27 14:24:07 2013
@@ -36,6 +36,7 @@ import org.apache.commons.httpclient.URI
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.io.IOUtils;
import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
import org.apache.sling.ide.eclipse.core.MavenLaunchHelper;
@@ -637,7 +638,8 @@ public class SlingLaunchpadBehaviour ext
(Object) fallbackPrimaryType));
}
- private FileInfo createFileInfo(IModuleResource resource, Repository
repository) throws SerializationException {
+ private FileInfo createFileInfo(IModuleResource resource, Repository
repository) throws SerializationException,
+ CoreException {
IResource file = getResource(resource);
if (file == null) {
@@ -649,13 +651,7 @@ public class SlingLaunchpadBehaviour ext
String syncDirectory = ProjectUtil.getSyncDirectoryValue(project);
File syncDirectoryAsFile = ProjectUtil.getSyncDirectoryFile(project);
- Filter filter = null;
- try {
- filter = loadFilter(project, project.getFolder(syncDirectory));
- } catch (CoreException e) {
- // TODO error handling
- e.printStackTrace();
- }
+ Filter filter = loadFilter(project.getFolder(syncDirectory));
if (filter != null) {
FilterResult filterResult = getFilterResult(resource, filter,
syncDirectoryAsFile,
@@ -725,13 +721,23 @@ public class SlingLaunchpadBehaviour ext
}
IFolder syncDirectory =
ProjectUtil.getSyncDirectory(deletedResource.getProject());
+ File syncDirectoryAsFile =
ProjectUtil.getSyncDirectoryFile(deletedResource.getProject());
+ Filter filter = loadFilter(syncDirectory);
+
+ if (filter != null) {
+ FilterResult filterResult = getFilterResult(resource, filter,
syncDirectoryAsFile, repository);
+ if (filterResult == FilterResult.DENY || filterResult ==
FilterResult.PREREQUISITE) {
+ return null;
+ }
+ }
+
ResourceProxy resourceProxy =
buildResourceProxyForPlainFileOrFolder(resource, syncDirectory);
return repository.newDeleteNodeCommand(resourceProxy);
}
- private Filter loadFilter(IProject project, final IFolder syncFolder)
throws CoreException {
+ private Filter loadFilter(final IFolder syncFolder) throws CoreException {
FilterLocator filterLocator =
Activator.getDefault().getFilterLocator();
File filterLocation =
filterLocator.findFilterLocation(syncFolder.getLocation().toFile());
if (filterLocation == null) {
@@ -746,14 +752,10 @@ public class SlingLaunchpadBehaviour ext
filter = filterLocator.loadFilter(contents);
} catch (IOException e) {
throw new CoreException(new Status(IStatus.ERROR,
Activator.PLUGIN_ID,
- "Failed loading filter file for project " +
project.getName() + " from location " + filterFile,
- e));
+ "Failed loading filter file for project " +
syncFolder.getProject().getName()
+ + " from location " + filterFile, e));
} finally {
- try {
- contents.close();
- } catch (IOException e) {
- // TODO exception handling
- }
+ IOUtils.closeQuietly(contents);
}
}
return filter;