Skip to content

Commit

Permalink
[builder] Change BndtoolsBuilder to facade pattern
Browse files Browse the repository at this point in the history
Fixes bndtools#5004

Signed-off-by: Fr Jeremy Krieg <fr.jkrieg@greekwelfaresa.org.au>
  • Loading branch information
kriegfrj committed Jan 8, 2022
1 parent 3fe34bd commit 017eef9
Show file tree
Hide file tree
Showing 68 changed files with 1,337 additions and 129 deletions.
19 changes: 12 additions & 7 deletions bndtools.api/bnd.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,22 @@

-buildpath: \
osgi.annotation;version=latest;maven-scope=provided,\
osgi.core;version=latest;maven-scope=provided, \
osgi.core;version=latest;maven-scope=provided,\
aQute.libg;version=project,\
biz.aQute.bnd.util;version=latest, \
biz.aQute.bndlib;version=latest, \
biz.aQute.bnd.util;version=latest,\
biz.aQute.bndlib;version=latest,\
org.eclipse.core.resources,\
org.eclipse.core.runtime,\
org.eclipse.equinox.common, \
org.eclipse.equinox.registry, \
org.eclipse.swt,\
org.eclipse.equinox.common,\
org.eclipse.equinox.registry,\
org.eclipse.swt,\
org.eclipse.swt.cocoa.macosx.x86_64,\
org.eclipse.jface
org.eclipse.jface,\
org.eclipse.core.jobs,\
slf4j.api,\
org.eclipse.jface.text,\
org.eclipse.ui.ide,\
org.eclipse.jdt.core

Import-Package: \
${eclipse.importpackage},\
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.bndtools.build.api;
package org.bndtools.api.builder;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.bndtools.build.api;
package org.bndtools.api.builder;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.bndtools.api.builder;

public interface BuildLoggerConstants {

int LOG_FULL = 2;
int LOG_BASIC = 1;
int LOG_NONE = 0;

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.bndtools.build.api;
package org.bndtools.api.builder;

import java.io.File;
import java.util.Collection;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.bndtools.build.api;
package org.bndtools.api.builder;

import java.util.Map;

Expand Down
5 changes: 5 additions & 0 deletions bndtools.api/src/org/bndtools/api/builder/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

@Version("1.0.0")
package org.bndtools.api.builder;

import org.osgi.annotation.versioning.Version;
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
@org.osgi.annotation.bundle.Export
@org.osgi.annotation.versioning.Version("1.0.0")
package org.bndtools.facade;
14 changes: 7 additions & 7 deletions bndtools.builder/_plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
name="Bndtools Nature"
>
<runtime>
<run class="org.bndtools.builder.BndProjectNature" />
<run class="org.bndtools.facade.ExtensionFacade:org.eclipse.core.resources.IProjectNature:org.bndtools.builder.impl.BndProjectNature" />
</runtime>
<requires-nature id="org.eclipse.jdt.core.javanature" />
<builder id="bndtools.core.bndbuilder" />
Expand All @@ -27,8 +27,8 @@
name="Bndtools Builder"
>
<builder callOnEmptyDelta="false" hasNature="true">
<run class="org.bndtools.builder.BndtoolsBuilder" />
<dynamicReference class="org.bndtools.builder.BndtoolsDynamicReferenceProvider" />
<run class="org.bndtools.builder.facade.BuilderFacade" />
<dynamicReference class="org.bndtools.facade.ExtensionFacade:org.eclipse.core.resources.IDynamicReferenceProvider:org.bndtools.builder.impl.BndtoolsDynamicReferenceProvider" />
</builder>
</extension>

Expand All @@ -43,18 +43,18 @@
</compilationParticipant>
</extension>

<extension
<!-- <extension
point="org.eclipse.jdt.core.compilationParticipant"
name="Bnd Source Generation Compilation Participant"
>
<compilationParticipant class="org.bndtools.builder.BndSourceGenerateCompilationParticipant"
id="bndtools.builder.generate.compilationparticipant"
<compilationParticipant class="org.bndtools.facade.ExtensionFacade"
id="org.bndtools.builder.impl.BndSourceGenerateCompilationParticipant"
modifiesEnvironment="true"
createsProblems="true"
>
</compilationParticipant>
</extension>

-->



Expand Down
13 changes: 12 additions & 1 deletion bndtools.builder/bnd.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
org.eclipse.equinox.common,\
org.eclipse.equinox.registry,\
org.eclipse.equinox.preferences,\
slf4j.api
slf4j.api,\
org.osgi.service.component.annotations

-testpath: \
${junit},\
Expand All @@ -58,5 +59,15 @@ Import-Package: \
aQute.libg.*;-split-package:=merge-first, \
org.bndtools.utils.*

Export-Package: \
org.bndtools.builder.classpath.*,\
org.bndtools.builder.decorator.*,\
org.bndtools.builder.facade.*,\
org.bndtools.builder.handlers.*,\
org.bndtools.builder.jobs.*,\
org.bndtools.builder.utils.*,\
org.bndtools.builder.validate.*


-includeresource: \
plugin.xml=_plugin.xml
8 changes: 7 additions & 1 deletion bndtools.builder/src/org/bndtools/builder/BuilderPlugin.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package org.bndtools.builder;

import org.bndtools.build.api.IProjectDecorator;
import org.bndtools.api.builder.IProjectDecorator;
import org.bndtools.builder.decorator.ui.ProjectDecoratorImpl;
import org.bndtools.builder.facade.BuilderFacade;
import org.bndtools.facade.ExtensionFacade;
import org.osgi.framework.BundleContext;

public class BuilderPlugin extends org.eclipse.core.runtime.Plugin {
public static final String PLUGIN_ID = "bndtools.builder";

static final Class<?> BUILDER_FACADE = BuilderFacade.class;
static final Class<?> EXTENSION_FACADE = ExtensionFacade.class;

private static BuilderPlugin instance = null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
import org.bndtools.api.ILogger;
import org.bndtools.api.Logger;
import org.bndtools.api.ModelListener;
import org.bndtools.builder.BndtoolsBuilder;
import org.bndtools.builder.BuildLogger;
import org.bndtools.api.builder.BuildLoggerConstants;
import org.bndtools.builder.BuilderPlugin;
import org.bndtools.utils.jar.PseudoJar;
import org.eclipse.core.resources.IProject;
Expand Down Expand Up @@ -202,7 +201,7 @@ private static class Updater {
IAccessRule.K_DISCOURAGED | IAccessRule.IGNORE_IF_BETTER);
private static final IClasspathAttribute EMPTY_INDEX = JavaCore.newClasspathAttribute(
IClasspathAttribute.INDEX_LOCATION_ATTRIBUTE_NAME,
"platform:/plugin/" + BndtoolsBuilder.PLUGIN_ID + "/org/bndtools/builder/classpath/empty.index");
"platform:/plugin/" + BuilderPlugin.PLUGIN_ID + "/org/bndtools/builder/classpath/empty.index");
private static final IClasspathAttribute TEST = JavaCore.newClasspathAttribute("test",
Boolean.TRUE.toString());
private static final IClasspathAttribute WITHOUT_TEST_CODE = JavaCore
Expand Down Expand Up @@ -273,7 +272,7 @@ void updateClasspathContainer(boolean init) throws CoreException {

static void setClasspathContainer(IJavaProject javaProject, BndContainer container) throws JavaModelException {
BndPreferences prefs = new BndPreferences();
if (prefs.getBuildLogging() == BuildLogger.LOG_FULL) {
if (prefs.getBuildLogging() == BuildLoggerConstants.LOG_FULL) {
StringBuilder sb = new StringBuilder();
sb.append(container.getDescription())
.append(" for ")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;

import org.bndtools.builder.BndtoolsBuilder;
import org.bndtools.builder.BuilderPlugin;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
Expand Down Expand Up @@ -77,7 +76,7 @@ public static void saveAttachedSources(final IProject project, final IClasspathE
try (OutputStream out = IO.outputStream(propertiesFile)) {
props.store(out, new Date().toString());
} catch (final IOException e) {
throw new CoreException(new Status(IStatus.ERROR, BndtoolsBuilder.PLUGIN_ID,
throw new CoreException(new Status(IStatus.ERROR, BuilderPlugin.PLUGIN_ID,
"Failure to write container source attachments", e));
}
}
Expand Down Expand Up @@ -200,7 +199,7 @@ private static Properties loadSourceAttachmentProperties(final IProject project)
try (InputStream in = IO.stream(propertiesFile)) {
props.load(in);
} catch (final IOException e) {
throw new CoreException(new Status(IStatus.ERROR, BndtoolsBuilder.PLUGIN_ID,
throw new CoreException(new Status(IStatus.ERROR, BuilderPlugin.PLUGIN_ID,
"Failure to read container source attachments", e));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import org.bndtools.api.BndtoolsConstants;
import org.bndtools.api.ILogger;
import org.bndtools.api.Logger;
import org.bndtools.builder.ComponentMarker;
import org.bndtools.builder.handlers.component.ComponentMarker;
import org.bndtools.core.ui.icons.Icons;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

import org.bndtools.api.ILogger;
import org.bndtools.api.Logger;
import org.bndtools.build.api.IProjectDecorator.BndProjectInfo;
import org.bndtools.builder.BndtoolsBuilder;
import org.bndtools.api.builder.IProjectDecorator.BndProjectInfo;
import org.bndtools.builder.BuilderPlugin;
import org.bndtools.core.ui.icons.Icons;
import org.bndtools.utils.swt.SWTConcurrencyUtil;
import org.eclipse.core.resources.IProject;
Expand Down Expand Up @@ -37,7 +37,7 @@
public class PackageDecorator extends LabelProvider implements ILightweightLabelDecorator {
private static final ILogger logger = Logger.getLogger(PackageDecorator.class);
private static final String packageDecoratorId = "bndtools.packageDecorator";
private static final QualifiedName packageDecoratorKey = new QualifiedName(BndtoolsBuilder.PLUGIN_ID,
private static final QualifiedName packageDecoratorKey = new QualifiedName(BuilderPlugin.PLUGIN_ID,
packageDecoratorId);
private static final String excluded = " <excluded>";
private static final ImageDescriptor exportedIcon = Icons.desc("icons/plus-decorator.png");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.bndtools.builder.decorator.ui;

import org.bndtools.build.api.IProjectDecorator;
import org.bndtools.builder.ComponentMarker;
import org.bndtools.api.builder.IProjectDecorator;
import org.bndtools.builder.handlers.component.ComponentMarker;
import org.eclipse.core.resources.IProject;
import org.osgi.annotation.bundle.Capability;
import org.osgi.namespace.service.ServiceNamespace;
Expand Down

0 comments on commit 017eef9

Please sign in to comment.