net\m2technologies\open_arm\samples\pojo\SimpleJmsApplication.java
|
package net.m2technologies.open_arm.samples.pojo;
import net.m2technologies.open_arm.OpenArmConfiguration;
import net.m2technologies.open_arm.transport.transaction.logging.LoggingMediatorConfiguration;
import net.m2technologies.open_arm.transport.transaction.messaging.MessagingMediatorConfiguration;
import javax.naming.Context;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* Copyright 2004 Mark Masterson<br> <br> Licensed under the Apache License, Version 2.0 (the "License");<br> you may
* not use this file except in compliance with the License.<br> You may obtain a copy of the License at<br> <br>
* http://www.apache.org/licenses/LICENSE-2.0<br> <br> Unless required by applicable law or agreed to in writing,
* software<br> distributed under the License is distributed on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS
* OF ANY KIND, either express or implied.<br> See the License for the specific language governing permissions and<br>
* limitations under the License.<br>
* <p/>
* <p>Description: </p>
*
* @author Mark Masterson
* @version 0.009
*/
public class SimpleJmsApplication extends AbstractPojoApplication {
protected SimpleJmsApplication(final String configurationFile) {
super(configurationFile);
}
protected SimpleJmsApplication(final OpenArmConfiguration config) {
super(config);
}
public static void main(final String[] args) {
startActiveMQMessagingBroker();
// We can do this with a file name, here passed as a command line parameter...
//final SimpleApplication self = new SimpleApplication(args[0]);
//
// ... or, with a programmatic configuration.
final SimpleJmsApplication self = new SimpleJmsApplication(obtainOpenArmConfiguration());
self.doSomething();
self.doSomethingWithSetupOverhead();
self.doSomethingWithExceptionHandling();
System.exit(0);
}
private static void startActiveMQMessagingBroker() {
new Thread() {
public void run() {
org.activemq.broker.impl.Main.main(new String[]{"tcp://127.0.0.1:61616"});
}
}.start();
}
private static OpenArmConfiguration obtainOpenArmConfiguration() {
return new OpenArmConfiguration() {
public Map getMediatorConfigurations() {
final Map result = new HashMap();
result.put("net.m2technologies.open_arm.transport.transaction.logging.LoggingMediator",
new LoggingMediatorConfiguration());
final Properties jndiInitialContextProperties = new Properties();
jndiInitialContextProperties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.activemq.jndi.ActiveMQInitialContextFactory");
jndiInitialContextProperties.setProperty(Context.PROVIDER_URL, "tcp://127.0.0.1:61616");
result.put("net.m2technologies.open_arm.transport.transaction.messaging.MessagingMediator",
new MessagingMediatorConfiguration("QueueConnectionFactory",
2000,
5000,
true,
"myQ",
jndiInitialContextProperties));
return result;
}
};
}
}