use of org.apache.maven.model.Plugin in project liferay-ide by liferay.
the class LiferayMavenProjectConfigurator method configure.
@Override
public void configure(ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
monitor.beginTask(NLS.bind(Msgs.configuringLiferayProject, request.getProject()), 100);
Plugin liferayMavenPlugin = MavenUtil.getPlugin(request.getMavenProjectFacade(), ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_KEY, monitor);
if (!_shouldConfigure(liferayMavenPlugin, request)) {
monitor.done();
return;
}
IProject project = request.getProject();
IFile pomFile = project.getFile(IMavenConstants.POM_FILE_NAME);
IFacetedProject facetedProject = ProjectFacetsManager.create(project, false, monitor);
_removeLiferayMavenMarkers(project);
monitor.worked(25);
MavenProject mavenProject = request.getMavenProject();
List<MavenProblemInfo> errors = _findLiferayMavenPluginProblems(request, monitor);
if (ListUtil.isNotEmpty(errors)) {
try {
markerManager.addErrorMarkers(pomFile, ILiferayMavenConstants.LIFERAY_MAVEN_MARKER_CONFIGURATION_WARNING_ID, errors);
} catch (CoreException ce) {
// no need to log this error its just best effort
}
}
monitor.worked(25);
MavenProblemInfo installProblem = null;
if (_shouldInstallNewLiferayFacet(facetedProject)) {
installProblem = _installNewLiferayFacet(facetedProject, request, monitor);
}
if (_shouldAddLiferayNature(mavenProject, facetedProject)) {
LiferayNature.addLiferayNature(project, monitor);
}
monitor.worked(25);
if (installProblem != null) {
this.markerManager.addMarker(pomFile, ILiferayMavenConstants.LIFERAY_MAVEN_MARKER_CONFIGURATION_WARNING_ID, installProblem.getMessage(), installProblem.getLocation().getLineNumber(), IMarker.SEVERITY_WARNING);
} else {
String pluginType = MavenUtil.getLiferayMavenPluginType(mavenProject);
// IDE-817 we need to mak sure that on deployment it will have the correct
// suffix for project name
IVirtualComponent projectComponent = ComponentCore.createComponent(project);
try {
if (projectComponent != null) {
String deployedName = projectComponent.getDeployedName();
Matcher m = _versionPattern.matcher(deployedName);
if (m.matches()) {
deployedName = m.group(1);
configureDeployedName(project, deployedName);
}
if (pluginType != null) {
String pluginTypeSuffix = "-" + pluginType;
String deployedFileName = project.getName() + pluginTypeSuffix;
if ((deployedName == null) || ((deployedName != null) && !deployedName.endsWith(pluginTypeSuffix))) {
configureDeployedName(project, deployedFileName);
}
String oldContextRoot = ComponentUtilities.getServerContextRoot(project);
if ((oldContextRoot == null) || ((oldContextRoot != null) && !oldContextRoot.endsWith(pluginTypeSuffix))) {
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(LiferayMavenCore.PLUGIN_ID);
boolean setMavenPluginSuffix = prefs.getBoolean(LiferayMavenCore.PREF_ADD_MAVEN_PLUGIN_SUFFIX, false);
if (setMavenPluginSuffix) {
ComponentUtilities.setServerContextRoot(project, deployedFileName);
}
}
}
}
} catch (Exception e) {
LiferayMavenCore.logError("Unable to configure deployed name for project " + project.getName(), e);
}
if (ILiferayMavenConstants.THEME_PLUGIN_TYPE.equals(pluginType)) {
IVirtualComponent component = ComponentCore.createComponent(project, true);
if (component != null) {
// make sure to update the main deployment folder
WarPluginConfiguration config = new WarPluginConfiguration(mavenProject, project);
String warSourceDirectory = config.getWarSourceDirectory();
IFolder contentFolder = project.getFolder(warSourceDirectory);
IPath warPath = _rootPath.append(contentFolder.getProjectRelativePath());
IPath themeFolder = _rootPath.append(getThemeTargetFolder(mavenProject, project));
// add a link to our m2e-liferay/theme-resources folder into deployment assembly
WTPProjectsUtil.insertLinkBefore(project, themeFolder, warPath, _rootPath, monitor);
}
}
}
if ((project != null) && ProjectUtil.isHookProject(project)) {
HookDescriptorHelper hookDescriptor = new HookDescriptorHelper(project);
String customJSPFolder = hookDescriptor.getCustomJSPFolder(null);
if (customJSPFolder != null) {
IWebProject webproject = LiferayCore.create(IWebProject.class, project);
if ((webproject != null) && (webproject.getDefaultDocrootFolder() != null)) {
IFolder docFolder = webproject.getDefaultDocrootFolder();
IPath newPath = Path.fromOSString(customJSPFolder);
IPath pathValue = docFolder.getFullPath().append(newPath);
boolean disableCustomJspValidation = LiferayMavenCore.getPreferenceBoolean(LiferayMavenCore.PREF_DISABLE_CUSTOM_JSP_VALIDATION);
if (disableCustomJspValidation) {
HookUtil.configureJSPSyntaxValidationExclude(project, project.getFolder(pathValue.makeRelativeTo(project.getFullPath())), true);
}
}
}
}
monitor.worked(25);
monitor.done();
}
use of org.apache.maven.model.Plugin in project liferay-ide by liferay.
the class MavenGoalUtil method getMavenInitBundleGoal.
public static String getMavenInitBundleGoal(IProject project) {
try {
String pluginKey = ILiferayMavenConstants.LIFERAY_MAVEN_PLUGINS_GROUP_ID + ":" + ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_ARTIFACT_ID;
Plugin plugin = MavenUtil.getPlugin(MavenUtil.getProjectFacade(project), pluginKey, new NullProgressMonitor());
if (plugin == null) {
pluginKey = ILiferayMavenConstants.NEW_LIFERAY_MAVEN_PLUGINS_GROUP_ID + ":" + ILiferayMavenConstants.LIFERAY_MAVEN_PLUGINS_BUNDLE_SUPPORT_KEY;
plugin = MavenUtil.getPlugin(MavenUtil.getProjectFacade(project), pluginKey, new NullProgressMonitor());
}
return getMavenInitBundleGoal(plugin);
} catch (CoreException ce) {
LiferayMavenCore.logError(ce);
}
return ILiferayMavenConstants.PLUGIN_GOAL_INIT_BUNDLE;
}
use of org.apache.maven.model.Plugin in project liferay-ide by liferay.
the class MavenProjectBuilder method initBundle.
public IStatus initBundle(IProject project, String bundleUrl, IProgressMonitor monitor) throws CoreException {
if (bundleUrl != null) {
File pomFile = FileUtil.getFile(project.getFile("pom.xml"));
MavenXpp3Reader mavenReader = new MavenXpp3Reader();
MavenXpp3Writer mavenWriter = new MavenXpp3Writer();
try (FileReader reader = new FileReader(pomFile)) {
Model model = mavenReader.read(reader);
if (model != null) {
Build build = model.getBuild();
Plugin plugin = build.getPluginsAsMap().get("com.liferay:com.liferay.portal.tools.bundle.support");
if (plugin != null) {
try (FileWriter fileWriter = new FileWriter(pomFile)) {
Xpp3Dom origin = (Xpp3Dom) plugin.getConfiguration();
Xpp3Dom newConfiguration = new Xpp3Dom("configuration");
Xpp3Dom url = new Xpp3Dom("url");
url.setValue(bundleUrl);
newConfiguration.addChild(url);
plugin.setConfiguration(Xpp3Dom.mergeXpp3Dom(newConfiguration, origin));
mavenWriter.write(fileWriter, model);
}
}
}
} catch (Exception e) {
LiferayMavenCore.logError("Could not write file in" + pomFile, e);
}
}
IMavenProjectFacade facade = MavenUtil.getProjectFacade(project, monitor);
if (_execMavenLaunch(project, MavenGoalUtil.getMavenInitBundleGoal(project), facade, monitor)) {
return Status.OK_STATUS;
}
return LiferayMavenCore.createErrorStatus("run init-bundle error");
}
use of org.apache.maven.model.Plugin in project liferay-ide by liferay.
the class BundleProjectConfigurator method _isMavenBundlePlugin.
private boolean _isMavenBundlePlugin(IProject project) {
NullProgressMonitor monitor = new NullProgressMonitor();
IMavenProjectFacade facade = MavenUtil.getProjectFacade(project, monitor);
if (facade != null) {
try {
MavenProject mavenProject = facade.getMavenProject(new NullProgressMonitor());
if ((mavenProject != null) && "bundle".equals(mavenProject.getPackaging())) {
Plugin mavenBundlePlugin = MavenUtil.getPlugin(facade, ILiferayMavenConstants.MAVEN_BUNDLE_PLUGIN_KEY, monitor);
if (mavenBundlePlugin != null) {
return true;
}
} else if ((mavenProject != null) && "jar".equals(mavenProject.getPackaging())) {
Plugin bndMavenPlugin = MavenUtil.getPlugin(facade, ILiferayMavenConstants.BND_MAVEN_PLUGIN_KEY, monitor);
if (bndMavenPlugin != null) {
return true;
}
}
} catch (CoreException ce) {
}
}
return false;
}
use of org.apache.maven.model.Plugin in project fabric8-maven-plugin by fabric8io.
the class SpringBootGenerator method isSpringBootRepackage.
private boolean isSpringBootRepackage() {
MavenProject project = getProject();
Plugin plugin = project.getPlugin(SPRING_BOOT_MAVEN_PLUGIN_GA);
if (plugin != null) {
Map<String, PluginExecution> executionsAsMap = plugin.getExecutionsAsMap();
if (executionsAsMap != null) {
for (PluginExecution execution : executionsAsMap.values()) {
List<String> goals = execution.getGoals();
if (goals.contains("repackage")) {
log.verbose("Using fat jar packaging as the spring boot plugin is using `repackage` goal execution");
return true;
}
}
}
}
return false;
}
Aggregations