aboutsummaryrefslogtreecommitdiffstats
path: root/liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java
diff options
context:
space:
mode:
authorMirjan Merruko <mirjan@vaadin.com>2017-03-24 13:45:21 +0200
committerHenri Sara <henri.sara@gmail.com>2017-04-25 15:01:06 +0300
commit16a460fa016e28b32f49b17fa763bda15249d501 (patch)
treeb9ed560728f07d8a293cc92a96c88aee94931f5a /liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java
parente1b923f90623d7dcdbe355225a4049323dabacf7 (diff)
downloadvaadin-framework-16a460fa016e28b32f49b17fa763bda15249d501.tar.gz
vaadin-framework-16a460fa016e28b32f49b17fa763bda15249d501.zip
Add liferay integration originally developed by Sampsa Sohlman #8834
Diffstat (limited to 'liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java')
-rw-r--r--liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java b/liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java
new file mode 100644
index 0000000000..1d71238ba5
--- /dev/null
+++ b/liferay-integration/src/main/java/com/vaadin/osgi/liferay/OSGiUIProvider.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.osgi.liferay;
+
+import org.osgi.framework.ServiceObjects;
+
+import com.vaadin.server.UIClassSelectionEvent;
+import com.vaadin.server.UIProvider;
+import com.vaadin.ui.UI;
+
+/**
+ * Vaadin {@link com.vaadin.server.UIProvider} that provides a single {@link UI}
+ * class provided through the registration of a {@link UI} as an OSGi service.
+ *
+ * @author Sampsa Sohlman
+ *
+ * @since 8.1
+ */
+@SuppressWarnings("serial")
+public class OSGiUIProvider extends UIProvider {
+ private Class<UI> uiClass;
+
+ @SuppressWarnings("unchecked")
+ public OSGiUIProvider(ServiceObjects<UI> serviceObjects) {
+ super();
+ UI ui = serviceObjects.getService();
+ uiClass = (Class<UI>) ui.getClass();
+ serviceObjects.ungetService(ui);
+ }
+
+ @Override
+ public Class<? extends UI> getUIClass(UIClassSelectionEvent event) {
+ return uiClass;
+ }
+
+ public String getDefaultPortletName() {
+ return uiClass.getName();
+ }
+
+ public String getDefaultDisplayName() {
+ return uiClass.getSimpleName();
+ }
+
+}