TomEE поставщик нестандартной недвижимости - PullRequest
0 голосов
/ 04 декабря 2018

Я запускаю свое приложение в 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 Ответ

0 голосов
/ 28 февраля 2019

Я считаю, что Ромен пытался быть кратким в своих примерах.В его примерах можно предположить, что он использовал 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 / main / webapp / WEB-INF / resources.xml

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

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

...