private boolean init(boolean shouldExist) throws Exception {
		
		// Expand any variables in the filename
		if (!expandVariable())
			return false;
		
		// This is not that elegant code, but the org.eclipse.core.filesystem.URIUtil.toURI
		// from the string returned wrong path (appended the install path), and java.net.URI
		// couldn't handle spaces. And the URL.getPath() will not remove the initial / ..
		// So doing it the crude way here.
		if (resourceName.startsWith("file:")) {
			String value = resourceName;
			if (Platform.getOS().compareToIgnoreCase(Platform.OS_WIN32) == 0)
				resourceName = value.substring(6); // On win32 the prefix is file:/<abs path>
			else
				resourceName = value.substring(5); // On *ix the prefix is file:<abs path>
		}
		
		// Check if we have a correct URL
		try {
			url = new URL(resourceName);
		} catch (MalformedURLException e) {
		}
		
		// If found a correct http(s) ref, handle here
		if (url != null) {
			if (url.getProtocol().compareTo("http") == 0
					|| url.getProtocol().compareTo("https") == 0) {
				isFile = false;

				HttpURLConnection httpCon = null;
				try {
					httpCon = (HttpURLConnection) url.openConnection();
					httpCon.setConnectTimeout(StartupPlugin.URL_CONNECT_TIMEOUT);
					httpCon.connect();

					
					// If getting a response to this request we assume this is an existing ref
					// If not getting a response, we still don't get an exception, but 0 as value
					lastModified = httpCon.getLastModified();
					/** 
					 * FA 2014-02-21: Bug - http pref on github has "lastModified == 0"
					 * fix by setting exist = true if lastModified >= 0 ...
					 */
					exists = (lastModified >= 0);
				} catch (Exception e) {
					lastModified = 0;
					exists = false;
				}

				// If we should exist, fail if not existing
				if (shouldExist)
					return exists;
				else
					return true;
			}
		}
		return initFile(shouldExist);
	}