/* * Copyright 2012 David Blevins * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jboss.as.test.integration.ejb.mdb.dynamic.application; import org.jboss.as.test.integration.ejb.mdb.dynamic.api.Command; import org.jboss.as.test.integration.ejb.mdb.dynamic.api.Option; import org.jboss.as.test.integration.ejb.mdb.dynamic.api.TelnetListener; import org.jboss.ejb3.annotation.ResourceAdapter; import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import java.util.Map; import java.util.Properties; import java.util.regex.Pattern; @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "beanClass", propertyValue = "org.jboss.as.test.integration.ejb.mdb.dynamic.application.MyMdb"), @ActivationConfigProperty(propertyName = "prompt", propertyValue = "pronto>") }) @ResourceAdapter("ear-with-rar.ear#telnet-ra.rar") public class MyMdb implements TelnetListener { private final Properties properties = new Properties(); @Command("get") public String doGet(@Option("key") String key) { return properties.getProperty(key); } @Command("set") public String doSet(@Option("key") String key, @Option("value") String value) { final Object old = properties.setProperty(key, value); final StringBuilder sb = new StringBuilder(); sb.append("set ").append(key).append(" to ").append(value); sb.append("\n"); if (old != null) { sb.append("old value: ").append(old); sb.append("\n"); } return sb.toString(); } @Command("list") public String doList(@Option("pattern") Pattern pattern) { if (pattern == null) pattern = Pattern.compile(".*"); final StringBuilder sb = new StringBuilder(); for (Map.Entry<Object, Object> entry : properties.entrySet()) { final String key = entry.getKey().toString(); if (pattern.matcher(key).matches()) { sb.append(key).append(" = ").append(entry.getValue()).append("\n"); } } return sb.toString(); } }