diff options
Diffstat (limited to 'push')
-rw-r--r-- | push/bnd.bnd | 6 | ||||
-rw-r--r-- | push/pom.xml | 38 | ||||
-rw-r--r-- | push/src/main/java/com/vaadin/osgi/push/PushResourcesContribution.java | 51 |
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; + } +} |