1 package org.jcr_blog.service.jmx;
2
3 import java.lang.management.ManagementFactory;
4 import javax.annotation.PostConstruct;
5 import javax.annotation.PreDestroy;
6 import javax.ejb.Singleton;
7 import javax.ejb.Startup;
8 import javax.inject.Inject;
9 import javax.management.InstanceAlreadyExistsException;
10 import javax.management.MBeanServer;
11 import javax.management.ObjectName;
12 import org.jcr_blog.domain.BlogRepository;
13 import org.jcr_blog.service.JcrBlogException;
14
15 @Singleton
16 @Startup
17 public class JcrBlogImpl implements JcrBlogMXBean {
18
19 private MBeanServer platformMBeanServer;
20 private ObjectName objectName = null;
21 @Inject
22 private BlogRepository blogRepository;
23
24
25 @PostConstruct
26 public void registerInJMX() {
27 try {
28 objectName = new ObjectName("org.jcr_blog.jcrblog:type=" + this.getClass().getName());
29 platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
30 platformMBeanServer.registerMBean(this, objectName);
31 }catch(InstanceAlreadyExistsException e) {
32
33 }
34
35 catch (Exception e) {
36 throw new IllegalStateException("Problem during registration of Monitoring into JMX:" + e);
37 }
38 }
39
40 @PreDestroy
41 public void unregisterFromJMX() {
42 try {
43 platformMBeanServer.unregisterMBean(this.objectName);
44 } catch (Exception e) {
45 throw new IllegalStateException("Problem during unregistration of Monitoring into JMX:" + e);
46 }
47 }
48
49 @Override
50 public void initBlog(String blog) throws JcrBlogException {
51 this.blogRepository.initBlog(blog);
52 }
53
54 @Override
55 public void resetDataStore() throws JcrBlogException {
56 this.blogRepository.removeAll();
57 this.blogRepository.initializeStorageLayout();
58 }
59
60
61
62 }