package provider;
import java.util.Properties;
import org.osid.*;
import org.osid.provider.*;
import org.osid.shared.*;
public class provider {
ProviderControlManager pcm;
public provider(String impl) {
OsidContext context = new OsidContext();
try {
context.assignContext("com.harvestroad.authentication.username","vue");
context.assignContext("com.harvestroad.authentication.password","vue");
context.assignContext("com.harvestroad.authentication.host","bazzim.mit.edu");
context.assignContext("com.harvestroad.authentication.port","80");
} catch (OsidException e) {
System.err.println("this should never happen");
}
try {
this.pcm = (ProviderControlManager) edu.mit.osidimpl.OsidLoader.getManager("org.osid.provider.ProviderControlManager",
impl, context,
new Properties());
} catch (OsidException e) {
System.err.println("cannot load impl " + impl + ": " + e.getMessage());
e.printStackTrace();
}
}
public void list() {
try {
System.out.println("List of all providers");
ProviderLookupManager plm = this.pcm.getProviderLookupManager();
ProviderIterator pi = plm.getProviders();
while (pi.hasNextProvider()) {
printProvider(pi.getNextProvider());
}
} catch (org.osid.provider.ProviderException pe) {
pe.printStackTrace();
}
}
public void installed() {
try {
System.out.println("List of installed providers");
ProviderInstallationManager pim = this.pcm.getProviderInstallationManager();
ProviderIterator pi = pim.getInstalledProviders();
while (pi.hasNextProvider()) {
printProvider(pi.getNextProvider());
}
} catch (org.osid.provider.ProviderException pe) {
pe.printStackTrace();
}
}
public void needingUpdate() {
try {
System.out.println("List of providers needing update");
ProviderInstallationManager pim = this.pcm.getProviderInstallationManager();
ProviderIterator pi = pim.getInstalledProvidersNeedingUpdate();
while (pi.hasNextProvider()) {
printProvider(pi.getNextProvider());
}
} catch (org.osid.provider.ProviderException pe) {
pe.printStackTrace();
}
}
public void install() {
}
public void remove() {
}
private void printProvider(Provider p) {
try {
System.out.println("\nProvider: " + p.getDisplayName() + " (" + p.getId().getIdString() + ")");
System.out.println("Description: " + p.getDescription());
System.out.println("Version: " + p.getVersion());
System.out.println("Next Version: " + p.getNextVersion());
System.out.println("Previous Version: " + p.getPreviousVersion());
System.out.println("Osid: " + p.getOsidName());
System.out.println("Osid Version: " + p.getOsidBindingVersion());
System.out.println("Osid Binding: " + p.getOsidBinding());
System.out.println("Copyright: " + p.getCopyright());
System.out.println("License: " + p.getLicense());
System.out.println("License Acknowlegement Required?: " + p.requestsLicenseAcknowledgement());
System.out.println("Publisher: " + p.getPublisher());
System.out.println("Creator: " + p.getCreator());
System.out.println("Release Date: " + p.getReleaseDate());
System.out.println("\n\n ------------------------------------------------");
org.osid.shared.PropertiesIterator pi = p.getProperties();
while (pi.hasNextProperties()) {
org.osid.shared.Properties props = pi.nextProperties();
org.osid.shared.ObjectIterator oi = props.getKeys();
while (oi.hasNextObject()) {
java.io.Serializable o = oi.nextObject();
System.out.println(o + " : " + props.getProperty(o));
String key = (String)o;
try {
if (key.equals("icon16x16")) {
ProviderInvocationManager providerInvocationManager = this.pcm.getProviderInvocationManager();
String path = providerInvocationManager.getResourcePath((String)props.getProperty(o));
System.out.println("path " + path);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
}
} catch (SharedException se) {
System.err.println(se.getMessage());
}
return;
}
public static void main(String[] args) {
// argparser.ArgParser parser = new argparser.ArgParser("provider");
// parser.matchAllArgs(args, 0, argparser.ArgParser.EXIT_ON_ERROR);
try {
provider p = new provider("edu.mit.osidimpl.provider.repository");
p.list();
p.installed();
p.needingUpdate();
} catch (Throwable t) {
t.printStackTrace();
}
}
}