HashSet<String> packages = new HashSet<String>();
for (Enumeration<JarEntry> it = jar.entries(); it.hasMoreElements();) {
JarEntry entry = it.nextElement();
- if (!entry.getName().endsWith(".class")) {
+
+ boolean classFile = entry.getName().endsWith(".class");
+ boolean directory = entry.isDirectory();
+
+ if (!classFile && !directory) {
continue;
}
- boolean accept = false;
- for (String prefix : acceptedPackagePrefixes) {
- if (entry.getName().startsWith(prefix)) {
- accept = true;
- break;
- }
- }
- if (!accept) {
+ if (!acceptEntry(entry.getName(), acceptedPackagePrefixes)) {
continue;
}
packages.add(pkg);
}
- // List theme packages
- for (Enumeration<JarEntry> it = jar.entries(); it.hasMoreElements();) {
- JarEntry entry = it.nextElement();
- if (entry.isDirectory()
- && entry.getName().startsWith("VAADIN/themes")) {
- // Strip ending slash
- int lastSlash = entry.getName().lastIndexOf('/');
- String pkg = entry.getName().substring(0, lastSlash)
- .replace('/', '.');
- packages.add(pkg);
+ return packages;
+ }
+
+ private static boolean acceptEntry(String name,
+ List<String> acceptedPackagePrefixes) {
+ for (String prefix : acceptedPackagePrefixes) {
+ if (name.startsWith(prefix)) {
+ return true;
}
}
-
- return packages;
+ return false;
}
}
<target name="jar" depends="default-widgetset">
<antcall target="common.jar">
+ <param name="osgi.extra.package.prefixes" value="VAADIN/widgetsets/" />
<reference torefid="extra.jar.includes" refid="jar.includes" />
</antcall>
</target>
<!-- Generate the Export-Package attribute in the manifest -->
<java classname="com.vaadin.buildhelpers.GeneratePackageExports" failonerror="true" fork="yes">
<arg value="${jar}" />
- <arg value="com/vaadin" />
- <arg value="com/google" />
+ <arg line="com/vaadin com/google ${osgi.extra.package.prefixes}" />
<classpath refid="vaadin.buildhelpers.classpath" />
<jvmarg value="-Dvaadin.version=${vaadin.version}" />
</java>
<antcall target="common.jar">
<param name="require-bundle" value="com.vaadin.vaadin-shared;bundle-version="${vaadin.version}""/>
<param name="import-package" value="${server.osgi.import}" />
+ <param name="osgi.extra.package.prefixes" value="VAADIN" />
<reference torefid="extra.jar.includes" refid="jar.includes" />
</antcall>
</target>
<!-- global properties -->
<property name="module.name" value="vaadin-themes" />
<property name="result.dir" value="result" />
- <property name="theme.result.dir" value="${result.dir}/VAADIN/themes" />
+ <property name="theme.result.dir" value="${result.dir}/VAADIN/themes/" />
<union id="jar.includes">
<fileset dir="${result.dir}">
<target name="jar" depends="compile-themes">
<antcall target="common.jar">
+ <param name="osgi.extra.package.prefixes" value="VAADIN/themes" />
<reference torefid="extra.jar.includes" refid="jar.includes" />
</antcall>
</target>