You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by as...@apache.org on 2012/10/31 14:50:38 UTC
svn commit: r1404140 - in /sling/whiteboard/asanso/plugins/eclipse:
slingclipse-api/src/org/apache/sling/slingclipse/api/
slingclipse-http/src/org/apache/sling/slingclipse/http/impl/
slingclipse-plugin/src/org/apache/sling/slingclipse/
Author: asanso
Date: Wed Oct 31 13:50:38 2012
New Revision: 1404140
URL: http://svn.apache.org/viewvc?rev=1404140&view=rev
Log:
SLING-2631 - [Tooling] SlingclipseListener incorrectly calculates parent paths. Applying patch from Robert Munteanu!
Modified:
sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/FileInfo.java
sling/whiteboard/asanso/plugins/eclipse/slingclipse-http/src/org/apache/sling/slingclipse/http/impl/AbstractRepository.java
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/SlingclipseListener.java
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/FileInfo.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/FileInfo.java?rev=1404140&r1=1404139&r2=1404140&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/FileInfo.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-api/src/org/apache/sling/slingclipse/api/FileInfo.java Wed Oct 31 13:50:38 2012
@@ -22,6 +22,13 @@ public class FileInfo {
private String name;
private String relativeLocation;
+ /**
+ * Constructs a new <tt>FileInfo</tt> object
+ *
+ * @param location the absolute location of the file on the filesystem
+ * @param relativeLocation the location of the file relative to the repository root
+ * @param name the name of the file
+ */
public FileInfo(String location, String relativeLocation,String name) {
super();
this.location = location;
@@ -39,5 +46,11 @@ public class FileInfo {
public String getRelativeLocation() {
return relativeLocation;
+ }
+
+ @Override
+ public String toString() {
+ return "FileInfo [location=" + location + ", name=" + name
+ + ", relativeLocation=" + relativeLocation + "]";
}
}
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-http/src/org/apache/sling/slingclipse/http/impl/AbstractRepository.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-http/src/org/apache/sling/slingclipse/http/impl/AbstractRepository.java?rev=1404140&r1=1404139&r2=1404140&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-http/src/org/apache/sling/slingclipse/http/impl/AbstractRepository.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-http/src/org/apache/sling/slingclipse/http/impl/AbstractRepository.java Wed Oct 31 13:50:38 2012
@@ -26,5 +26,10 @@ public abstract class AbstractRepository
public void setRepositoryInfo(RepositoryInfo repositoryInfo){
this.repositoryInfo=repositoryInfo;
}
-
+
+
+ @Override
+ public String toString() {
+ return "AbstractRepository [repositoryInfo=" + repositoryInfo + "]";
+ }
}
Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/SlingclipseListener.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/SlingclipseListener.java?rev=1404140&r1=1404139&r2=1404140&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/SlingclipseListener.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/SlingclipseListener.java Wed Oct 31 13:50:38 2012
@@ -21,12 +21,14 @@ import org.apache.sling.slingclipse.api.
import org.apache.sling.slingclipse.api.RepositoryInfo;
import org.apache.sling.slingclipse.helper.SlingclipseHelper;
import org.apache.sling.slingclipse.preferences.PreferencesMessages;
+import org.eclipse.core.internal.resources.Resource;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -62,8 +64,9 @@ public class SlingclipseListener impleme
private boolean visitInternal(IResourceDelta delta) {
IPreferenceStore store = SlingclipsePlugin.getDefault().getPreferenceStore();
+ // since the listener is disabled, instruct it not to recurse for changes
if (!store.getBoolean(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey())){
- return true;
+ return false;
}
if (delta.getFlags() == IResourceDelta.NO_CHANGE
@@ -73,11 +76,16 @@ public class SlingclipseListener impleme
}
IResource resource = delta.getResource();
- String path = resource.getLocation().toString();
- if (SlingclipseHelper.isValidSlingProjectPath(path)) {
- // TODO parent name clarify
- String parentPath = resource.getParent().getFullPath().toString();
+ // don't process unhandled ( PROJECT, WORKSPACE ) resources but recurse if needed
+ if ( resource.getType() != IResource.FILE && resource.getType() != IResource.FOLDER){
+ return true;
+ }
+
+ IPath path = resource.getLocation();
+
+ if (SlingclipseHelper.isValidSlingProjectPath(path.toOSString())) {
+ IPath parentPath = path.removeLastSegments(1);
RepositoryInfo repositoryInfo = new RepositoryInfo(
store.getString(PreferencesMessages.USERNAME
@@ -89,8 +97,8 @@ public class SlingclipseListener impleme
Repository repository = SlingclipsePlugin.getDefault().getRepository();
- FileInfo fileInfo = new FileInfo(path,SlingclipseHelper.getSlingProjectPath(parentPath),resource.getName());
-
+ FileInfo fileInfo = new FileInfo(path.toOSString(), SlingclipseHelper.getSlingProjectPath(parentPath.toOSString()),resource.getName());
+
repository.setRepositoryInfo(repositoryInfo);
if (delta.getKind() == IResourceDelta.REMOVED) {