use of org.eclipse.wst.common.project.facet.core.IFacetedProject.Action in project liferay-ide by liferay.
the class JSFPortletFramework method configureNewProject.
@Override
public IStatus configureNewProject(IDataModel dataModel, IFacetedProjectWorkingCopy facetedProject) {
IProjectFacetVersion jsfFacetVersion = getJSFProjectFacet(facetedProject);
IProjectFacet jsfFacet = PortletCore.JSF_FACET;
if (jsfFacetVersion == null) {
jsfFacetVersion = jsfFacet.getVersion(JSF_FACET_SUPPORTED_VERSION);
facetedProject.addProjectFacet(jsfFacetVersion);
}
Action action = facetedProject.getProjectFacetAction(jsfFacet);
IDataModel jsfFacetDataModel = (IDataModel) action.getConfig();
// TODO IDE-648 IDE-110
jsfFacetDataModel.setProperty(SERVLET_URL_PATTERNS, null);
jsfFacetDataModel.setProperty(WEBCONTENT_DIR, ISDKConstants.DEFAULT_DOCROOT_FOLDER);
LibraryInstallDelegate libraryInstallDelegate = (LibraryInstallDelegate) jsfFacetDataModel.getProperty(LIBRARY_PROVIDER_DELEGATE);
List<ILibraryProvider> providers = libraryInstallDelegate.getLibraryProviders();
ILibraryProvider noOpProvider = null;
for (ILibraryProvider provider : providers) {
if (provider.getId().equals("jsf-no-op-library-provider")) {
noOpProvider = provider;
break;
}
}
if (noOpProvider != null) {
libraryInstallDelegate.setLibraryProvider(noOpProvider);
}
return Status.OK_STATUS;
}
use of org.eclipse.wst.common.project.facet.core.IFacetedProject.Action in project liferay-ide by liferay.
the class SDKPluginFacetUtil method configureJavaFacet.
public static void configureJavaFacet(IFacetedProjectWorkingCopy fpjwc, IProjectFacet requiredFacet, IPreset preset, ProjectRecord projectRecord) {
Action action = fpjwc.getProjectFacetAction(requiredFacet);
if (action == null) {
return;
}
Object config = action.getConfig();
if (!(config instanceof JavaFacetInstallConfig)) {
return;
}
JavaFacetInstallConfig javaConfig = (JavaFacetInstallConfig) config;
IDataModel dm = (IDataModel) Platform.getAdapterManager().getAdapter(config, IDataModel.class);
String presetId = preset.getId();
if (presetId.contains("portlet")) {
javaConfig.setSourceFolder(new Path(IPluginFacetConstants.PORTLET_PLUGIN_SDK_SOURCE_FOLDER));
javaConfig.setDefaultOutputFolder(new Path(IPluginFacetConstants.PORTLET_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER));
dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, IPluginFacetConstants.PORTLET_PLUGIN_SDK_SOURCE_FOLDER);
dm.setStringProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME, IPluginFacetConstants.PORTLET_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER);
} else if (presetId.contains("hook")) {
javaConfig.setSourceFolder(new Path(IPluginFacetConstants.HOOK_PLUGIN_SDK_SOURCE_FOLDER));
javaConfig.setDefaultOutputFolder(new Path(IPluginFacetConstants.HOOK_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER));
dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, IPluginFacetConstants.HOOK_PLUGIN_SDK_SOURCE_FOLDER);
dm.setStringProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME, IPluginFacetConstants.HOOK_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER);
} else if (presetId.contains("layouttpl")) {
_removeSrcFolders(dm, javaConfig);
} else if (presetId.contains("theme")) {
IPath projectPath = projectRecord.getProjectLocation();
IPath existingSrcFolder = projectPath.append(IPluginFacetConstants.PORTLET_PLUGIN_SDK_SOURCE_FOLDER);
if (existingSrcFolder.toFile().exists()) {
javaConfig.setSourceFolder(new Path(IPluginFacetConstants.PORTLET_PLUGIN_SDK_SOURCE_FOLDER));
javaConfig.setDefaultOutputFolder(new Path(IPluginFacetConstants.PORTLET_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER));
dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, IPluginFacetConstants.PORTLET_PLUGIN_SDK_SOURCE_FOLDER);
dm.setStringProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME, IPluginFacetConstants.PORTLET_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER);
} else {
_removeSrcFolders(dm, javaConfig);
}
} else if (presetId.contains("web")) {
javaConfig.setSourceFolder(new Path(IPluginFacetConstants.WEB_PLUGIN_SDK_SOURCE_FOLDER));
javaConfig.setDefaultOutputFolder(new Path(IPluginFacetConstants.WEB_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER));
dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, IPluginFacetConstants.WEB_PLUGIN_SDK_SOURCE_FOLDER);
dm.setStringProperty(IJavaFacetInstallDataModelProperties.DEFAULT_OUTPUT_FOLDER_NAME, IPluginFacetConstants.WEB_PLUGIN_SDK_DEFAULT_OUTPUT_FOLDER);
}
}
use of org.eclipse.wst.common.project.facet.core.IFacetedProject.Action in project liferay-ide by liferay.
the class LiferayMavenProjectConfigurator method _installNewLiferayFacet.
// Copied from
// org.eclipse.m2e.wtp.AbstractProjectConfiguratorDelegate#configureDeployedName()
private MavenProblemInfo _installNewLiferayFacet(IFacetedProject facetedProject, ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException {
MavenProblemInfo retval = null;
String pluginType = MavenUtil.getLiferayMavenPluginType(request.getMavenProject());
if (pluginType == null) {
pluginType = ILiferayMavenConstants.DEFAULT_PLUGIN_TYPE;
}
Plugin liferayMavenPlugin = MavenUtil.getPlugin(request.getMavenProjectFacade(), ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_KEY, monitor);
Action action = _getNewLiferayFacetInstallAction(pluginType);
if (action != null) {
try {
facetedProject.modify(Collections.singleton(action), monitor);
} catch (Exception e) {
try {
SourceLocation location = SourceLocationHelper.findLocation(liferayMavenPlugin, SourceLocationHelper.CONFIGURATION);
String problemMsg = NLS.bind(Msgs.facetInstallError, pluginType, e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
retval = new MavenProblemInfo(location, e);
retval.setMessage(problemMsg);
} catch (Exception e1) {
}
LiferayMavenCore.logError("Unable to install liferay facet " + action.getProjectFacetVersion(), e.getCause());
}
}
return retval;
}
use of org.eclipse.wst.common.project.facet.core.IFacetedProject.Action in project jbosstools-hibernate by jbosstools.
the class JPAProjectConfigurator method configure.
@Override
public void configure(IProject project, Set<IPath> ignoredDirectories, IProgressMonitor monitor) {
try {
IFacetedProject facetedProject = ProjectFacetsManager.create(project, true, monitor);
// $NON-NLS-1$
IProjectFacet JPA_FACET = ProjectFacetsManager.getProjectFacet("jpt.jpa");
if (!facetedProject.hasProjectFacet(JPA_FACET)) {
Set<Action> actions = new LinkedHashSet<>(2, 1);
IProjectFacetVersion javaFv = JavaFacet.FACET.getVersion(JavaFacetUtil.getCompilerLevel(project));
if (!facetedProject.hasProjectFacet(JavaFacet.FACET)) {
actions.add(new IFacetedProject.Action(IFacetedProject.Action.Type.INSTALL, javaFv, null));
} else if (!facetedProject.hasProjectFacet(javaFv)) {
actions.add(new IFacetedProject.Action(IFacetedProject.Action.Type.VERSION_CHANGE, javaFv, null));
}
// $NON-NLS-1$
RecursiveFileFinder finder = new RecursiveFileFinder("persistence.xml", ignoredDirectories);
project.accept(finder);
PersistenceXmlResourceProvider provider = PersistenceXmlResourceProvider.getXmlResourceProvider(finder.getFile());
JptXmlResource jpaXmlResource = provider.getXmlResource();
IProjectFacetVersion version = null;
if (jpaXmlResource.getVersion() != null) {
version = JpaProject.FACET.getVersion(jpaXmlResource.getVersion());
}
if (version == null) {
version = JpaProject.FACET.getLatestVersion();
}
// use default
JpaPlatform platform = null;
// TODO improve platform detection
LibraryInstallDelegate libraryDelegate = new LibraryInstallDelegate(facetedProject, version);
// $NON-NLS-1$
ILibraryProvider libraryProvider = LibraryProviderFramework.getProvider("jpa-no-op-library-provider");
libraryDelegate.setLibraryProvider(libraryProvider);
IDataModel dm = DataModelFactory.createDataModel(new JpaFacetInstallDataModelProvider());
dm.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, version.getVersionString());
dm.setProperty(JpaFacetDataModelProperties.PLATFORM, platform);
dm.setProperty(JpaFacetInstallDataModelProperties.DISCOVER_ANNOTATED_CLASSES, true);
dm.setProperty(JpaFacetInstallDataModelProperties.LIBRARY_PROVIDER_DELEGATE, libraryDelegate);
actions.add(new IFacetedProject.Action(IFacetedProject.Action.Type.INSTALL, version, dm));
facetedProject.modify(actions, monitor);
}
} catch (Exception ex) {
HibernateJptUIPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, HibernateJptUIPlugin.PLUGIN_ID, ex.getMessage(), ex));
}
}
use of org.eclipse.wst.common.project.facet.core.IFacetedProject.Action in project liferay-ide by liferay.
the class LiferayFacetedProjectListener method handleEvent.
public void handleEvent(IFacetedProjectEvent event) {
if (event.getType() != IFacetedProjectEvent.Type.POST_INSTALL) {
return;
}
IProjectFacetActionEvent actionEvent = (IProjectFacetActionEvent) event;
if (!JSDT_FACET.equals(actionEvent.getProjectFacet().getId())) {
return;
}
Job uninstall = new WorkspaceJob("uninstall jsdt facet") {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
try {
IFacetedProject fProject = actionEvent.getProject();
Set<IProjectFacet> fixedFacets = fProject.getFixedProjectFacets();
Set<IProjectFacet> updatedFacets = new HashSet<>();
for (IProjectFacet f : fixedFacets) {
if (!JSDT_FACET.equals(f.getId())) {
updatedFacets.add(f);
}
}
fProject.setFixedProjectFacets(updatedFacets);
} catch (Exception e) {
ProjectCore.logError("Unable to removed fixed jsdt facet", e);
}
try {
Set<Action> actions = new HashSet<>();
Type type = Type.valueOf("uninstall");
Action uninstallJsdt = new Action(type, actionEvent.getProjectFacetVersion(), null);
actions.add(uninstallJsdt);
actionEvent.getProject().modify(actions, monitor);
// try to remove unneeded jsdt files
IProject project = actionEvent.getProject().getProject();
IFile jsdtscope = project.getFile(".settings/.jsdtscope");
if (FileUtil.exists(jsdtscope)) {
jsdtscope.delete(true, monitor);
}
IFile container = project.getFile(".settings/org.eclipse.wst.jsdt.ui.superType.container");
if (FileUtil.exists(container)) {
container.delete(true, monitor);
}
IFile name = project.getFile(".settings/org.eclipse.wst.jsdt.ui.superType.name");
if (FileUtil.exists(name)) {
name.delete(true, monitor);
}
} catch (CoreException ce) {
ProjectCore.logError("Unable to uninstall jsdt facet", ce);
}
return Status.OK_STATUS;
}
};
uninstall.schedule();
}
Aggregations