Archived
0

Расширение API от веб интерфейса

This commit is contained in:
2017-03-12 20:54:56 +03:00
parent dbcf9c9894
commit e96ffbc568
12 changed files with 159 additions and 72 deletions

View File

@@ -1,5 +1,5 @@
group = 'asys'
version = '0.1-SNAPSHOT'
version = '0.2-SNAPSHOT'
apply plugin: 'osgi'

View File

@@ -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 =(");