public static API_IKVMC_Java_Metadata javaMetadata(this string file)
        {
            API_IKVMC_Java_Metadata javaMetadata = null;

            try
            {
                javaMetadata = (API_IKVMC_Java_Metadata)O2LiveObjects.get(file);                        // try first to get a cached version of this file
            }
            catch
            {}
            if (javaMetadata.isNull() && file.fileExists())
            {
                "Cached version not found, loading from disk".info();
                if (file.extension(".xml"))
                {
                    javaMetadata = file.load <API_IKVMC_Java_Metadata>();
                }
                else
                {
                    javaMetadata = new API_IKVMC().create_JavaMetadata(file);
                }
                O2LiveObjects.set(file, javaMetadata);
            }
            return(javaMetadata);
        }