String attributeValue = line.substring( colonPos + 1 );
String attributeValue = line.substring( colonPos + 2 );
	public synchronized final String getAppProperty( String key)	{		if ( this.appProperties == null ) {			this.appProperties = new Hashtable();			InputStream inputStream = getClass().getResourceAsStream("/META-INF/MANIFEST.MF");			if (inputStream != null) {				InputStreamReader reader = new InputStreamReader( inputStream );				char[] buffer = new char[ 4 * 1024 ]; // 8 kb				StringBuffer completeBuffer = new StringBuffer();				try {					int read;					while ( (read = reader.read(buffer)) != -1 ) {						completeBuffer.append(buffer, 0, read);					}				} catch (IOException e) {					//#debug error					System.out.println("Unable to read manifest" + e);				}				String[] lines = TextUtil.split( completeBuffer.toString(), '\n' );				for (int i = 0; i < lines.length; i++) {					String line = lines[i];					int colonPos = line.indexOf(':');					if (colonPos == -1) {						//#debug warn						System.out.println("Unable to to split Manifest line " + line);						continue;					}					String attributeKey = line.substring( 0, colonPos );					String attributeValue = line.substring( colonPos + 1 );					System.out.println("Adding: " + attributeKey + "=" + attributeValue );					this.appProperties.put( attributeKey, attributeValue );				}			}		}		//		if ("ClientID".equals( key )) {//			return "4711";//		} else if ("UserName".equals( key )) {//			return "Milosz Weckowski";//		} else if ("ClientID".equals( key )) {//			return "4711";//		}		String value = (String) this.appProperties.get( key );		System.out.println("got value [" + value + "] for key [" + key + "]");		return value;	}