Search in sources :

Example 1 with AppPluginActionProxy

use of org.openecard.addon.bind.AppPluginActionProxy in project open-ecard by ecsec.

the class CacheTest method wrongGetOperation.

@Test
public void wrongGetOperation() {
    AppPluginActionProxy proxy = new AppPluginActionProxy(null, null);
    AddonSpecification spec = new AddonSpecification();
    String id = "test";
    spec.setId(id);
    spec.setVersion("1.0.0");
    cache.addAppPluginAction(spec, id, proxy);
    // now get it back from the cache
    AppExtensionAction proto = cache.getAppExtensionAction(spec, id);
    Assert.assertNull(proto);
}
Also used : AppExtensionAction(org.openecard.addon.bind.AppExtensionAction) AppPluginActionProxy(org.openecard.addon.bind.AppPluginActionProxy) AddonSpecification(org.openecard.addon.manifest.AddonSpecification) Test(org.testng.annotations.Test)

Example 2 with AppPluginActionProxy

use of org.openecard.addon.bind.AppPluginActionProxy in project open-ecard by ecsec.

the class CacheTest method addWithFilledCache.

@Test
public void addWithFilledCache() {
    SALProtocolProxy proxy4 = new SALProtocolProxy(null, null);
    AddonSpecification spec4 = new AddonSpecification();
    String id4 = "test4";
    spec4.setId(id4);
    spec4.setVersion("1.0.0");
    cache.addSALProtocol(spec4, id4, proxy4);
    IFDProtocolProxy proxy3 = new IFDProtocolProxy(null, null);
    AddonSpecification spec2 = new AddonSpecification();
    String id1 = "test1";
    spec2.setId(id1);
    spec2.setVersion("1.0.0");
    cache.addIFDProtocol(spec2, id1, proxy3);
    AppPluginActionProxy proxy = new AppPluginActionProxy(null, null);
    AddonSpecification spec1 = new AddonSpecification();
    String id0 = "test2";
    spec1.setId(id0);
    spec1.setVersion("1.0.0");
    cache.addAppPluginAction(spec1, id0, proxy);
    AppExtensionActionProxy proxy2 = new AppExtensionActionProxy(null, null);
    int initialHash = proxy2.hashCode();
    AddonSpecification spec = new AddonSpecification();
    String id = "test";
    spec.setId(id);
    spec.setVersion("1.0.0");
    cache.addAppExtensionAction(spec, id, proxy2);
    // now get it back from the cache
    AppExtensionAction proto = cache.getAppExtensionAction(spec, id);
    Assert.assertEquals(proto.hashCode(), initialHash);
}
Also used : AppExtensionAction(org.openecard.addon.bind.AppExtensionAction) AppPluginActionProxy(org.openecard.addon.bind.AppPluginActionProxy) IFDProtocolProxy(org.openecard.addon.ifd.IFDProtocolProxy) SALProtocolProxy(org.openecard.addon.sal.SALProtocolProxy) AddonSpecification(org.openecard.addon.manifest.AddonSpecification) AppExtensionActionProxy(org.openecard.addon.bind.AppExtensionActionProxy) Test(org.testng.annotations.Test)

Example 3 with AppPluginActionProxy

use of org.openecard.addon.bind.AppPluginActionProxy in project open-ecard by ecsec.

the class AddonManager method getAppPluginAction.

/**
 * Get a specific AppPluginAction.
 *
 * @param addonSpec {@link AddonSpecification} which contains the description of the {@link AppPluginAction}.
 * @param resourceName The {@link AppPluginSpecification#resourceName} to identify the @{@link AppPluginAction} to
 * return.
 * @return A AppPluginAction which corresponds to the {@link AddonSpecification} and the {@code resourceName}. If no
 * such AppPluginAction exists NULL is returned.
 */
public AppPluginAction getAppPluginAction(@Nonnull AddonSpecification addonSpec, @Nonnull String resourceName) {
    AppPluginAction appPluginAction = cache.getAppPluginAction(addonSpec, resourceName);
    if (appPluginAction != null) {
        // AppExtensionAction cached so return it
        return appPluginAction;
    }
    AppPluginSpecification protoSpec = addonSpec.searchByResourceName(resourceName);
    if (protoSpec == null) {
        LOG.error("Plugin for resource {} does not exist in Add-on {}.", resourceName, addonSpec.getId());
    } else {
        String className = protoSpec.getClassName();
        try {
            ClassLoader cl = registry.downloadAddon(addonSpec);
            AppPluginActionProxy protoFactory = new AppPluginActionProxy(className, cl);
            Context aCtx = createContext(addonSpec);
            protoFactory.init(aCtx);
            cache.addAppPluginAction(addonSpec, resourceName, protoFactory);
            return protoFactory;
        } catch (ActionInitializationException e) {
            LOG.error("Initialization of AppPluginAction failed", e);
        } catch (AddonException ex) {
            LOG.error("Failed to download Add-on.", ex);
        }
    }
    return null;
}
Also used : AppPluginSpecification(org.openecard.addon.manifest.AppPluginSpecification) AppPluginActionProxy(org.openecard.addon.bind.AppPluginActionProxy) AppPluginAction(org.openecard.addon.bind.AppPluginAction)

Example 4 with AppPluginActionProxy

use of org.openecard.addon.bind.AppPluginActionProxy in project open-ecard by ecsec.

the class CacheTest method addAppPluginAction.

@Test
public void addAppPluginAction() {
    AppPluginActionProxy proxy = new AppPluginActionProxy(null, null);
    int initialHash = proxy.hashCode();
    AddonSpecification spec = new AddonSpecification();
    String id = "test";
    spec.setId(id);
    spec.setVersion("1.0.0");
    cache.addAppPluginAction(spec, id, proxy);
    // now get it back from the cache
    AppPluginAction proto = cache.getAppPluginAction(spec, id);
    Assert.assertEquals(proto.hashCode(), initialHash);
}
Also used : AppPluginActionProxy(org.openecard.addon.bind.AppPluginActionProxy) AddonSpecification(org.openecard.addon.manifest.AddonSpecification) AppPluginAction(org.openecard.addon.bind.AppPluginAction) Test(org.testng.annotations.Test)

Example 5 with AppPluginActionProxy

use of org.openecard.addon.bind.AppPluginActionProxy in project open-ecard by ecsec.

the class CacheTest method removeMulti.

@Test
public void removeMulti() {
    SALProtocolProxy proxy4 = new SALProtocolProxy(null, null);
    AddonSpecification spec4 = new AddonSpecification();
    String id4 = "test4";
    spec4.setId(id4);
    spec4.setVersion("1.0.0");
    cache.addSALProtocol(spec4, id4, proxy4);
    IFDProtocolProxy proxy3 = new IFDProtocolProxy(null, null);
    AddonSpecification spec2 = new AddonSpecification();
    String id1 = "test1";
    spec2.setId(id1);
    spec2.setVersion("1.0.0");
    cache.addIFDProtocol(spec2, id1, proxy3);
    AppPluginActionProxy proxy = new AppPluginActionProxy(null, null);
    AddonSpecification spec1 = new AddonSpecification();
    String id0 = "test2";
    spec1.setId(id0);
    spec1.setVersion("1.0.0");
    cache.addAppPluginAction(spec1, id0, proxy);
    AppExtensionActionProxy proxy2 = new AppExtensionActionProxy(null, null);
    AddonSpecification spec = new AddonSpecification();
    String id = "test";
    spec.setId(id);
    spec.setVersion("1.0.0");
    cache.addAppExtensionAction(spec, id, proxy2);
    cache.removeCacheEntry(spec, id);
    cache.removeCacheEntry(spec1, id0);
    // now get it back from the cache
    AppExtensionAction proto = cache.getAppExtensionAction(spec, id);
    AppPluginAction action = cache.getAppPluginAction(spec1, id0);
    Assert.assertNull(proto);
    Assert.assertNull(action);
}
Also used : AppExtensionAction(org.openecard.addon.bind.AppExtensionAction) AppPluginActionProxy(org.openecard.addon.bind.AppPluginActionProxy) IFDProtocolProxy(org.openecard.addon.ifd.IFDProtocolProxy) SALProtocolProxy(org.openecard.addon.sal.SALProtocolProxy) AddonSpecification(org.openecard.addon.manifest.AddonSpecification) AppExtensionActionProxy(org.openecard.addon.bind.AppExtensionActionProxy) AppPluginAction(org.openecard.addon.bind.AppPluginAction) Test(org.testng.annotations.Test)

Aggregations

AppPluginActionProxy (org.openecard.addon.bind.AppPluginActionProxy)6 AddonSpecification (org.openecard.addon.manifest.AddonSpecification)5 Test (org.testng.annotations.Test)5 AppPluginAction (org.openecard.addon.bind.AppPluginAction)4 AppExtensionAction (org.openecard.addon.bind.AppExtensionAction)3 AppExtensionActionProxy (org.openecard.addon.bind.AppExtensionActionProxy)2 IFDProtocolProxy (org.openecard.addon.ifd.IFDProtocolProxy)2 SALProtocolProxy (org.openecard.addon.sal.SALProtocolProxy)2 AppPluginSpecification (org.openecard.addon.manifest.AppPluginSpecification)1