blob: 8a4fd1d7992c2f5d061e4e27463a11dc1d800751 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
package net.java.sip.communicator.plugin.advancedconfig;
import java.util.*;
import net.java.sip.communicator.service.configuration.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.resources.*;
import net.java.sip.communicator.util.*;
import org.osgi.framework.*;
/**
*
* @author Yana Stamcheva
*/
public class AdvancedConfigActivator
implements BundleActivator
{
/**
* The logger.
*/
private static final Logger logger
= Logger.getLogger(AdvancedConfigActivator.class);
/**
* The bundle context.
*/
protected static BundleContext bundleContext;
/**
* The resource management service.
*/
private static ResourceManagementService resourceService;
/**
* The <tt>ConfigurationService</tt> registered in {@link #bundleContext}
* and used by the <tt>SecurityConfigActivator</tt> instance to read and
* write configuration properties.
*/
private static ConfigurationService configurationService;
/**
* Indicates if the advanced configuration form should be disabled, i.e.
* not visible to the user.
*/
private static final String DISABLED_PROP
= "net.java.sip.communicator.plugin.advancedconfig.DISABLED";
/**
* The advanced configuration panel registered by this bundle.
*/
private static AdvancedConfigurationPanel panel;
/**
* The OSGi service registration of the panel.
*/
private static ServiceRegistration panelRegistration;
/**
* Starts this bundle.
* @param bc the bundle context
* @throws Exception if something goes wrong
*/
public void start(BundleContext bc)
throws Exception
{
bundleContext = bc;
// If the notification configuration form is disabled don't continue.
if (getConfigurationService().getBoolean(DISABLED_PROP, false))
return;
Dictionary<String, String> properties = new Hashtable<String, String>();
properties.put( ConfigurationForm.FORM_TYPE,
ConfigurationForm.GENERAL_TYPE);
panel = new AdvancedConfigurationPanel();
panelRegistration = bundleContext
.registerService(
ConfigurationForm.class.getName(),
panel,
properties);
bundleContext.addServiceListener(panel);
if (logger.isInfoEnabled())
logger.info("ADVANCED CONFIG PLUGIN... [REGISTERED]");
}
/**
* Stops this bundle.
* @param bc the bundle context
* @throws Exception if something goes wrong
*/
public void stop(BundleContext bc) throws Exception
{
bc.removeServiceListener(panel);
panelRegistration.unregister();
}
/**
* Returns the <tt>ResourceManagementService</tt> implementation.
* @return the <tt>ResourceManagementService</tt> implementation
*/
public static ResourceManagementService getResources()
{
if (resourceService == null)
resourceService
= ResourceManagementServiceUtils.getService(bundleContext);
return resourceService;
}
/**
* Returns a reference to the ConfigurationService implementation currently
* registered in the bundle context or null if no such implementation was
* found.
*
* @return a currently valid implementation of the ConfigurationService.
*/
public static ConfigurationService getConfigurationService()
{
if (configurationService == null)
{
configurationService
= ServiceUtils.getService(
bundleContext,
ConfigurationService.class);
}
return configurationService;
}
}
|