Расширение API от веб интерфейса
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
group = 'asys'
|
||||
version = '0.1-SNAPSHOT'
|
||||
version = '0.2-SNAPSHOT'
|
||||
|
||||
apply plugin: 'osgi'
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
package asys.mcsmanager;
|
||||
|
||||
import asys.webinterface.api.MainMenu;
|
||||
import asys.webinterface.api.Webinterface;
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceEvent;
|
||||
@@ -15,15 +15,15 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
public class Activator implements BundleActivator, ServiceListener {
|
||||
private final Logger logger = LoggerFactory.getLogger(Activator.class);
|
||||
private ServiceTracker<?, MainMenu> serviceTracker;
|
||||
private ServiceTracker<?, Webinterface> serviceTracker;
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
logger.debug("Register service listener");
|
||||
context.addServiceListener(this);
|
||||
|
||||
logger.debug("Get service: {}", MainMenu.class);
|
||||
serviceTracker = new ServiceTracker<>(context, MainMenu.class, null);
|
||||
logger.debug("Get service: {}", Webinterface.class);
|
||||
serviceTracker = new ServiceTracker<>(context, Webinterface.class, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -37,12 +37,13 @@ public class Activator implements BundleActivator, ServiceListener {
|
||||
if (event.getType() == ServiceEvent.REGISTERED) {
|
||||
String[] objectClass = (String[]) event.getServiceReference().getProperty("objectClass");
|
||||
for (String classStr : objectClass) {
|
||||
if (classStr.equals("asys.webinterface.api.MainMenu")) {
|
||||
if (classStr.equals(Webinterface.class.getCanonicalName())) {
|
||||
try {
|
||||
serviceTracker.open();
|
||||
MainMenu mainMenu = serviceTracker.waitForService(5000);
|
||||
if (mainMenu != null) {
|
||||
mainMenu.addItem("Серверы", "/modules/mcsmanager");
|
||||
Webinterface webinterface = serviceTracker.waitForService(5000);
|
||||
if (webinterface != null) {
|
||||
webinterface.addMainMenuItem("mcsmanager",
|
||||
"Серверы", "/modules/mcsmanager");
|
||||
return;
|
||||
} else {
|
||||
logger.debug("service not found =(");
|
||||
|
||||
Reference in New Issue
Block a user