/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.test.jmx;
import java.lang.management.ManagementFactory;
import java.nio.file.Path;
import java.util.Map;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.hibernate.search.cfg.Environment;
import org.hibernate.search.jmx.IndexControlMBean;
import org.hibernate.search.jmx.impl.JMXRegistrar;
import org.hibernate.search.test.SearchTestBase;
import org.hibernate.search.testsupport.TestForIssue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
* @author Hardy Ferentschik
*/
@TestForIssue(jiraKey = "HSEARCH-1026")
public class IndexControlMBeanWithSuffixTest extends SearchTestBase {
private static final String JNDI_APP_SUFFIX = "myapp";
MBeanServer mbeanServer;
ObjectName indexBeanObjectName;
@Test
public void testIndexCtrlMBeanRegistered() throws Exception {
assertTrue(
"With the right property set the Search MBean should be registered",
mbeanServer.isRegistered( indexBeanObjectName )
);
}
@Override
@Before
public void setUp() throws Exception {
super.setUp();
mbeanServer = ManagementFactory.getPlatformMBeanServer();
indexBeanObjectName = new ObjectName(
JMXRegistrar.buildMBeanName(
IndexControlMBean.INDEX_CTRL_MBEAN_OBJECT_NAME,
JNDI_APP_SUFFIX
)
);
}
@Override
@After
public void tearDown() throws Exception {
super.tearDown();
assertFalse(
"The MBean should be unregistered",
mbeanServer.isRegistered( indexBeanObjectName )
);
}
@Override
public void configure(Map<String,Object> cfg) {
Path jndiStorage = SimpleJNDIHelper.makeTestingJndiDirectory( IndexControlMBeanWithSuffixTest.class );
SimpleJNDIHelper.enableSimpleJndi( cfg, jndiStorage );
cfg.put( "hibernate.session_factory_name", "java:comp/SessionFactory" );
cfg.put( "hibernate.jndi.org.osjava.sj.factory", "org.hibernate.search.test.jmx.IndexControlMBeanTest$CustomContextFactory" );
cfg.put( "hibernate.search.indexing_strategy", "manual" );
cfg.put( Environment.JMX_ENABLED, "true" );
cfg.put( Environment.JMX_BEAN_SUFFIX, JNDI_APP_SUFFIX );
}
@Override
public Class<?>[] getAnnotatedClasses() {
return new Class<?>[] { Counter.class };
}
}