Removed circular dependency in Home Builder and switched tiles to DS annotations ()

Signed-off-by: Kai Kreuzer <kai@openhab.org>
pull/389/head
Kai Kreuzer 2018-08-20 21:14:50 +02:00 committed by Wouter Born
parent 25345a721d
commit 11acfbad82
13 changed files with 77 additions and 102 deletions
bundles
org.openhab.ui.basicui
src/main/java/org/openhab/ui/basicui/internal
org.openhab.ui.classicui
src/main/java/org/openhab/ui/classicui/internal
org.openhab.ui.homebuilder
src/main/java/org/openhab/ui/homebuilder/internal
org.openhab.ui.paperui
src/main/java/org/openhab/ui/paperui/internal

View File

@ -0,0 +1,2 @@
/*.xml

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015-2018 by the respective copyright holders.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
-->
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.openhab.ui.basicui.dashboardtile">
<implementation class="org.openhab.ui.basicui.internal.BasicUIDashboardTile"/>
<service>
<provide interface="org.openhab.ui.dashboard.DashboardTile"/>
</service>
</scr:component>

View File

@ -9,6 +9,7 @@
package org.openhab.ui.basicui.internal; package org.openhab.ui.basicui.internal;
import org.openhab.ui.dashboard.DashboardTile; import org.openhab.ui.dashboard.DashboardTile;
import org.osgi.service.component.annotations.Component;
/** /**
* The dashboard tile for the Basic UI * The dashboard tile for the Basic UI
@ -16,6 +17,7 @@ import org.openhab.ui.dashboard.DashboardTile;
* @author Kai Kreuzer * @author Kai Kreuzer
* *
*/ */
@Component
public class BasicUIDashboardTile implements DashboardTile { public class BasicUIDashboardTile implements DashboardTile {
@Override @Override

View File

@ -0,0 +1,2 @@
/*.xml

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015-2018 by the respective copyright holders.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
-->
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.openhab.ui.classicui.dashboardtile">
<implementation class="org.openhab.ui.classicui.internal.ClassicUIDashboardTile"/>
<service>
<provide interface="org.openhab.ui.dashboard.DashboardTile"/>
</service>
</scr:component>

View File

@ -9,6 +9,7 @@
package org.openhab.ui.classicui.internal; package org.openhab.ui.classicui.internal;
import org.openhab.ui.dashboard.DashboardTile; import org.openhab.ui.dashboard.DashboardTile;
import org.osgi.service.component.annotations.Component;
/** /**
* The dashboard tile for the Classic UI * The dashboard tile for the Classic UI
@ -16,6 +17,7 @@ import org.openhab.ui.dashboard.DashboardTile;
* @author Kai Kreuzer * @author Kai Kreuzer
* *
*/ */
@Component
public class ClassicUIDashboardTile implements DashboardTile { public class ClassicUIDashboardTile implements DashboardTile {
@Override @Override

View File

@ -0,0 +1,2 @@
/*.xml

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015-2017 by the respective copyright holders.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
-->
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" immediate="true" name="org.openhab.homebuilder">
<implementation class="org.openhab.ui.homebuilder.internal.HomeBuilderDashboardTile"/>
<reference bind="setHttpService" cardinality="1..1" interface="org.osgi.service.http.HttpService" name="HttpService" policy="static" unbind="unsetHttpService"/>
<service>
<provide interface="org.openhab.ui.dashboard.DashboardTile"/>
</service>
</scr:component>

View File

@ -9,47 +9,17 @@
package org.openhab.ui.homebuilder.internal; package org.openhab.ui.homebuilder.internal;
import org.openhab.ui.dashboard.DashboardTile; import org.openhab.ui.dashboard.DashboardTile;
import org.osgi.service.http.HttpService; import org.osgi.service.component.annotations.Component;
import org.osgi.service.http.NamespaceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* The dashboard tile and resource registering for Home Builder * The dashboard tile for Home Builder
* *
* @author Kuba Wolanin - Initial contribution * @author Kuba Wolanin - Initial contribution
* *
*/ */
@Component
public class HomeBuilderDashboardTile implements DashboardTile { public class HomeBuilderDashboardTile implements DashboardTile {
public static final String HOMEBUILDER_ALIAS = "/homebuilder";
private final Logger logger = LoggerFactory.getLogger(HomeBuilderDashboardTile.class);
protected HttpService httpService;
protected void activate() {
try {
httpService.registerResources(HOMEBUILDER_ALIAS, "web", null);
logger.info("Started Home Builder at {}", HOMEBUILDER_ALIAS);
} catch (NamespaceException e) {
logger.error("Error during Home Builder startup: {}", e.getMessage());
}
}
protected void deactivate() {
httpService.unregister(HOMEBUILDER_ALIAS);
logger.info("Stopped Home Builder");
}
protected void setHttpService(HttpService httpService) {
this.httpService = httpService;
}
protected void unsetHttpService(HttpService httpService) {
this.httpService = null;
}
@Override @Override
public String getName() { public String getName() {
return "Home Builder"; return "Home Builder";

View File

@ -0,0 +1,60 @@
/**
* Copyright (c) 2015-2018 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.ui.homebuilder.internal;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.http.HttpService;
import org.osgi.service.http.NamespaceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The resource registering for Home Builder
*
* @author Kuba Wolanin - Initial contribution
*
*/
@Component(immediate = true)
public class HomeBuilderServlet {
public static final String HOMEBUILDER_ALIAS = "/homebuilder";
private final Logger logger = LoggerFactory.getLogger(HomeBuilderServlet.class);
protected HttpService httpService;
@Activate
protected void activate() {
try {
httpService.registerResources(HOMEBUILDER_ALIAS, "web", null);
logger.info("Started Home Builder at {}", HOMEBUILDER_ALIAS);
} catch (NamespaceException e) {
logger.error("Error during Home Builder startup: {}", e.getMessage());
}
}
@Deactivate
protected void deactivate() {
httpService.unregister(HOMEBUILDER_ALIAS);
logger.info("Stopped Home Builder");
}
@Reference
protected void setHttpService(HttpService httpService) {
this.httpService = httpService;
}
protected void unsetHttpService(HttpService httpService) {
this.httpService = null;
}
}

View File

@ -0,0 +1,2 @@
/*.xml

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015-2018 by the respective copyright holders.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
-->
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.openhab.ui.paperui.dashboardtile">
<implementation class="org.openhab.ui.paperui.internal.PaperUIDashboardTile"/>
<service>
<provide interface="org.openhab.ui.dashboard.DashboardTile"/>
</service>
</scr:component>

View File

@ -9,6 +9,7 @@
package org.openhab.ui.paperui.internal; package org.openhab.ui.paperui.internal;
import org.openhab.ui.dashboard.DashboardTile; import org.openhab.ui.dashboard.DashboardTile;
import org.osgi.service.component.annotations.Component;
/** /**
* The dashboard tile for the Paper UI * The dashboard tile for the Paper UI
@ -16,6 +17,7 @@ import org.openhab.ui.dashboard.DashboardTile;
* @author Kai Kreuzer * @author Kai Kreuzer
* *
*/ */
@Component
public class PaperUIDashboardTile implements DashboardTile { public class PaperUIDashboardTile implements DashboardTile {
@Override @Override