tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sgjava <sgj...@gmail.com>
Subject JCache annotations in web app test
Date Tue, 01 Sep 2015 01:55:25 GMT
I have JCache annotations working with a unit test:

KeyValueBean using @CacheDefaults(cacheName = "testCache")

    @CacheResult
    public String add(@CacheKey String key, String value) {
        log.info(String.format("Adding key: %s, value: %s", key, value));
        return value;
    }

Test:

    /**
     * Injected cache bean.
     */
    @EJB
    private CacheBean cacheBean;
    /**
     * Our key/value bean.
     */
    @EJB
    private KeyValueBean keyValueBean;

        container = EJBContainer.createEJBContainer();
        container.getContext().bind("inject", this);

    keyValueBean.add("key1", "value1");

INFO: Key: org.jsr107.ri.annotations.DefaultGeneratedCacheKey@322dd1, Value:
value1

But using a web test:

        final Map p = new HashMap();
        p.put(Context.INITIAL_CONTEXT_FACTORY,
                "org.apache.openejb.core.LocalInitialContextFactory");
        p.put("openejb.embedded.initialcontext.close ", "DESTROY");
        p.put("openejb.embedded.remotable", "true");
        p.put(EJBContainer.APP_NAME, "my-jaxrs-test");
        p.put(EJBContainer.PROVIDER, "tomee-embedded");
        // Add WAR and MDB modules
        p.put(EJBContainer.MODULES, new File[]{Archive.archive().copyTo(
            "WEB-INF/classes", jarLocation(UserService.class)).asDir()});
        // Random port
        p.put(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT, "-1");
        container = EJBContainer.createEJBContainer(p);

And a service:

    /**
     * Injected cache bean.
     */
    @EJB
    private CacheBean cacheBean;
    /**
     * Our key/value bean.
     */
    @EJB
    private KeyValueBean keyValueBean;

The annotations do not work, but I can see cache inside the service class:

        log.info(String.format("Cache names: %s",
cacheBean.getCacheManager().
                getCacheNames()));

INFO: Cache names: [testCache]

Is this a scope or class loader issue with the test container?




--
View this message in context: http://tomee-openejb.979440.n4.nabble.com/JCache-annotations-in-web-app-test-tp4676034.html
Sent from the TomEE Users mailing list archive at Nabble.com.

Mime
View raw message