Index: /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java
===================================================================
--- /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java	(revision 4644)
+++ /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java	(revision 4645)
@@ -17,6 +17,11 @@
 package eu.clarin.cmdi.vlo.config;
 
+import eu.clarin.cmdi.vlo.service.impl.ExclusiveFieldFilter;
+import eu.clarin.cmdi.vlo.service.impl.InclusiveFieldFilter;
+import com.google.common.collect.Sets;
+import eu.clarin.cmdi.vlo.FacetConstants;
 import eu.clarin.cmdi.vlo.VloWicketApplication;
 import eu.clarin.cmdi.vlo.service.FacetFieldsService;
+import eu.clarin.cmdi.vlo.service.FieldFilter;
 import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
 import eu.clarin.cmdi.vlo.service.ResourceTypeCountingService;
@@ -32,6 +37,8 @@
 import eu.clarin.cmdi.vlo.service.impl.SolrFacetQueryFactoryImpl;
 import java.io.IOException;
+import java.util.Set;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -112,3 +119,33 @@
         return new HttpSolrServer(vloConfig().getSolrUrl());
     }
+
+    @Bean(name = "basicPropertiesFilter")
+    public FieldFilter basicPropertiesFieldFilter() {
+        return new ExclusiveFieldFilter(Sets.union(IGNORE_FIELDS, TECHNICAL_FIELDS));
+    }
+
+    @Bean(name="technicalPropertiesFilter")
+    public FieldFilter technicalPropertiesFieldFilter() {
+        return new InclusiveFieldFilter(TECHNICAL_FIELDS);
+    }
+
+    /**
+     * Fields to be ignored. TODO: read this from config
+     */
+    public static final Set<String> IGNORE_FIELDS
+            = Sets.newHashSet(
+                    FacetConstants.FIELD_FORMAT);
+
+    /**
+     * Fields to be included in technical details. TODO: read this from config
+     */
+    public static final Set<String> TECHNICAL_FIELDS
+            = Sets.newHashSet(
+                    FacetConstants.FIELD_ID,
+                    FacetConstants.FIELD_DATA_PROVIDER,
+                    FacetConstants.FIELD_FORMAT,
+                    FacetConstants.FIELD_LANDINGPAGE,
+                    FacetConstants.FIELD_SEARCHPAGE,
+                    FacetConstants.FIELD_SEARCH_SERVICE,
+                    FacetConstants.FIELD_LAST_SEEN);
 }
Index: /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/ExclusiveFieldFilter.java
===================================================================
--- /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/ExclusiveFieldFilter.java	(revision 4645)
+++ /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/ExclusiveFieldFilter.java	(revision 4645)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 CLARIN
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package eu.clarin.cmdi.vlo.service.impl;
+
+import eu.clarin.cmdi.vlo.service.FieldFilter;
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
+ *
+ * @author twagoo
+ */
+public class ExclusiveFieldFilter implements FieldFilter, Serializable {
+
+    private final Collection<String> excludeFields;
+
+    public ExclusiveFieldFilter(Collection<String> excludeFields) {
+        this.excludeFields = excludeFields;
+    }
+
+    @Override
+    public boolean allowField(String fieldName) {
+        return !(fieldName.startsWith("_") || excludeFields.contains(fieldName));
+    }
+
+}
Index: /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/InclusiveFieldFilter.java
===================================================================
--- /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/InclusiveFieldFilter.java	(revision 4645)
+++ /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/InclusiveFieldFilter.java	(revision 4645)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 CLARIN
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package eu.clarin.cmdi.vlo.service.impl;
+
+import eu.clarin.cmdi.vlo.service.FieldFilter;
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
+ *
+ * @author twagoo
+ */
+public class InclusiveFieldFilter implements FieldFilter, Serializable {
+
+    private final Collection<String> includeFields;
+
+    public InclusiveFieldFilter(Collection<String> technicalFields) {
+        this.includeFields = technicalFields;
+    }
+
+    @Override
+    public boolean allowField(String fieldName) {
+        return includeFields.contains(fieldName);
+    }
+
+}
Index: /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java
===================================================================
--- /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java	(revision 4644)
+++ /vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java	(revision 4645)
@@ -17,5 +17,4 @@
 package eu.clarin.cmdi.vlo.wicket.pages;
 
-import com.google.common.collect.Sets;
 import eu.clarin.cmdi.vlo.FacetConstants;
 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
@@ -27,10 +26,9 @@
 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldStringModel;
 import eu.clarin.cmdi.vlo.wicket.provider.DocumentFieldsProvider;
-import java.io.Serializable;
-import java.util.Collection;
 import org.apache.solr.common.SolrDocument;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
 
 /**
@@ -40,22 +38,9 @@
 public class RecordPage extends WebPage {
 
-    /**
-     * Fields to be ignored. TODO: read this from config
-     */
-    private static final Collection<String> IGNORE_FIELDS
-            = Sets.newHashSet(
-                    FacetConstants.FIELD_FORMAT);
-    /**
-     * Fields to be included in technical details. TODO: read this from config
-     */
-    private static final Collection<String> TECHNICAL_FIELDS
-            = Sets.newHashSet(
-                    FacetConstants.FIELD_ID,
-                    FacetConstants.FIELD_DATA_PROVIDER,
-                    FacetConstants.FIELD_FORMAT,
-                    FacetConstants.FIELD_LANDINGPAGE,
-                    FacetConstants.FIELD_SEARCHPAGE,
-                    FacetConstants.FIELD_SEARCH_SERVICE,
-                    FacetConstants.FIELD_LAST_SEEN);
+    @SpringBean(name = "basicPropertiesFilter")
+    private FieldFilter basicPropertiesFilter;
+    @SpringBean(name = "technicalPropertiesFilter")
+    private FieldFilter technicalPropertiesFilter;
+    
     private final IModel<QueryFacetsSelection> contextModel;
 
@@ -66,7 +51,7 @@
         add(new SolrFieldLabel("name", documentModel, FacetConstants.FIELD_NAME, "Unnamed record"));
         add(createLandingPageLink("landingPageLink", documentModel));
-        add(new FieldsTablePanel("documentProperties", new DocumentFieldsProvider(documentModel, new BasicPropertiesFieldFilter())));
+        add(new FieldsTablePanel("documentProperties", new DocumentFieldsProvider(documentModel, basicPropertiesFilter)));
         add(new ResourceLinksPanel("resources", new SolrFieldModel<String>(documentModel, FacetConstants.FIELD_RESOURCE)));
-        add(new FieldsTablePanel("technicalProperties", new DocumentFieldsProvider(documentModel, new TechnicalPropertiesFieldFilter())));
+        add(new FieldsTablePanel("technicalProperties", new DocumentFieldsProvider(documentModel, technicalPropertiesFilter)));
     }
 
@@ -93,21 +78,3 @@
     }
 
-    private class BasicPropertiesFieldFilter implements FieldFilter, Serializable {
-
-        @Override
-        public boolean allowField(String fieldName) {
-            return !(fieldName.startsWith("_")
-                    || IGNORE_FIELDS.contains(fieldName)
-                    || TECHNICAL_FIELDS.contains(fieldName));
-        }
-    }
-
-    private class TechnicalPropertiesFieldFilter implements FieldFilter, Serializable {
-
-        @Override
-        public boolean allowField(String fieldName) {
-            return TECHNICAL_FIELDS.contains(fieldName);
-        }
-    }
-
 }
