Author: rombert
Date: Thu Sep 12 15:56:10 2013
New Revision: 1522638

URL: http://svn.apache.org/r1522638
Log:
SLING-2989 - [Tooling] integrate with vlt once available

Allow default versions of filters to be returned by the FilterLocator,
if no filter file exists.

This supports vlt's concept of default workspace filter, which notably
excludes jcr:content and /var/classes.

Modified:
    
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/filter/FilterLocator.java
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizard.java
    
sling/branches/tooling-ide-vlt/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
    
sling/branches/tooling-ide-vlt/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/filter/FilterLocator.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/filter/FilterLocator.java?rev=1522638&r1=1522637&r2=1522638&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/filter/FilterLocator.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/filter/FilterLocator.java
 Thu Sep 12 15:56:10 2013
@@ -25,5 +25,16 @@ public interface FilterLocator {
     // TODO - should be File[] to allow multiple lookups, see {filter-vlt.xml, 
filter.xml}
     File findFilterLocation(File syncDirectory);
 
+    /**
+     * Loads a filter based on the raw <tt>filterFileContents</tt>
+     * 
+     * <p>
+     * If the <tt>filterFileContents</tt> is null it returns a default filter
+     * </p>
+     * 
+     * @param filterFileContents the raw contents of the filter file, possibly 
null
+     * @return
+     * @throws IOException
+     */
     Filter loadFilter(InputStream filterFileContents) throws IOException;
 }

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizard.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizard.java?rev=1522638&r1=1522637&r2=1522638&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizard.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ImportWizard.java
 Thu Sep 12 15:56:10 2013
@@ -118,14 +118,13 @@ public class ImportWizard extends Wizard
                     }
 
                     Filter filter = null;
+
+                    FilterLocator filterLocator = 
Activator.getDefault().getFilterLocator();
+                    InputStream contents = null;
+
                     if (filterFile != null && filterFile.exists()) {
-                        FilterLocator filterLocator = 
Activator.getDefault().getFilterLocator();
-                        InputStream contents = null;
                         try {
                             contents = filterFile.getContents();
-                            filter = filterLocator.loadFilter(contents);
-                        } catch (IOException e) {
-                            throw new InvocationTargetException(e);
                         } catch (CoreException e) {
                             throw new InvocationTargetException(e);
                         } finally {
@@ -138,6 +137,13 @@ public class ImportWizard extends Wizard
                             }
                         }
                     }
+
+                    try {
+                        filter = filterLocator.loadFilter(contents);
+                    } catch (IOException e) {
+                        throw new InvocationTargetException(e);
+                    }
+
                     monitor.worked(5);
 
                     try {

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java?rev=1522638&r1=1522637&r2=1522638&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/filer/SimpleFilterLocator.java
 Thu Sep 12 15:56:10 2013
@@ -53,12 +53,14 @@ public class SimpleFilterLocator impleme
     public Filter loadFilter(InputStream filterFileContents) throws 
IOException {
 
         List<String> filters = new ArrayList<String>();
-        BufferedReader reader = new BufferedReader(new 
InputStreamReader(filterFileContents));
-        String line;
-        while ((line = reader.readLine()) != null) {
-            if (line.charAt(0) == '#')
-                continue;
-            filters.add(line);
+        if (filterFileContents != null) {
+            BufferedReader reader = new BufferedReader(new 
InputStreamReader(filterFileContents));
+            String line;
+            while ((line = reader.readLine()) != null) {
+                if (line.charAt(0) == '#')
+                    continue;
+                filters.add(line);
+            }
         }
 
         return new SimpleFilter(filters);

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java?rev=1522638&r1=1522637&r2=1522638&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/filter/VltFilter.java
 Thu Sep 12 15:56:10 2013
@@ -20,24 +20,26 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 
-
-import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
 import org.apache.jackrabbit.vault.fs.config.ConfigurationException;
 import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;
+import org.apache.jackrabbit.vault.fs.impl.AggregateManagerImpl;
 import org.apache.sling.ide.filter.Filter;
 import org.apache.sling.ide.filter.FilterResult;
 import org.apache.sling.ide.transport.RepositoryInfo;
 
 public class VltFilter implements Filter {
 
-    private WorkspaceFilter filter;
+    private DefaultWorkspaceFilter filter;
 
     public VltFilter(InputStream in) throws IOException, 
ConfigurationException {
 
-        DefaultWorkspaceFilter filter = new DefaultWorkspaceFilter();
-        filter.load(in);
+        if (in != null) {
+            filter = new DefaultWorkspaceFilter();
+            filter.load(in);
+        } else {
+            filter = AggregateManagerImpl.getDefaultWorkspaceFilter();
+        }
 
-        this.filter = filter;
     }
 
     @Override


Reply via email to