aboutsummaryrefslogtreecommitdiffstats
path: root/push
diff options
context:
space:
mode:
Diffstat (limited to 'push')
-rw-r--r--push/bnd.bnd6
-rw-r--r--push/pom.xml38
-rw-r--r--push/src/main/java/com/vaadin/osgi/push/PushResourcesContribution.java51
3 files changed, 73 insertions, 22 deletions
diff --git a/push/bnd.bnd b/push/bnd.bnd
new file mode 100644
index 0000000000..f5d0deb9a7
--- /dev/null
+++ b/push/bnd.bnd
@@ -0,0 +1,6 @@
+Bundle-SymbolicName: ${project.groupId}.push
+Bundle-Name: Vaadin Push
+Bundle-Version: ${osgi.bundle.version}
+Import-Package: com.vaadin*;version='[${osgi.bundle.version},${osgi.bundle.version}]',\
+ *
+Export-Package: com.vaadin.osgi.push;-noimport:=true
diff --git a/push/pom.xml b/push/pom.xml
index af51026084..ee9d82e1fe 100644
--- a/push/pom.xml
+++ b/push/pom.xml
@@ -29,7 +29,20 @@
<type>war</type>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>vaadin-shared</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.cmpn</artifactId>
+ </dependency>
</dependencies>
<build>
@@ -134,28 +147,9 @@
<outputDirectory>${project.build.outputDirectory}/VAADIN</outputDirectory>
</configuration>
</plugin>
-
<plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-Version>${osgi.bundle.version}</Bundle-Version>
- <Bundle-RequiredExecutionEnvironment>${osgi.execution.environment}</Bundle-RequiredExecutionEnvironment>
- <Export-Package>VAADIN</Export-Package>
- <Require-Bundle>com.vaadin.external.atmosphere.runtime;bundle-version="${atmosphere.runtime.version}";visibility:=reexport</Require-Bundle>
- </instructions>
- </configuration>
- <executions>
- <execution>
- <id>bundle-manifest</id>
- <phase>process-classes</phase>
- <goals>
- <goal>manifest</goal>
- </goals>
- </execution>
- </executions>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/push/src/main/java/com/vaadin/osgi/push/PushResourcesContribution.java b/push/src/main/java/com/vaadin/osgi/push/PushResourcesContribution.java
new file mode 100644
index 0000000000..8d4564c582
--- /dev/null
+++ b/push/src/main/java/com/vaadin/osgi/push/PushResourcesContribution.java
@@ -0,0 +1,51 @@
+/*
+ * 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.push;
+
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.http.HttpService;
+
+import com.vaadin.osgi.resources.OSGiVaadinResources;
+import com.vaadin.osgi.resources.VaadinResourceService;
+
+@Component(immediate = true)
+public class PushResourcesContribution {
+ private HttpService httpService;
+
+ private static final String[] RESOURCES = { "vaadinPush.js",
+ "vaadinPush.js.gz", "vaadinPush.debug.js",
+ "vaadinPush.debug.js.gz" };
+
+ @Activate
+ void startup(ComponentContext context) throws Exception {
+ VaadinResourceService service = OSGiVaadinResources.getService();
+ for (String resourceName : RESOURCES) {
+ service.publishResource(resourceName, httpService);
+ }
+ }
+
+ @Reference
+ void setHttpService(HttpService httpService) {
+ this.httpService = httpService;
+ }
+
+ void unsetHttpService(HttpService httpService) {
+ this.httpService = null;
+ }
+}