Fixes NPE during include/exclude action and fixes resource loading error
diff --git a/org.eclipse.babel.core/src/org/eclipse/babel/core/message/manager/RBManager.java b/org.eclipse.babel.core/src/org/eclipse/babel/core/message/manager/RBManager.java
index 4c139f9..4a25ccc 100644
--- a/org.eclipse.babel.core/src/org/eclipse/babel/core/message/manager/RBManager.java
+++ b/org.eclipse.babel.core/src/org/eclipse/babel/core/message/manager/RBManager.java
@@ -50,24 +50,24 @@
  * 
  * @author Alexej Strelzow
  */
-public class RBManager {
+public final class RBManager {
 
     private static Map<IProject, RBManager> managerMap = new HashMap<IProject, RBManager>();
 
     /** <package>.<resourceBundleName> , IMessagesBundleGroup */
-    private Map<String, IMessagesBundleGroup> resourceBundles;
+    private final Map<String, IMessagesBundleGroup> resourceBundles;
 
     private static RBManager INSTANCE;
 
-    private List<IMessagesEditorListener> editorListeners;
+    private final List<IMessagesEditorListener> editorListeners;
 
-    private List<IResourceDeltaListener> resourceListeners;
+    private final List<IResourceDeltaListener> resourceListeners;
 
     private IProject project;
 
     private static final String TAPIJI_NATURE = "org.eclipse.babel.tapiji.tools.core.ui.nature";
 
-    private static Logger logger = Logger.getLogger(RBManager.class
+    final static Logger logger = Logger.getLogger(RBManager.class
             .getSimpleName());
 
     private static IRefactoringService refactorService;
diff --git a/org.eclipse.babel.tapiji.tools.core.ui/src/org/eclipse/babel/tapiji/tools/core/ui/ResourceBundleManager.java b/org.eclipse.babel.tapiji.tools.core.ui/src/org/eclipse/babel/tapiji/tools/core/ui/ResourceBundleManager.java
index 2a46518..eebcd8c 100644
--- a/org.eclipse.babel.tapiji.tools.core.ui/src/org/eclipse/babel/tapiji/tools/core/ui/ResourceBundleManager.java
+++ b/org.eclipse.babel.tapiji.tools.core.ui/src/org/eclipse/babel/tapiji/tools/core/ui/ResourceBundleManager.java
@@ -58,783 +58,801 @@
 
 public class ResourceBundleManager {
 
-    public static String defaultLocaleTag = "[default]"; // TODO externalize
+	public static String defaultLocaleTag = "[default]"; // TODO externalize
 
-    /*** CONFIG SECTION ***/
-    private static boolean checkResourceExclusionRoot = false;
+	/*** CONFIG SECTION ***/
+	private static boolean checkResourceExclusionRoot = false;
 
-    /*** MEMBER SECTION ***/
-    private static Map<IProject, ResourceBundleManager> rbmanager = new HashMap<IProject, ResourceBundleManager>();
+	/*** MEMBER SECTION ***/
+	private static Map<IProject, ResourceBundleManager> rbmanager = new HashMap<IProject, ResourceBundleManager>();
 
-    public static final String RESOURCE_BUNDLE_EXTENSION = ".properties";
+	public static final String RESOURCE_BUNDLE_EXTENSION = ".properties";
 
-    // project-specific
-    private Map<String, Set<IResource>> resources = new HashMap<String, Set<IResource>>();
+	// project-specific
+	private Map<String, Set<IResource>> resources = new HashMap<String, Set<IResource>>();
 
-    private Map<String, String> bundleNames = new HashMap<String, String>();
+	private Map<String, String> bundleNames = new HashMap<String, String>();
 
-    private Map<String, List<IResourceBundleChangedListener>> listeners = new HashMap<String, List<IResourceBundleChangedListener>>();
+	private Map<String, List<IResourceBundleChangedListener>> listeners = new HashMap<String, List<IResourceBundleChangedListener>>();
 
-    private List<IResourceExclusionListener> exclusionListeners = new ArrayList<IResourceExclusionListener>();
+	private List<IResourceExclusionListener> exclusionListeners = new ArrayList<IResourceExclusionListener>();
 
-    // global
-    private static Set<IResourceDescriptor> excludedResources = new HashSet<IResourceDescriptor>();
+	// global
+	private static Set<IResourceDescriptor> excludedResources = new HashSet<IResourceDescriptor>();
 
-    private static Map<String, Set<IResource>> allBundles = new HashMap<String, Set<IResource>>();
+	private static Map<String, Set<IResource>> allBundles = new HashMap<String, Set<IResource>>();
 
-    // private static IResourceChangeListener changelistener; //
-    // RBChangeListener -> see stateLoader!
+	// private static IResourceChangeListener changelistener; //
+	// RBChangeListener -> see stateLoader!
 
-    public static final String NATURE_ID = "org.eclipse.babel.tapiji.tools.core.ui.nature";
+	public static final String NATURE_ID = "org.eclipse.babel.tapiji.tools.core.ui.nature";
 
-    public static final String BUILDER_ID = Activator.PLUGIN_ID
-            + ".I18NBuilder";
+	public static final String BUILDER_ID = Activator.PLUGIN_ID
+			+ ".I18NBuilder";
 
-    /* Host project */
-    private IProject project = null;
+	/* Host project */
+	private IProject project = null;
 
-    /** State-Serialization Information **/
-    private static boolean state_loaded = false;
+	/** State-Serialization Information **/
+	private static boolean state_loaded = false;
 
-    private static IStateLoader stateLoader;
+	private static IStateLoader stateLoader;
 
-    // Define private constructor
-    private ResourceBundleManager(IProject project) {
-        this.project = project;
+	// Define private constructor
+	private ResourceBundleManager(IProject project) {
+		this.project = project;
 
-        RBManager.getInstance(project).addResourceDeltaListener(
-                new IResourceDeltaListener() {
+		RBManager.getInstance(project).addResourceDeltaListener(
+				new IResourceDeltaListener() {
 
-                    /**
-                     * {@inheritDoc}
-                     */
-                    @Override
-                    public void onDelete(IMessagesBundleGroup bundleGroup) {
-                        resources.remove(bundleGroup.getResourceBundleId());
-                    }
+					/**
+					 * {@inheritDoc}
+					 */
+					@Override
+					public void onDelete(IMessagesBundleGroup bundleGroup) {
+						resources.remove(bundleGroup.getResourceBundleId());
+					}
 
-                    /**
-                     * {@inheritDoc}
-                     */
-                    @Override
-                    public void onDelete(String resourceBundleId,
-                            IResource resource) {
-                        resources.get(resourceBundleId).remove(resource);
-                    }
-                });
-    }
+					/**
+					 * {@inheritDoc}
+					 */
+					@Override
+					public void onDelete(String resourceBundleId,
+							IResource resource) {
+						resources.get(resourceBundleId).remove(resource);
+					}
+				});
+	}
 
-    public static ResourceBundleManager getManager(IProject project) {
-        // check if persistant state has been loaded
-        if (!state_loaded) {
-            IStateLoader stateLoader = getStateLoader();
-            if (stateLoader != null) {
-                stateLoader.loadState();
-                state_loaded = true;
-                excludedResources = stateLoader.getExcludedResources();
-            } else {
-                Logger.logError("State-Loader uninitialized! Unable to restore project state.");
-            }
-        }
+	public static ResourceBundleManager getManager(IProject project) {
+		// check if persistant state has been loaded
+		if (!state_loaded) {
+			IStateLoader stateLoader = getStateLoader();
+			if (stateLoader != null) {
+				stateLoader.loadState();
+				state_loaded = true;
+				excludedResources = stateLoader.getExcludedResources();
+			} else {
+				Logger.logError("State-Loader uninitialized! Unable to restore project state.");
+			}
+		}
 
-        // set host-project
-        if (FragmentProjectUtils.isFragment(project)) {
-            project = FragmentProjectUtils.getFragmentHost(project);
-        }
+		// set host-project
+		if (FragmentProjectUtils.isFragment(project)) {
+			project = FragmentProjectUtils.getFragmentHost(project);
+		}
 
-        ResourceBundleManager manager = rbmanager.get(project);
-        if (manager == null) {
-            manager = new ResourceBundleManager(project);
-            rbmanager.put(project, manager);
-            manager.detectResourceBundles();
-        }
-        return manager;
-    }
+		ResourceBundleManager manager = rbmanager.get(project);
+		if (manager == null) {
+			manager = new ResourceBundleManager(project);
+			rbmanager.put(project, manager);
+			manager.detectResourceBundles();
+		}
+		return manager;
+	}
 
-    public Set<Locale> getProvidedLocales(String bundleName) {
-        RBManager instance = RBManager.getInstance(project);
+	public Set<Locale> getProvidedLocales(String bundleName) {
+		RBManager instance = RBManager.getInstance(project);
 
-        Set<Locale> locales = new HashSet<Locale>();
-        IMessagesBundleGroup group = instance
-                .getMessagesBundleGroup(bundleName);
-        if (group == null) {
-            return locales;
-        }
+		Set<Locale> locales = new HashSet<Locale>();
+		IMessagesBundleGroup group = instance
+				.getMessagesBundleGroup(bundleName);
+		if (group == null) {
+			return locales;
+		}
 
-        for (IMessagesBundle bundle : group.getMessagesBundles()) {
-            locales.add(bundle.getLocale());
-        }
-        return locales;
-    }
+		for (IMessagesBundle bundle : group.getMessagesBundles()) {
+			locales.add(bundle.getLocale());
+		}
+		return locales;
+	}
 
-    public static String getResourceBundleName(IResource res) {
-        String name = res.getName();
-        String regex = "^(.*?)" //$NON-NLS-1$
-                + "((_[a-z]{2,3})|(_[a-z]{2,3}_[A-Z]{2})" //$NON-NLS-1$
-                + "|(_[a-z]{2,3}_[A-Z]{2}_\\w*))?(\\." //$NON-NLS-1$
-                + res.getFileExtension() + ")$"; //$NON-NLS-1$
-        return name.replaceFirst(regex, "$1"); //$NON-NLS-1$
-    }
+	public static String getResourceBundleName(IResource res) {
+		String name = res.getName();
+		String regex = "^(.*?)" //$NON-NLS-1$
+				+ "((_[a-z]{2,3})|(_[a-z]{2,3}_[A-Z]{2})" //$NON-NLS-1$
+				+ "|(_[a-z]{2,3}_[A-Z]{2}_\\w*))?(\\." //$NON-NLS-1$
+				+ res.getFileExtension() + ")$"; //$NON-NLS-1$
+		return name.replaceFirst(regex, "$1"); //$NON-NLS-1$
+	}
 
-    protected boolean isResourceBundleLoaded(String bundleName) {
-        return RBManager.getInstance(project).containsMessagesBundleGroup(
-                bundleName);
-    }
+	protected boolean isResourceBundleLoaded(String bundleName) {
+		return RBManager.getInstance(project).containsMessagesBundleGroup(
+				bundleName);
+	}
 
-    protected void unloadResource(String bundleName, IResource resource) {
-        // TODO implement more efficient
-        unloadResourceBundle(bundleName);
-        // loadResourceBundle(bundleName);
-    }
+	protected void unloadResource(String bundleName, IResource resource) {
+		// TODO implement more efficient
+		unloadResourceBundle(bundleName);
+		// loadResourceBundle(bundleName);
+	}
 
-    public static String getResourceBundleId(IResource resource) {
-        String packageFragment = "";
+	public static String getResourceBundleId(IResource resource) {
+		String packageFragment = "";
 
-        IJavaElement propertyFile = JavaCore.create(resource.getParent());
-        if (propertyFile != null && propertyFile instanceof IPackageFragment) {
-            packageFragment = ((IPackageFragment) propertyFile)
-                    .getElementName();
-        }
+		IJavaElement propertyFile = JavaCore.create(resource.getParent());
+		if (propertyFile != null && propertyFile instanceof IPackageFragment) {
+			packageFragment = ((IPackageFragment) propertyFile)
+					.getElementName();
+		}
 
-        return (packageFragment.length() > 0 ? packageFragment + "." : "")
-                + getResourceBundleName(resource);
-    }
+		return (packageFragment.length() > 0 ? packageFragment + "." : "")
+				+ getResourceBundleName(resource);
+	}
 
-    public void addBundleResource(IResource resource) {
-        if (resource.isDerived()) {
-            return;
-        }
+	public void addBundleResource(IResource resource) {
+		if (resource.isDerived()) {
+			return;
+		}
 
-        String bundleName = getResourceBundleId(resource);
-        Set<IResource> res;
+		String bundleName = getResourceBundleId(resource);
+		Set<IResource> res;
 
-        if (!resources.containsKey(bundleName)) {
-            res = new HashSet<IResource>();
-        } else {
-            res = resources.get(bundleName);
-        }
+		if (!resources.containsKey(bundleName)) {
+			res = new HashSet<IResource>();
+		} else {
+			res = resources.get(bundleName);
+		}
 
-        res.add(resource);
-        resources.put(bundleName, res);
-        allBundles.put(bundleName, new HashSet<IResource>(res));
-        bundleNames.put(bundleName, getResourceBundleName(resource));
+		res.add(resource);
 
-        // Fire resource changed event
-        ResourceBundleChangedEvent event = new ResourceBundleChangedEvent(
-                ResourceBundleChangedEvent.ADDED, bundleName,
-                resource.getProject());
-        this.fireResourceBundleChangedEvent(bundleName, event);
-    }
+		if (bundleName.equals("org.example.com")) {
+			Logger.logInfo("adding bundle with id: " + bundleName);
+		}
+		
+		resources.put(bundleName, res);
+		allBundles.put(bundleName, new HashSet<IResource>(res));
+		bundleNames.put(bundleName, getResourceBundleName(resource));
 
-    protected void removeAllBundleResources(String bundleName) {
-        unloadResourceBundle(bundleName);
-        resources.remove(bundleName);
-        // allBundles.remove(bundleName);
-        listeners.remove(bundleName);
-    }
+		// Fire resource changed event
+		ResourceBundleChangedEvent event = new ResourceBundleChangedEvent(
+				ResourceBundleChangedEvent.ADDED, bundleName,
+				resource.getProject());
+		this.fireResourceBundleChangedEvent(bundleName, event);
+	}
 
-    public void unloadResourceBundle(String name) {
-        RBManager instance = RBManager.getInstance(project);
-        instance.deleteMessagesBundleGroup(name);
-    }
+	protected void removeAllBundleResources(String bundleName) {
+		unloadResourceBundle(bundleName);
+		resources.remove(bundleName);
+		// allBundles.remove(bundleName);
+		listeners.remove(bundleName);
+	}
 
-    public IMessagesBundleGroup getResourceBundle(String name) {
-        RBManager instance = RBManager.getInstance(project);
-        return instance.getMessagesBundleGroup(name);
-    }
+	public void unloadResourceBundle(String name) {
+		RBManager instance = RBManager.getInstance(project);
+		instance.deleteMessagesBundleGroup(name);
+	}
 
-    public Collection<IResource> getResourceBundles(String bundleName) {
-        return resources.get(bundleName);
-    }
+	public IMessagesBundleGroup getResourceBundle(String name) {
+		RBManager instance = RBManager.getInstance(project);
+		return instance.getMessagesBundleGroup(name);
+	}
 
-    public List<String> getResourceBundleNames() {
-        List<String> returnList = new ArrayList<String>();
+	public Collection<IResource> getResourceBundles(String bundleName) {
+		return resources.get(bundleName);
+	}
 
-        Iterator<String> it = resources.keySet().iterator();
-        while (it.hasNext()) {
-            returnList.add(it.next());
-        }
-        return returnList;
-    }
+	public List<String> getResourceBundleNames() {
+		List<String> returnList = new ArrayList<String>();
 
-    public IResource getResourceFile(String file) {
-        String regex = "^(.*?)" + "((_[a-z]{2,3})|(_[a-z]{2,3}_[A-Z]{2})"
-                + "|(_[a-z]{2,3}_[A-Z]{2}_\\w*))?(\\." + "properties" + ")$";
-        String bundleName = file.replaceFirst(regex, "$1");
-        IResource resource = null;
+		Iterator<String> it = resources.keySet().iterator();
+		while (it.hasNext()) {
+			returnList.add(it.next());
+		}
+		return returnList;
+	}
 
-        for (IResource res : resources.get(bundleName)) {
-            if (res.getName().equalsIgnoreCase(file)) {
-                resource = res;
-                break;
-            }
-        }
+	public IResource getResourceFile(String file) {
+		String regex = "^(.*?)" + "((_[a-z]{2,3})|(_[a-z]{2,3}_[A-Z]{2})"
+				+ "|(_[a-z]{2,3}_[A-Z]{2}_\\w*))?(\\." + "properties" + ")$";
+		String bundleName = file.replaceFirst(regex, "$1");
+		IResource resource = null;
 
-        return resource;
-    }
+		for (IResource res : resources.get(bundleName)) {
+			if (res.getName().equalsIgnoreCase(file)) {
+				resource = res;
+				break;
+			}
+		}
 
-    public void fireResourceBundleChangedEvent(String bundleName,
-            ResourceBundleChangedEvent event) {
-        List<IResourceBundleChangedListener> l = listeners.get(bundleName);
+		return resource;
+	}
 
-        if (l == null) {
-            return;
-        }
+	public void fireResourceBundleChangedEvent(String bundleName,
+			ResourceBundleChangedEvent event) {
+		List<IResourceBundleChangedListener> l = listeners.get(bundleName);
 
-        for (IResourceBundleChangedListener listener : l) {
-            listener.resourceBundleChanged(event);
-        }
-    }
+		if (l == null) {
+			return;
+		}
 
-    public void registerResourceBundleChangeListener(String bundleName,
-            IResourceBundleChangedListener listener) {
-        List<IResourceBundleChangedListener> l = listeners.get(bundleName);
-        if (l == null) {
-            l = new ArrayList<IResourceBundleChangedListener>();
-        }
-        l.add(listener);
-        listeners.put(bundleName, l);
-    }
+		for (IResourceBundleChangedListener listener : l) {
+			listener.resourceBundleChanged(event);
+		}
+	}
 
-    public void unregisterResourceBundleChangeListener(String bundleName,
-            IResourceBundleChangedListener listener) {
-        List<IResourceBundleChangedListener> l = listeners.get(bundleName);
-        if (l == null) {
-            return;
-        }
-        l.remove(listener);
-        listeners.put(bundleName, l);
-    }
+	public void registerResourceBundleChangeListener(String bundleName,
+			IResourceBundleChangedListener listener) {
+		List<IResourceBundleChangedListener> l = listeners.get(bundleName);
+		if (l == null) {
+			l = new ArrayList<IResourceBundleChangedListener>();
+		}
+		l.add(listener);
+		listeners.put(bundleName, l);
+	}
 
-    protected void detectResourceBundles() {
-        try {
-            project.accept(new ResourceBundleDetectionVisitor(getProject()));
+	public void unregisterResourceBundleChangeListener(String bundleName,
+			IResourceBundleChangedListener listener) {
+		List<IResourceBundleChangedListener> l = listeners.get(bundleName);
+		if (l == null) {
+			return;
+		}
+		l.remove(listener);
+		listeners.put(bundleName, l);
+	}
 
-            IProject[] fragments = FragmentProjectUtils.lookupFragment(project);
-            if (fragments != null) {
-                for (IProject p : fragments) {
-                    p.accept(new ResourceBundleDetectionVisitor(getProject()));
-                }
-            }
-        } catch (CoreException e) {
-        }
-    }
+	protected void detectResourceBundles() {
+		try {
+			project.accept(new ResourceBundleDetectionVisitor(getProject()));
 
-    public IProject getProject() {
-        return project;
-    }
+			IProject[] fragments = FragmentProjectUtils.lookupFragment(project);
+			if (fragments != null) {
+				for (IProject p : fragments) {
+					p.accept(new ResourceBundleDetectionVisitor(getProject()));
+				}
+			}
+		} catch (CoreException e) {
+		}
+	}
 
-    public List<String> getResourceBundleIdentifiers() {
-        List<String> returnList = new ArrayList<String>();
+	public IProject getProject() {
+		return project;
+	}
 
-        // TODO check other resource bundles that are available on the curren
-        // class path
-        Iterator<String> it = this.resources.keySet().iterator();
-        while (it.hasNext()) {
-            returnList.add(it.next());
-        }
+	public List<String> getResourceBundleIdentifiers() {
+		List<String> returnList = new ArrayList<String>();
 
-        return returnList;
-    }
+		// TODO check other resource bundles that are available on the curren
+		// class path
+		Iterator<String> it = this.resources.keySet().iterator();
+		while (it.hasNext()) {
+			returnList.add(it.next());
+		}
 
-    public static List<String> getAllResourceBundleNames() {
-        List<String> returnList = new ArrayList<String>();
+		return returnList;
+	}
 
-        for (IProject p : getAllSupportedProjects()) {
-            if (!FragmentProjectUtils.isFragment(p)) {
-                Iterator<String> it = getManager(p).resources.keySet()
-                        .iterator();
-                while (it.hasNext()) {
-                    returnList.add(p.getName() + "/" + it.next());
-                }
-            }
-        }
-        return returnList;
-    }
+	public static List<String> getAllResourceBundleNames() {
+		List<String> returnList = new ArrayList<String>();
 
-    public static Set<IProject> getAllSupportedProjects() {
-        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
-                .getProjects();
-        Set<IProject> projs = new HashSet<IProject>();
+		for (IProject p : getAllSupportedProjects()) {
+			if (!FragmentProjectUtils.isFragment(p)) {
+				Iterator<String> it = getManager(p).resources.keySet()
+						.iterator();
+				while (it.hasNext()) {
+					returnList.add(p.getName() + "/" + it.next());
+				}
+			}
+		}
+		return returnList;
+	}
 
-        for (IProject p : projects) {
-            try {
-                if (p.isOpen() && p.hasNature(NATURE_ID)) {
-                    projs.add(p);
-                }
-            } catch (CoreException e) {
-                // TODO Auto-generated catch block
-                Logger.logError(e);
-            }
-        }
-        return projs;
-    }
+	public static Set<IProject> getAllSupportedProjects() {
+		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
+				.getProjects();
+		Set<IProject> projs = new HashSet<IProject>();
 
-    public String getKeyHoverString(String rbName, String key) {
-        try {
-            RBManager instance = RBManager.getInstance(project);
-            IMessagesBundleGroup bundleGroup = instance
-                    .getMessagesBundleGroup(rbName);
-            if (!bundleGroup.containsKey(key)) {
-                return null;
-            }
+		for (IProject p : projects) {
+			try {
+				if (p.isOpen() && p.hasNature(NATURE_ID)) {
+					projs.add(p);
+				}
+			} catch (CoreException e) {
+				// TODO Auto-generated catch block
+				Logger.logError(e);
+			}
+		}
+		return projs;
+	}
 
-            String hoverText = "<html><head></head><body>";
+	public String getKeyHoverString(String rbName, String key) {
+		try {
+			RBManager instance = RBManager.getInstance(project);
+			IMessagesBundleGroup bundleGroup = instance
+					.getMessagesBundleGroup(rbName);
+			if (!bundleGroup.containsKey(key)) {
+				return null;
+			}
 
-            for (IMessage message : bundleGroup.getMessages(key)) {
-                String displayName = message.getLocale() == null ? "Default"
-                        : message.getLocale().getDisplayName();
-                String value = message.getValue();
-                hoverText += "<b><i>" + displayName + "</i></b><br/>"
-                        + value.replace("\n", "<br/>") + "<br/><br/>";
-            }
-            return hoverText + "</body></html>";
-        } catch (Exception e) {
-            // silent catch
-            return "";
-        }
-    }
+			String hoverText = "<html><head></head><body>";
 
-    public boolean isKeyBroken(String rbName, String key) {
-        IMessagesBundleGroup messagesBundleGroup = RBManager.getInstance(
-                project).getMessagesBundleGroup(rbName);
-        if (messagesBundleGroup == null) {
-            return true;
-        } else {
-            return !messagesBundleGroup.containsKey(key);
-        }
+			for (IMessage message : bundleGroup.getMessages(key)) {
+				String displayName = message.getLocale() == null ? "Default"
+						: message.getLocale().getDisplayName();
+				String value = message.getValue();
+				hoverText += "<b><i>" + displayName + "</i></b><br/>"
+						+ value.replace("\n", "<br/>") + "<br/><br/>";
+			}
+			return hoverText + "</body></html>";
+		} catch (Exception e) {
+			// silent catch
+			return "";
+		}
+	}
 
-        // if (!resourceBundles.containsKey(rbName))
-        // return true;
-        // return !this.isResourceExisting(rbName, key);
-    }
+	public boolean isKeyBroken(String rbName, String key) {
+		IMessagesBundleGroup messagesBundleGroup = RBManager.getInstance(
+				project).getMessagesBundleGroup(rbName);
+		if (messagesBundleGroup == null) {
+			return true;
+		} else {
+			return !messagesBundleGroup.containsKey(key);
+		}
 
-    protected void excludeSingleResource(IResource res) {
-        IResourceDescriptor rd = new ResourceDescriptor(res);
-        org.eclipse.babel.tapiji.tools.core.ui.utils.EditorUtils
-                .deleteAuditMarkersForResource(res);
+		// if (!resourceBundles.containsKey(rbName))
+		// return true;
+		// return !this.isResourceExisting(rbName, key);
+	}
 
-        // exclude resource
-        excludedResources.add(rd);
-        Collection<Object> changedExclusoins = new HashSet<Object>();
-        changedExclusoins.add(res);
-        fireResourceExclusionEvent(new ResourceExclusionEvent(changedExclusoins));
+	protected void excludeSingleResource(IResource res) {
+		IResourceDescriptor rd = new ResourceDescriptor(res);
+		org.eclipse.babel.tapiji.tools.core.ui.utils.EditorUtils
+				.deleteAuditMarkersForResource(res);
 
-        // Check if the excluded resource represents a resource-bundle
-        if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
-                .isResourceBundleFile(res)) {
-            String bundleName = getResourceBundleId(res);
-            Set<IResource> resSet = resources.remove(bundleName);
-            if (resSet != null) {
-                resSet.remove(res);
+		// exclude resource
+		excludedResources.add(rd);
+		Collection<IResource> changedExclusions = new HashSet<IResource>();
+		changedExclusions.add(res);
+		fireResourceExclusionEvent(new ResourceExclusionEvent(changedExclusions));
 
-                if (!resSet.isEmpty()) {
-                    resources.put(bundleName, resSet);
-                    unloadResource(bundleName, res);
-                } else {
-                    rd.setBundleId(bundleName);
-                    unloadResourceBundle(bundleName);
-                    try {
-                        res.getProject().build(
-                                IncrementalProjectBuilder.FULL_BUILD,
-                                BUILDER_ID, null, null);
-                    } catch (CoreException e) {
-                        Logger.logError(e);
-                    }
-                }
+		// Check if the excluded resource represents a resource-bundle
+		if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
+				.isResourceBundleFile(res)) {
+			String bundleName = getResourceBundleId(res);
+			Set<IResource> resSet = resources.remove(bundleName);
+			if (resSet != null) {
+				resSet.remove(res);
 
-                fireResourceBundleChangedEvent(getResourceBundleId(res),
-                        new ResourceBundleChangedEvent(
-                                ResourceBundleChangedEvent.EXCLUDED,
-                                bundleName, res.getProject()));
-            }
-        }
-    }
+				if (!resSet.isEmpty()) {
+					
+					if (bundleName.equals("org.example.com")) {
+						Logger.logInfo("adding bundle with id: " + bundleName);
+					}
+					
+					resources.put(bundleName, resSet);
+					unloadResource(bundleName, res);
+				} else {
+					rd.setBundleId(bundleName);
+					unloadResourceBundle(bundleName);
+					try {
+						res.getProject().build(
+								IncrementalProjectBuilder.FULL_BUILD,
+								BUILDER_ID, null, null);
+					} catch (CoreException e) {
+						Logger.logError(e);
+					}
+				}
+
+				fireResourceBundleChangedEvent(getResourceBundleId(res),
+						new ResourceBundleChangedEvent(
+								ResourceBundleChangedEvent.EXCLUDED,
+								bundleName, res.getProject()));
+			}
+		}
+	}
+
+	public void excludeResource(IResource res, IProgressMonitor monitor) {
+		try {
+			if (monitor == null) {
+				monitor = new NullProgressMonitor();
+			}
 
-    public void excludeResource(IResource res, IProgressMonitor monitor) {
-        try {
-            if (monitor == null) {
-                monitor = new NullProgressMonitor();
-            }
+			final List<IResource> resourceSubTree = new ArrayList<IResource>();
+			res.accept(new IResourceVisitor() {
 
-            final List<IResource> resourceSubTree = new ArrayList<IResource>();
-            res.accept(new IResourceVisitor() {
+				@Override
+				public boolean visit(IResource resource) throws CoreException {
+					Logger.logInfo("Excluding resource '"
+							+ resource.getFullPath().toOSString() + "'");
+					resourceSubTree.add(resource);
+					return true;
+				}
 
-                @Override
-                public boolean visit(IResource resource) throws CoreException {
-                    Logger.logInfo("Excluding resource '"
-                            + resource.getFullPath().toOSString() + "'");
-                    resourceSubTree.add(resource);
-                    return true;
-                }
+			});
 
-            });
+			// Iterate previously retrieved resource and exclude them from
+			// Internationalization
+			monitor.beginTask(
+					"Exclude resources from Internationalization context",
+					resourceSubTree.size());
+			try {
+				for (IResource resource : resourceSubTree) {
+					excludeSingleResource(resource);
+					org.eclipse.babel.tapiji.tools.core.ui.utils.EditorUtils
+							.deleteAuditMarkersForResource(resource);
+					monitor.worked(1);
+				}
+			} catch (Exception e) {
+				Logger.logError(e);
+			} finally {
+				monitor.done();
+			}
+		} catch (CoreException e) {
+			Logger.logError(e);
+		}
+	}
 
-            // Iterate previously retrieved resource and exclude them from
-            // Internationalization
-            monitor.beginTask(
-                    "Exclude resources from Internationalization context",
-                    resourceSubTree.size());
-            try {
-                for (IResource resource : resourceSubTree) {
-                    excludeSingleResource(resource);
-                    org.eclipse.babel.tapiji.tools.core.ui.utils.EditorUtils
-                            .deleteAuditMarkersForResource(resource);
-                    monitor.worked(1);
-                }
-            } catch (Exception e) {
-                Logger.logError(e);
-            } finally {
-                monitor.done();
-            }
-        } catch (CoreException e) {
-            Logger.logError(e);
-        }
-    }
+	public void includeResource(IResource res, IProgressMonitor monitor) {
+		if (monitor == null) {
+			monitor = new NullProgressMonitor();
+		}
 
-    public void includeResource(IResource res, IProgressMonitor monitor) {
-        if (monitor == null) {
-            monitor = new NullProgressMonitor();
-        }
+		final Collection<IResource> changedResources = new HashSet<IResource>();
+		final Collection<IResource> changedResourceBundles = new HashSet<IResource>();
+		final IResource resource = res;
 
-        final Collection<Object> changedResources = new HashSet<Object>();
-        IResource resource = res;
+		if (!excludedResources.contains(new ResourceDescriptor(res))) {
+			Logger.logError("requested to include non-excluded resource");
+		} else {
+			try {
+				res.accept(new IResourceVisitor() {
 
-        if (!excludedResources.contains(new ResourceDescriptor(res))) {
-            while (!(resource instanceof IProject || resource instanceof IWorkspaceRoot)) {
-                if (excludedResources
-                        .contains(new ResourceDescriptor(resource))) {
-                    excludeResource(resource, monitor);
-                    changedResources.add(resource);
-                    break;
-                } else {
-                    resource = resource.getParent();
-                }
-            }
-        }
+					@Override
+					public boolean visit(IResource resource)
+							throws CoreException {
+						if (excludedResources.contains(new ResourceDescriptor(
+								resource))) {
+							// check if the changed resource is a resource
+							// bundle
+							if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
+									.isResourceBundleFile(resource) && !changedResourceBundles.contains(resource)) {
+								changedResourceBundles.add(resource);
+							}
+							changedResources.add(resource);
+						}
+						return true;
+					}
+				});
 
-        try {
-            res.accept(new IResourceVisitor() {
+				monitor.beginTask(
+						"Add resources to Internationalization context",
+						changedResources.size());
+				try {
+					for (Object r : changedResources) {
+						excludedResources.remove(new ResourceDescriptor(
+								(IResource) r));
+						monitor.worked(1);
+					}
 
-                @Override
-                public boolean visit(IResource resource) throws CoreException {
-                    changedResources.add(resource);
-                    return true;
-                }
-            });
+				} catch (Exception e) {
+					Logger.logError(e);
+				} finally {
+					monitor.done();
+				}
+			} catch (Exception e) {
+				Logger.logError(e);
+			}
 
-            monitor.beginTask("Add resources to Internationalization context",
-                    changedResources.size());
-            try {
-                for (Object r : changedResources) {
-                    excludedResources.remove(new ResourceDescriptor(
-                            (IResource) r));
-                    monitor.worked(1);
-                }
+			// Check if the included resources represent a fully excluded
+			// resource-bundle
+			// -> YES: trigger a full build
+			// -> OTHERWISE: rebuild only included resources
+			boolean fullBuildRequired = (changedResourceBundles.size() > 0);
 
-            } catch (Exception e) {
-                Logger.logError(e);
-            } finally {
-                monitor.done();
-            }
-        } catch (Exception e) {
-            Logger.logError(e);
-        }
+			for (IResource rbResource : changedResourceBundles) {
+				String bundleName = getResourceBundleId(rbResource);
+				//fullBuildRequired &= !resources.containsKey(bundleName);
 
-        try {
-            res.touch(null);
-        } catch (CoreException e) {
-            Logger.logError(e);
-        }
+				this.addBundleResource(rbResource);
 
-        // Check if the included resource represents a resource-bundle
-        if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
-                .isResourceBundleFile(res)) {
-            String bundleName = getResourceBundleId(res);
-            boolean newRB = resources.containsKey(bundleName);
+				Logger.logInfo("Including resource bundle '"
+						+ rbResource.getFullPath().toOSString() + "'");
+				
+				RBManager.getInstance(rbResource.getProject()).addBundleResource(rbResource);
+				fireResourceBundleChangedEvent(getResourceBundleId(rbResource),
+						new ResourceBundleChangedEvent(
+								ResourceBundleChangedEvent.INCLUDED,
+								bundleName, rbResource.getProject()));
+			}
 
-            this.addBundleResource(res);
-            this.unloadResourceBundle(bundleName);
-            // this.loadResourceBundle(bundleName);
+			if (fullBuildRequired) {
+				try {
+					resource.getProject().build(
+							IncrementalProjectBuilder.FULL_BUILD, BUILDER_ID,
+							null, null);
+				} catch (CoreException e) {
+					Logger.logError(e);
+				}
+			}
 
-            if (newRB) {
-                try {
-                    resource.getProject().build(
-                            IncrementalProjectBuilder.FULL_BUILD, BUILDER_ID,
-                            null, null);
-                } catch (CoreException e) {
-                    Logger.logError(e);
-                }
-            }
-            fireResourceBundleChangedEvent(getResourceBundleId(res),
-                    new ResourceBundleChangedEvent(
-                            ResourceBundleChangedEvent.INCLUDED, bundleName,
-                            res.getProject()));
-        }
+			fireResourceExclusionEvent(new ResourceExclusionEvent(
+					changedResources));
+		}
+	}
 
-        fireResourceExclusionEvent(new ResourceExclusionEvent(changedResources));
-    }
+	protected void fireResourceExclusionEvent(ResourceExclusionEvent event) {
+		for (IResourceExclusionListener listener : exclusionListeners) {
+			listener.exclusionChanged(event);
+		}
+	}
 
-    protected void fireResourceExclusionEvent(ResourceExclusionEvent event) {
-        for (IResourceExclusionListener listener : exclusionListeners) {
-            listener.exclusionChanged(event);
-        }
-    }
+	public static boolean isResourceExcluded(IResource res) {
+		IResource resource = res;
 
-    public static boolean isResourceExcluded(IResource res) {
-        IResource resource = res;
+		if (!state_loaded) {
+			IStateLoader stateLoader = getStateLoader();
+			if (stateLoader != null) {
+				stateLoader.loadState();
+			} else {
+				Logger.logError("State-Loader uninitialized! Unable to restore state.");
+			}
+		}
 
-        if (!state_loaded) {
-            IStateLoader stateLoader = getStateLoader();
-            if (stateLoader != null) {
-                stateLoader.loadState();
-            } else {
-                Logger.logError("State-Loader uninitialized! Unable to restore state.");
-            }
-        }
+		boolean isExcluded = false;
 
-        boolean isExcluded = false;
+		do {
+			if (excludedResources.contains(new ResourceDescriptor(resource))) {
+				if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
+						.isResourceBundleFile(resource)) {
+					Set<IResource> resources = allBundles
+							.remove(getResourceBundleName(resource));
+					if (resources == null) {
+						resources = new HashSet<IResource>();
+					}
+					resources.add(resource);
+					allBundles.put(getResourceBundleName(resource), resources);
+				}
 
-        do {
-            if (excludedResources.contains(new ResourceDescriptor(resource))) {
-                if (org.eclipse.babel.tapiji.tools.core.ui.utils.RBFileUtils
-                        .isResourceBundleFile(resource)) {
-                    Set<IResource> resources = allBundles
-                            .remove(getResourceBundleName(resource));
-                    if (resources == null) {
-                        resources = new HashSet<IResource>();
-                    }
-                    resources.add(resource);
-                    allBundles.put(getResourceBundleName(resource), resources);
-                }
+				isExcluded = true;
+				break;
+			}
+			resource = resource.getParent();
+		} while (resource != null
+				&& !(resource instanceof IProject || resource instanceof IWorkspaceRoot)
+				&& checkResourceExclusionRoot);
 
-                isExcluded = true;
-                break;
-            }
-            resource = resource.getParent();
-        } while (resource != null
-                && !(resource instanceof IProject || resource instanceof IWorkspaceRoot)
-                && checkResourceExclusionRoot);
+		return isExcluded; // excludedResources.contains(new
+		// ResourceDescriptor(res));
+	}
 
-        return isExcluded; // excludedResources.contains(new
-        // ResourceDescriptor(res));
-    }
+	public IFile getRandomFile(String bundleName) {
+		try {
+			Collection<IMessagesBundle> messagesBundles = RBManager
+					.getInstance(project).getMessagesBundleGroup(bundleName)
+					.getMessagesBundles();
+			IMessagesBundle bundle = messagesBundles.iterator().next();
+			return FileUtils.getFile(bundle);
+		} catch (Exception e) {
+			Logger.logError(e);
+		}
+		return null;
+	}
 
-    public IFile getRandomFile(String bundleName) {
-        try {
-            Collection<IMessagesBundle> messagesBundles = RBManager
-                    .getInstance(project).getMessagesBundleGroup(bundleName)
-                    .getMessagesBundles();
-            IMessagesBundle bundle = messagesBundles.iterator().next();
-            return FileUtils.getFile(bundle);
-        } catch (Exception e) {
-            Logger.logError(e);
-        }
-        return null;
-    }
+	@Deprecated
+	protected static boolean isResourceExcluded(IProject project, String bname) {
+		Iterator<IResourceDescriptor> itExcl = excludedResources.iterator();
+		while (itExcl.hasNext()) {
+			IResourceDescriptor rd = itExcl.next();
+			if (project.getName().equals(rd.getProjectName())
+					&& bname.equals(rd.getBundleId())) {
+				return true;
+			}
+		}
+		return false;
+	}
 
-    @Deprecated
-    protected static boolean isResourceExcluded(IProject project, String bname) {
-        Iterator<IResourceDescriptor> itExcl = excludedResources.iterator();
-        while (itExcl.hasNext()) {
-            IResourceDescriptor rd = itExcl.next();
-            if (project.getName().equals(rd.getProjectName())
-                    && bname.equals(rd.getBundleId())) {
-                return true;
-            }
-        }
-        return false;
-    }
+	public static ResourceBundleManager getManager(String projectName) {
+		for (IProject p : getAllSupportedProjects()) {
+			if (p.getName().equalsIgnoreCase(projectName)) {
+				// check if the projectName is a fragment and return the manager
+				// for the host
+				if (FragmentProjectUtils.isFragment(p)) {
+					return getManager(FragmentProjectUtils.getFragmentHost(p));
+				} else {
+					return getManager(p);
+				}
+			}
+		}
+		return null;
+	}
 
-    public static ResourceBundleManager getManager(String projectName) {
-        for (IProject p : getAllSupportedProjects()) {
-            if (p.getName().equalsIgnoreCase(projectName)) {
-                // check if the projectName is a fragment and return the manager
-                // for the host
-                if (FragmentProjectUtils.isFragment(p)) {
-                    return getManager(FragmentProjectUtils.getFragmentHost(p));
-                } else {
-                    return getManager(p);
-                }
-            }
-        }
-        return null;
-    }
+	public IFile getResourceBundleFile(String resourceBundle, Locale l) {
+		IFile res = null;
+		Set<IResource> resSet = resources.get(resourceBundle);
 
-    public IFile getResourceBundleFile(String resourceBundle, Locale l) {
-        IFile res = null;
-        Set<IResource> resSet = resources.get(resourceBundle);
+		// get normalized simple resource bundle name
+		String normalizedResourceBundleName = resourceBundle;
+		if (normalizedResourceBundleName.contains(".")) {
+			normalizedResourceBundleName = normalizedResourceBundleName
+					.substring(resourceBundle.lastIndexOf(".") + 1);
+		}
 
-        // get normalized simple resource bundle name
-        String normalizedResourceBundleName = resourceBundle;
-        if (normalizedResourceBundleName.contains(".")) {
-        	normalizedResourceBundleName = normalizedResourceBundleName.substring(resourceBundle.lastIndexOf(".")+1);
-        }
-        
-        if (resSet != null) {
-            for (IResource resource : resSet) {
-                Locale refLoc = NameUtils.getLocaleByName(normalizedResourceBundleName,
-                        resource.getName());
-                if (refLoc == null
-                        && l == null
-                        || (refLoc != null && refLoc.equals(l) || l != null
-                                && l.equals(refLoc))) {
-                    res = resource.getProject().getFile(
-                            resource.getProjectRelativePath());
-                    break;
-                }
-            }
-        }
+		if (resSet != null) {
+			for (IResource resource : resSet) {
+				Locale refLoc = NameUtils.getLocaleByName(
+						normalizedResourceBundleName, resource.getName());
+				if (refLoc == null
+						&& l == null
+						|| (refLoc != null && refLoc.equals(l) || l != null
+								&& l.equals(refLoc))) {
+					res = resource.getProject().getFile(
+							resource.getProjectRelativePath());
+					break;
+				}
+			}
+		}
 
-        return res;
-    }
+		return res;
+	}
 
-    public Set<IResource> getAllResourceBundleResources(String resourceBundle) {
-        return allBundles.get(resourceBundle);
-    }
+	public Set<IResource> getAllResourceBundleResources(String resourceBundle) {
+		return allBundles.get(resourceBundle);
+	}
 
-    public void registerResourceExclusionListener(
-            IResourceExclusionListener listener) {
-        exclusionListeners.add(listener);
-    }
+	public void registerResourceExclusionListener(
+			IResourceExclusionListener listener) {
+		exclusionListeners.add(listener);
+	}
 
-    public void unregisterResourceExclusionListener(
-            IResourceExclusionListener listener) {
-        exclusionListeners.remove(listener);
-    }
+	public void unregisterResourceExclusionListener(
+			IResourceExclusionListener listener) {
+		exclusionListeners.remove(listener);
+	}
 
-    public boolean isResourceExclusionListenerRegistered(
-            IResourceExclusionListener listener) {
-        return exclusionListeners.contains(listener);
-    }
+	public boolean isResourceExclusionListenerRegistered(
+			IResourceExclusionListener listener) {
+		return exclusionListeners.contains(listener);
+	}
 
-    public static void unregisterResourceExclusionListenerFromAllManagers(
-            IResourceExclusionListener excludedResource) {
-        for (ResourceBundleManager mgr : rbmanager.values()) {
-            mgr.unregisterResourceExclusionListener(excludedResource);
-        }
-    }
+	public static void unregisterResourceExclusionListenerFromAllManagers(
+			IResourceExclusionListener excludedResource) {
+		for (ResourceBundleManager mgr : rbmanager.values()) {
+			mgr.unregisterResourceExclusionListener(excludedResource);
+		}
+	}
 
-    public void addResourceBundleEntry(String resourceBundleId, String key,
-            Locale locale, String message) throws ResourceBundleException {
+	public void addResourceBundleEntry(String resourceBundleId, String key,
+			Locale locale, String message) throws ResourceBundleException {
 
-        RBManager instance = RBManager.getInstance(project);
-        IMessagesBundleGroup bundleGroup = instance
-                .getMessagesBundleGroup(resourceBundleId);
-        IMessage entry = bundleGroup.getMessage(key, locale);
+		RBManager instance = RBManager.getInstance(project);
+		IMessagesBundleGroup bundleGroup = instance
+				.getMessagesBundleGroup(resourceBundleId);
+		IMessage entry = bundleGroup.getMessage(key, locale);
 
-        if (entry == null) {
-            DirtyHack.setFireEnabled(false);
+		if (entry == null) {
+			DirtyHack.setFireEnabled(false);
 
-            IMessagesBundle messagesBundle = bundleGroup
-                    .getMessagesBundle(locale);
-            IMessage m = MessageFactory.createMessage(key, locale);
-            m.setText(message);
-            messagesBundle.addMessage(m);
+			IMessagesBundle messagesBundle = bundleGroup
+					.getMessagesBundle(locale);
+			IMessage m = MessageFactory.createMessage(key, locale);
+			m.setText(message);
+			messagesBundle.addMessage(m);
 
-            FileUtils.writeToFile(messagesBundle);
-            instance.fireResourceChanged(messagesBundle);
+			FileUtils.writeToFile(messagesBundle);
+			instance.fireResourceChanged(messagesBundle);
 
-            DirtyHack.setFireEnabled(true);
+			DirtyHack.setFireEnabled(true);
 
-            // notify the PropertyKeySelectionTree
-            instance.fireEditorChanged();
-        }
-    }
+			// notify the PropertyKeySelectionTree
+			instance.fireEditorChanged();
+		}
+	}
 
-    public void saveResourceBundle(String resourceBundleId,
-            IMessagesBundleGroup newBundleGroup) throws ResourceBundleException {
+	public void saveResourceBundle(String resourceBundleId,
+			IMessagesBundleGroup newBundleGroup) throws ResourceBundleException {
 
-        // RBManager.getInstance().
-    }
+		// RBManager.getInstance().
+	}
 
-    public void removeResourceBundleEntry(String resourceBundleId,
-            List<String> keys) throws ResourceBundleException {
+	public void removeResourceBundleEntry(String resourceBundleId,
+			List<String> keys) throws ResourceBundleException {
 
-        RBManager instance = RBManager.getInstance(project);
-        IMessagesBundleGroup messagesBundleGroup = instance
-                .getMessagesBundleGroup(resourceBundleId);
+		RBManager instance = RBManager.getInstance(project);
+		IMessagesBundleGroup messagesBundleGroup = instance
+				.getMessagesBundleGroup(resourceBundleId);
 
-        DirtyHack.setFireEnabled(false);
+		DirtyHack.setFireEnabled(false);
 
-        for (String key : keys) {
-            messagesBundleGroup.removeMessages(key);
-        }
+		for (String key : keys) {
+			messagesBundleGroup.removeMessages(key);
+		}
 
-        instance.writeToFile(messagesBundleGroup);
+		instance.writeToFile(messagesBundleGroup);
 
-        DirtyHack.setFireEnabled(true);
+		DirtyHack.setFireEnabled(true);
 
-        // notify the PropertyKeySelectionTree
-        instance.fireEditorChanged();
-    }
+		// notify the PropertyKeySelectionTree
+		instance.fireEditorChanged();
+	}
 
-    public boolean isResourceExisting(String bundleId, String key) {
-        boolean keyExists = false;
-        IMessagesBundleGroup bGroup = getResourceBundle(bundleId);
+	public boolean isResourceExisting(String bundleId, String key) {
+		boolean keyExists = false;
+		IMessagesBundleGroup bGroup = getResourceBundle(bundleId);
 
-        if (bGroup != null) {
-            keyExists = bGroup.isKey(key);
-        }
+		if (bGroup != null) {
+			keyExists = bGroup.isKey(key);
+		}
 
-        return keyExists;
-    }
+		return keyExists;
+	}
 
-    public static void rebuildProject(IResource resource) {
-        try {
-            resource.touch(null);
-        } catch (CoreException e) {
-            Logger.logError(e);
-        }
-    }
+	public static void rebuildProject(IResource resource) {
+		try {
+			resource.touch(null);
+		} catch (CoreException e) {
+			Logger.logError(e);
+		}
+	}
 
-    public Set<Locale> getProjectProvidedLocales() {
-        Set<Locale> locales = new HashSet<Locale>();
+	public Set<Locale> getProjectProvidedLocales() {
+		Set<Locale> locales = new HashSet<Locale>();
 
-        for (String bundleId : getResourceBundleNames()) {
-            Set<Locale> rb_l = getProvidedLocales(bundleId);
-            if (!rb_l.isEmpty()) {
-                Object[] bundlelocales = rb_l.toArray();
-                for (Object l : bundlelocales) {
-                    /* TODO check if useful to add the default. For now the default is not
-                     * being used and is ignored as it is null */
-                    if (l != null && !locales.contains(l)) {
-                        locales.add((Locale) l);
-                    }
-                }
-            }
-        }
-        return locales;
-    }
+		for (String bundleId : getResourceBundleNames()) {
+			Set<Locale> rb_l = getProvidedLocales(bundleId);
+			if (!rb_l.isEmpty()) {
+				Object[] bundlelocales = rb_l.toArray();
+				for (Object l : bundlelocales) {
+					/*
+					 * TODO check if useful to add the default. For now the
+					 * default is not being used and is ignored as it is null
+					 */
+					if (l != null && !locales.contains(l)) {
+						locales.add((Locale) l);
+					}
+				}
+			}
+		}
+		return locales;
+	}
 
-    public static IStateLoader getStateLoader() {
-        if (stateLoader == null) {
+	public static IStateLoader getStateLoader() {
+		if (stateLoader == null) {
 
-            IExtensionPoint extp = Platform.getExtensionRegistry()
-                    .getExtensionPoint(
-                            "org.eclipse.babel.tapiji.tools.core"
-                                    + ".stateLoader");
-            IConfigurationElement[] elements = extp.getConfigurationElements();
+			IExtensionPoint extp = Platform.getExtensionRegistry()
+					.getExtensionPoint(
+							"org.eclipse.babel.tapiji.tools.core"
+									+ ".stateLoader");
+			IConfigurationElement[] elements = extp.getConfigurationElements();
 
-            if (elements.length != 0) {
-                try {
-                    stateLoader = (IStateLoader) elements[0]
-                            .createExecutableExtension("class");
-                } catch (CoreException e) {
-                    Logger.logError(e);
-                }
-            }
-        }
+			if (elements.length != 0) {
+				try {
+					stateLoader = (IStateLoader) elements[0]
+							.createExecutableExtension("class");
+				} catch (CoreException e) {
+					Logger.logError(e);
+				}
+			}
+		}
 
-        return stateLoader;
+		return stateLoader;
 
-    }
+	}
 
-    public static void saveManagerState() {
-        IStateLoader stateLoader = getStateLoader();
-        if (stateLoader != null) {
-            stateLoader.saveState();
-        }
-    }
+	public static void saveManagerState() {
+		IStateLoader stateLoader = getStateLoader();
+		if (stateLoader != null) {
+			stateLoader.saveState();
+		}
+	}
 
 }
diff --git a/org.eclipse.babel.tapiji.tools.core/src/org/eclipse/babel/tapiji/tools/core/model/manager/ResourceExclusionEvent.java b/org.eclipse.babel.tapiji.tools.core/src/org/eclipse/babel/tapiji/tools/core/model/manager/ResourceExclusionEvent.java
index 0515b84..73b84c8 100644
--- a/org.eclipse.babel.tapiji.tools.core/src/org/eclipse/babel/tapiji/tools/core/model/manager/ResourceExclusionEvent.java
+++ b/org.eclipse.babel.tapiji.tools.core/src/org/eclipse/babel/tapiji/tools/core/model/manager/ResourceExclusionEvent.java
@@ -12,20 +12,22 @@
 
 import java.util.Collection;
 
+import org.eclipse.core.resources.IResource;
+
 public class ResourceExclusionEvent {
 
-    private Collection<Object> changedResources;
+    private Collection<IResource> changedResources;
 
-    public ResourceExclusionEvent(final Collection<Object> changedResources) {
+    public ResourceExclusionEvent(final Collection<IResource> changedResources) {
         super();
         this.changedResources = changedResources;
     }
 
-    public void setChangedResources(final Collection<Object> changedResources) {
+    public void setChangedResources(final Collection<IResource> changedResources) {
         this.changedResources = changedResources;
     }
 
-    public Collection<Object> getChangedResources() {
+    public Collection<IResource> getChangedResources() {
         return changedResources;
     }