diff options
author | Mirjan Merruko <mirjan@vaadin.com> | 2017-03-24 13:33:37 +0200 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-04-25 15:01:06 +0300 |
commit | 9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9 (patch) | |
tree | 20b1c09d6c2e6319cba036f9ecf409893c4b6c56 /themes | |
parent | d0a8608c7e074d4baeef0282146b2da5c47603a5 (diff) | |
download | vaadin-framework-9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9.tar.gz vaadin-framework-9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9.zip |
Add OSGi support #8830 #8827 #8828 #8829
Use bnd-maven-plugin instead of maven-bundle-plugin and helper class, and
add support for publishing static resources such as themes and widgetsets.
Diffstat (limited to 'themes')
-rw-r--r-- | themes/bnd.bnd | 6 | ||||
-rw-r--r-- | themes/pom.xml | 64 | ||||
-rw-r--r-- | themes/src/main/java/com/vaadin/osgi/themes/ValoThemeContribution.java | 45 |
3 files changed, 62 insertions, 53 deletions
diff --git a/themes/bnd.bnd b/themes/bnd.bnd new file mode 100644 index 0000000000..7398d4de6e --- /dev/null +++ b/themes/bnd.bnd @@ -0,0 +1,6 @@ +Bundle-SymbolicName: ${project.groupId}.themes +Bundle-Name: Vaadin Themes +Bundle-Version: ${osgi.bundle.version} +Import-Package: com.vaadin.*;version='[${osgi.bundle.version},${osgi.bundle.version}]',\ + * +Export-Package: com.vaadin.osgi.themes;-noimport:=true diff --git a/themes/pom.xml b/themes/pom.xml index d7c8ae333e..fc0e9fcc6d 100644 --- a/themes/pom.xml +++ b/themes/pom.xml @@ -54,6 +54,15 @@ <artifactId>commons-io</artifactId> <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> @@ -148,61 +157,10 @@ </execution> </executions> </plugin> - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <executions> - <execution> - <id>generate-export-package</id> - <phase>package</phase> - <goals> - <goal>exec</goal> - </goals> - <configuration> - <classpathScope>compile</classpathScope> - <executable>${java.home}/bin/java</executable> - <arguments> - <argument>-Dvaadin.version=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</argument> - <argument>-DincludeNumberPackages=0</argument> - - <argument>-classpath</argument> - <classpath /> - - <argument>com.vaadin.buildhelpers.GeneratePackageExports</argument> - - <argument>${project.build.directory}/${project.build.finalName}.${project.packaging}</argument> - <argument>VAADIN/themes</argument> - </arguments> - </configuration> - </execution> - </executions> - </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 is handled in exec plugin --> - <Export-Package></Export-Package> - <Import-Package></Import-Package> - </instructions> - </configuration> - <executions> - <execution> - <id>bundle-manifest</id> - <phase>prepare-package</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> <artifactId>maven-jar-plugin</artifactId> diff --git a/themes/src/main/java/com/vaadin/osgi/themes/ValoThemeContribution.java b/themes/src/main/java/com/vaadin/osgi/themes/ValoThemeContribution.java new file mode 100644 index 0000000000..cd1b7a4a8e --- /dev/null +++ b/themes/src/main/java/com/vaadin/osgi/themes/ValoThemeContribution.java @@ -0,0 +1,45 @@ +/* + * 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.themes; + +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 ValoThemeContribution { + + private HttpService httpService; + + @Activate + void startup() throws Exception { + VaadinResourceService service = OSGiVaadinResources.getService(); + service.publishTheme("valo", httpService); + } + + @Reference + void setHttpService(HttpService httpService) { + this.httpService = httpService; + } + + void unsetHttpService(HttpService httpService) { + this.httpService = null; + } +} |