aboutsummaryrefslogtreecommitdiffstats
path: root/shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java
diff options
context:
space:
mode:
authorHenri Sara <henri.sara@gmail.com>2017-05-15 22:34:43 +0300
committerPekka Hyvönen <pekka@vaadin.com>2017-05-15 22:34:43 +0300
commite788fa906b968a298414e60cbb15cc7d6389b8a1 (patch)
tree2ee323f033d9ea05768e56795462e9617597809e /shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java
parent91e0eb1ce19aec5f634261534674960b7b7af399 (diff)
downloadvaadin-framework-e788fa906b968a298414e60cbb15cc7d6389b8a1.tar.gz
vaadin-framework-e788fa906b968a298414e60cbb15cc7d6389b8a1.zip
Rename OSGi classes for Java naming conventions (#9320)
- Rename OSGi to Osgi in class names. - Rename VaadinOSGiPortlet to OSGiVaadinPortlet for consistency with Spring, CDI etc. add-ons - Add missing javadoc
Diffstat (limited to 'shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java')
-rw-r--r--shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java b/shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java
new file mode 100644
index 0000000000..a423791193
--- /dev/null
+++ b/shared/src/main/java/com/vaadin/osgi/resources/OsgiVaadinResources.java
@@ -0,0 +1,86 @@
+/*
+ * 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.resources;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Version;
+
+import com.vaadin.osgi.resources.impl.VaadinResourceServiceImpl;
+
+/**
+ * {@link BundleActivator} used to provide access to the
+ * {@link VaadinResourceService} singleton for publishing themes, widgetsets and
+ * other necessary resources.
+ *
+ * @author Vaadin Ltd.
+ *
+ * @since 8.1
+ */
+public class OsgiVaadinResources implements BundleActivator {
+
+ /**
+ * Thrown if a method is called when the Resource bundle is not active.
+ *
+ * @author Vaadin Ltd.
+ *
+ * @since 8.1
+ */
+ @SuppressWarnings("serial")
+ public static class ResourceBundleInactiveException extends Exception {
+ public ResourceBundleInactiveException(String message) {
+ super(message);
+ }
+ }
+
+ private static OsgiVaadinResources instance;
+
+ private VaadinResourceServiceImpl service;
+ private Version version;
+
+ /**
+ * Returns the {@link VaadinResourceService} instance. Always returns
+ * non-null.
+ *
+ * @return the {@link VaadinResourceService resource service} to use for
+ * publishing themes, widgetsets and other necessary resources
+ * @throws ResourceBundleInactiveException
+ * if the bundle is not active
+ */
+ public static VaadinResourceService getService()
+ throws ResourceBundleInactiveException {
+ if (instance == null) {
+ throw new ResourceBundleInactiveException(
+ "Vaadin Shared is not active!");
+ }
+ return instance.service;
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ version = context.getBundle().getVersion();
+ service = new VaadinResourceServiceImpl();
+ service.setBundleVersion(version.toString());
+ instance = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ instance = null;
+ service = null;
+ version = null;
+ }
+}