Можно ли использовать HornetQ в качестве bean-компонентов без JNDI (даже если он стоит за некоторой абстракцией) ... - PullRequest
3 голосов
/ 30 декабря 2010

Моя первоначальная проблема - попытка обнаружить и внедрить HornetQ с минимальным количеством зависимостей.

Одна вещь, которую я хотел бы избежать, - это необходимость JNDI. Я считаю, что можно было бы найти все объекты напрямую, а не делать jndi locator.

Я не фанат jndi, потому что это похоже на глобальное ведро дерьма, где нужно отслеживать имена, следить за тем, чтобы они не конфликтовали с другими вещами и так далее, многие вещи, которые кажутся неправильными каждый помнит, что хорошие абстракции делают минимум общественности.

Кстати, это не напыщенная речь, а общее замечание ...

1 Ответ

4 голосов
/ 30 декабря 2010

Я нашел ответ на свой вопрос q, просматривая примеры, в частности EmbeddedExample.java, в котором говорится, что «да», JNDI не нужен.

 // Step 1. Create the Configuration, and set the properties accordingly
     Configuration configuration = new ConfigurationImpl();
     configuration.setPersistenceEnabled(false);
     configuration.setSecurityEnabled(false);
     configuration.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));

     // Step 2. Create and start the server
     HornetQServer server = HornetQServers.newHornetQServer(configuration);
     server.start();

     // Step 3. As we are not using a JNDI environment we instantiate the objects directly
     ClientSessionFactory sf = HornetQClient.createClientSessionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));

     // Step 4. Create a core queue
     ClientSession coreSession = sf.createSession(false, false, false);
...