Author: rombert
Date: Fri Feb 26 15:19:28 2016
New Revision: 1732500
URL: http://svn.apache.org/viewvc?rev=1732500&view=rev
Log:
SLING-5564 - Hide WEB-INF and META-INF under the content sync root
Modified:
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
Modified:
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java?rev=1732500&r1=1732499&r2=1732500&view=diff
==============================================================================
---
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
(original)
+++
sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/JcrContentContentProviderTest.java
Fri Feb 26 15:19:28 2016
@@ -16,6 +16,8 @@
*/
package org.apache.sling.ide.test.impl;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
@@ -128,6 +130,24 @@ public class JcrContentContentProviderTe
assertIsNavigableAndHasNoChildren(syncDirNode,
"/content/jcr:content/first-folder/second-folder");
}
+ @Test
+ public void listChildrenOnSyncDirIgnoresWebInfAndMetaInf() throws
Exception {
+
+
project.ensureDirectoryExists(Path.fromPortableString("jcr_root/WEB-INF"));
+
project.ensureDirectoryExists(Path.fromPortableString("jcr_root/META-INF"));
+
project.ensureDirectoryExists(Path.fromPortableString("jcr_root/content"));
+
+ // directly create the root node
+ SyncDir syncDirNode = new SyncDir((IFolder)
contentProject.findMember("jcr_root"));
+
+ // assertion
+ Object[] children = new
JcrContentContentProvider().getChildren(syncDirNode);
+ assertThat(children.length, equalTo(1));
+
+ JcrNode child = (JcrNode) children[0];
+ assertThat(child.getName(), equalTo("content"));
+ }
+
/**
* Asserts that the specified <tt>nodePath</tt> is reachable from the
<tt>startNode</tt>
*
Modified:
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
URL:
http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java?rev=1732500&r1=1732499&r2=1732500&view=diff
==============================================================================
---
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
(original)
+++
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
Fri Feb 26 15:19:28 2016
@@ -342,6 +342,12 @@ public class JcrNode implements IAdaptab
it.remove();
continue;
}
+
+ if (childShouldNotBeShown(iResource)) {
+ it.remove();
+ continue;
+ }
+
if (isVaultFile(iResource)) {
GenericJcrRootFile gjrf;
try {
@@ -406,6 +412,10 @@ public class JcrNode implements IAdaptab
return Activator.getDefault().getSerializationManager()
.isSerializationFile(iResource.getLocation().toOSString());
}
+
+ protected boolean childShouldNotBeShown(IResource resource) {
+ return false;
+ }
public void setResource(IResource resource) {
if (this.resource!=null) {
Modified:
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
URL:
http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java?rev=1732500&r1=1732499&r2=1732500&view=diff
==============================================================================
---
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
(original)
+++
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/SyncDir.java
Fri Feb 26 15:19:28 2016
@@ -42,6 +42,15 @@ public class SyncDir extends JcrNode {
}
@Override
+ protected boolean childShouldNotBeShown(IResource resource) {
+ // WTP Dynamic Web projects automatically create WEB-INF/lib and
META-INF/MANIFEST.MF in the
+ // web content directory, even though they don't make sense for
Sling projects
+ // So just ignore these in our own navigator
+ return resource.getType() == IResource.FOLDER &&
+ ( resource.getName().equals("WEB-INF") ||
resource.getName().equals("META-INF"));
+ }
+
+ @Override
public boolean equals(Object obj) {
if (obj instanceof SyncDir) {
SyncDir other = (SyncDir) obj;