1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-21 21:52:10 +02:00

Bug 561658 - Remove Activator for CDT Templates Freemaker

Replaced "org.eclipse.tools.templates.freemarker.internal.Activator"
with "FMGenerator"-local code to determine pluginId for IStatus creation

Change-Id: Iaff6d51b09de225d6d2c657e83e36ac8418f62b3
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
This commit is contained in:
Alexander Fedorov 2020-04-01 22:06:20 +03:00
parent 36de92cc77
commit f965614e9a
3 changed files with 20 additions and 49 deletions

View file

@ -1,9 +1,10 @@
Manifest-Version: 1.0
Automatic-Module-Name: org.eclipse.tools.templates.freemarker
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.tools.templates.freemarker
Bundle-Version: 1.1.100.qualifier
Bundle-Activator: org.eclipse.tools.templates.freemarker.internal.Activator
Bundle-Version: 1.1.200.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.freemarker;visibility:=reexport,
@ -12,4 +13,4 @@ Require-Bundle: org.eclipse.core.runtime,
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.tools.templates.freemarker
Bundle-Vendor: %providerName
Bundle-Localization: plugin

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2016 QNX Software Systems and others.
* Copyright (c) 2016, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
@ -46,9 +47,9 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.tools.templates.core.IGenerator;
import org.eclipse.tools.templates.freemarker.internal.Activator;
import org.eclipse.tools.templates.freemarker.internal.Messages;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
import com.sun.xml.bind.v2.ContextFactory;
@ -63,11 +64,15 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
private final String manifestPath;
private TemplateManifest manifest;
private List<IFile> filesToOpen = new ArrayList<>();
private final String pluginId;
protected FMGenerator(String manifestPath) {
templateConfig = new Configuration(Configuration.VERSION_2_3_22);
templateConfig.setTemplateLoader(this);
this.manifestPath = manifestPath;
this.pluginId = Optional.ofNullable(FrameworkUtil.getBundle(FMGenerator.class))//
.map(b -> b.getSymbolicName())//
.orElse(FMGenerator.class.getName());
}
protected abstract Bundle getSourceBundle();
@ -107,7 +112,7 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
Unmarshaller unmarshaller = xmlContext.createUnmarshaller();
manifest = (TemplateManifest) unmarshaller.unmarshal(new StringReader(writer.toString()));
} catch (JAXBException e) {
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), Messages.FMGenerator_0, e));
throwCoreException(Messages.FMGenerator_0, e);
}
// generate files
@ -132,8 +137,7 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
}
}
} catch (IOException e) {
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(),
String.format(Messages.FMGenerator_1, fileTemplate.getSrc()), e));
throwCoreException(String.format(Messages.FMGenerator_1, fileTemplate.getSrc()), e);
}
}
@ -160,8 +164,7 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
Template template = templateConfig.getTemplate(templateFile);
template.process(model, out);
} catch (IOException | TemplateException e) {
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(),
String.format(Messages.FMGenerator_2, templateFile), e));
throwCoreException(String.format(Messages.FMGenerator_2, templateFile), e);
}
}
@ -179,8 +182,7 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
}
}
} catch (IOException e) {
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(),
String.format(Messages.FMGenerator_3, templateFile), e));
throwCoreException(String.format(Messages.FMGenerator_3, templateFile), e);
}
}
@ -234,4 +236,8 @@ public abstract class FMGenerator implements IGenerator, TemplateLoader {
// Nothing
}
private void throwCoreException(String message, Throwable e) throws CoreException {
throw new CoreException(new Status(IStatus.ERROR, pluginId, message, e));
}
}

View file

@ -1,36 +0,0 @@
/*******************************************************************************
* Copyright (c) 2016 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.tools.templates.freemarker.internal;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
public class Activator extends Plugin {
private static Activator plugin;
@Override
public void start(BundleContext bundleContext) throws Exception {
super.start(bundleContext);
plugin = this;
}
@Override
public void stop(BundleContext bundleContext) throws Exception {
super.stop(bundleContext);
plugin = null;
}
public static String getId() {
return plugin.getBundle().getSymbolicName();
}
}