TomEE поставщик нестандартной недвижимости

Я запускаю свое приложение в TomEE 8. Я хочу прочитать некоторое свойство из моей БД и передать его приложению.

Я видел один пример из https://rmannibucau.wordpress.com/2014/08/06/tomee-and-more-advanced-resource-configuration/. может быть, он старый. это не работает. при развертывании приложения ожидается тип ресурса. Но в примере нет тега Type in resource.

<Resource id="..." properties-provider="com.foo.MyPropertiesReader" />

Каков последний / правильный способ загрузки моих пользовательских свойств в мое приложение из моей БД?

1 ответ

Решение

Я считаю, что Ромен пытался быть кратким в своих примерах. В его примерах можно предположить, что он использовал javax.sql.DataSource или же DataSource, Несмотря на это, однако, это будет работать для любого типа ресурса, даже пользовательских ресурсов. Также есть уже реализации, которые вы можете проверить:

На упомянутой вами странице Ромен также отмечает, что ваш класс может реализовать org.apache.openejb.api.resource.PropertiesResourceProviderили поставьте Properties provides(); метод.

Вот небольшой пример:

org.superbiz.provider.MyPropertiesReader.java

package org.superbiz.provider;

import org.apache.openejb.api.resource.PropertiesResourceProvider;
import org.apache.openejb.testng.PropertiesBuilder;

import java.util.Properties;

public class MyPropertiesReader implements PropertiesResourceProvider {
    public Properties provides() {
        return new PropertiesBuilder()
                .p("JdbcDriver", "org.hsqldb.jdbcDriver")
                .p("JdbcUrl", "jdbc:hsqldb:mem:moviedb")
                .build();
    }
}

SRC / Главный / WebApp/WEB-INF/resources.xml

<resources>
    <Resource id="movieDatabase"
              type="DataSource"
              properties-provider="org.superbiz.provider.MyPropertiesReader"/>
</resources>

Это ключевые фрагменты, которые, я надеюсь, помогут рассеять ваши сомнения. Реализация источника данных оставлена ​​на ваше усмотрение.:)

Другие вопросы по тегам