use of com.liferay.ide.sdk.core.SDK in project liferay-ide by liferay.
the class ProjectUtil method createExistingProject.
public static IProject createExistingProject(ProjectRecord record, IPath sdkLocation, IProgressMonitor monitor) throws CoreException {
String projectName = record.getProjectName();
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IProject project = workspace.getRoot().getProject(projectName);
if (record.description == null) {
// error case
record.description = workspace.newProjectDescription(projectName);
IPath locationPath = new Path(record.projectSystemFile.getAbsolutePath());
if (Platform.getLocation().isPrefixOf(locationPath)) {
record.description.setLocation(null);
} else {
record.description.setLocation(locationPath);
}
} else {
record.description.setName(projectName);
}
project.create(record.description, CoreUtil.newSubMonitor(monitor, 30));
project.open(IResource.FORCE, CoreUtil.newSubMonitor(monitor, 70));
if (project.getName().endsWith(ISDKConstants.EXT_PLUGIN_PROJECT_SUFFIX)) {
_fixExtProjectClasspathEntries(project);
}
IFacetedProject fProject = ProjectFacetsManager.create(project, true, monitor);
FacetedProjectWorkingCopy fpwc = new FacetedProjectWorkingCopy(fProject);
String pluginType = guessPluginType(fpwc);
SDKPluginFacetUtil.configureProjectAsSDKProject(fpwc, pluginType, sdkLocation.toPortableString(), record);
fpwc.commitChanges(monitor);
IJavaProject javaProject = JavaCore.create(fProject.getProject());
CoreUtil.getWorkspace().run(new IWorkspaceRunnable() {
@Override
public void run(IProgressMonitor monitor) throws CoreException {
List<IClasspathEntry> rawClasspaths = new ArrayList<>();
IPath containerPath = null;
for (IClasspathEntry entry : javaProject.getRawClasspath()) {
String segment = entry.getPath().segment(0);
if ((entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) && segment.equals(SDKClasspathContainer.ID)) {
containerPath = entry.getPath();
break;
}
if (!_isLiferayRuntimePluginClassPath(entry)) {
rawClasspaths.add(entry);
}
}
if (containerPath != null) {
ClasspathContainerInitializer initializer = JavaCore.getClasspathContainerInitializer(SDKClasspathContainer.ID);
initializer.initialize(containerPath, javaProject);
} else {
javaProject.setRawClasspath(rawClasspaths.toArray(new IClasspathEntry[rawClasspaths.size()]), new NullProgressMonitor());
javaProject.setRawClasspath(rawClasspaths.toArray(new IClasspathEntry[rawClasspaths.size()]), new NullProgressMonitor());
IAccessRule[] accessRules = {};
IClasspathAttribute[] attributes = { JavaCore.newClasspathAttribute(IClasspathDependencyConstants.CLASSPATH_COMPONENT_NON_DEPENDENCY, StringPool.EMPTY) };
IPath cpePath = new Path(SDKClasspathContainer.ID);
IClasspathEntry newEntry = JavaCore.newContainerEntry(cpePath, accessRules, attributes, false);
IClasspathEntry[] entries = javaProject.getRawClasspath();
for (IClasspathEntry entry : entries) {
if (entry.getPath().equals(cpePath)) {
return;
}
}
IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1];
System.arraycopy(entries, 0, newEntries, 0, entries.length);
newEntries[entries.length] = newEntry;
javaProject.setRawClasspath(newEntries, monitor);
}
monitor.done();
SDK sdk = SDKUtil.createSDKFromLocation(sdkLocation);
SDKUtil.openAsProject(sdk);
}
}, monitor);
return project;
}
use of com.liferay.ide.sdk.core.SDK in project liferay-ide by liferay.
the class ProjectUtil method is7xServerDeployableProject.
public static boolean is7xServerDeployableProject(IProject project) {
ILiferayProject liferayProject = LiferayCore.create(project);
if (liferayProject instanceof IBundleProject) {
if (liferayProject instanceof PluginsSDKBundleProject) {
PluginsSDKBundleProject sdkProject = (PluginsSDKBundleProject) liferayProject;
SDK sdk = sdkProject.getSDK();
if (sdk != null) {
IPath location = sdkProject.getProject().getLocation();
String projectType = getLiferayPluginType(location.toPortableString());
Version version = new Version(sdk.getVersion());
Version sdk70 = ILiferayConstants.V700;
if ((CoreUtil.compareVersions(version, sdk70) >= 0) && !ISDKConstants.EXT_PLUGIN_PROJECT_FOLDER.equals(projectType)) {
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return true;
}
} else {
return false;
}
}
use of com.liferay.ide.sdk.core.SDK in project liferay-ide by liferay.
the class ProjectUtil method createNewSDKProject.
public static IProject createNewSDKProject(ProjectRecord projectRecord, IPath sdkLocation, IProgressMonitor monitor, NewLiferayPluginProjectOp op) throws CoreException {
IDataModel newProjectDataModel = DataModelFactory.createDataModel(new PluginFacetProjectCreationDataModelProvider());
// we are importing so set flag to not create anything
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.CREATE_PROJECT_OPERATION, false);
IDataModel nestedModel = newProjectDataModel.getNestedModel(IPluginProjectDataModelProperties.NESTED_PROJECT_DM);
// using sdk location
nestedModel.setBooleanProperty(IPluginProjectDataModelProperties.USE_DEFAULT_LOCATION, true);
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.LIFERAY_USE_SDK_LOCATION, false);
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.LIFERAY_USE_WORKSPACE_LOCATION, true);
setGenerateDD(newProjectDataModel, false);
IPath webXmlPath = projectRecord.getProjectLocation().append(ISDKConstants.DEFAULT_DOCROOT_FOLDER + "/WEB-INF/web.xml");
File webXmlFile = webXmlPath.toFile();
if (projectRecord.getProjectName().endsWith(ISDKConstants.PORTLET_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_PORTLET, true);
if (FileUtil.notExists(webXmlFile)) {
createDefaultWebXml(webXmlFile, projectRecord.getProjectName());
}
} else if (projectRecord.getProjectName().endsWith(ISDKConstants.HOOK_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_HOOK, true);
if (FileUtil.notExists(webXmlFile)) {
createDefaultWebXml(webXmlFile, projectRecord.getProjectName());
}
} else if (projectRecord.getProjectName().endsWith(ISDKConstants.EXT_PLUGIN_PROJECT_SUFFIX)) {
Path path = new Path(ISDKConstants.DEFAULT_DOCROOT_FOLDER + "/WEB-INF/ext-web/docroot/WEB-INF/web.xml");
webXmlPath = webXmlPath.removeLastSegments(3).append(path);
webXmlFile = webXmlPath.toFile();
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_EXT, true);
if (FileUtil.notExists(webXmlFile)) {
createDefaultWebXml(webXmlPath.toFile(), projectRecord.getProjectName());
}
} else if (projectRecord.getProjectName().endsWith(ISDKConstants.LAYOUTTPL_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_LAYOUTTPL, true);
} else if (projectRecord.getProjectName().endsWith(ISDKConstants.THEME_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_THEME, true);
} else if (projectRecord.getProjectName().endsWith(ISDKConstants.WEB_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_WEB, true);
}
IFacetedProjectWorkingCopy fpwc = (IFacetedProjectWorkingCopy) newProjectDataModel.getProperty(IFacetProjectCreationDataModelProperties.FACETED_PROJECT_WORKING_COPY);
fpwc.setProjectName(projectRecord.getProjectName());
IPath projectLocation = projectRecord.getProjectLocation();
String projectDirName = projectLocation.lastSegment();
// for now always set a project location (so it can be used by facet install methods) may be unset later
fpwc.setProjectLocation(projectRecord.getProjectLocation());
String pluginType = null;
if (op != null) {
PluginType type = op.getPluginType().content();
pluginType = type.name();
if (PluginType.theme.name().equals(pluginType)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.THEME_PARENT, op.getThemeParent().content(true));
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.THEME_TEMPLATE_FRAMEWORK, op.getThemeFramework().content(true));
}
} else {
pluginType = guessPluginType(fpwc);
}
SDKPluginFacetUtil.configureProjectAsSDKProject(fpwc, pluginType, sdkLocation.toPortableString(), projectRecord);
if ((op != null) && PluginType.portlet.name().equals(pluginType)) {
IPortletFramework portletFramework = op.getPortletFramework().content(true);
portletFramework.configureNewProject(newProjectDataModel, fpwc);
}
// if project is located in natural workspace location then don't need to set a project location
IPath rootLocation = CoreUtil.getWorkspaceRoot().getLocation();
if (rootLocation.append(projectDirName).equals(projectLocation)) {
fpwc.setProjectLocation(null);
}
fpwc.commitChanges(monitor);
CoreUtil.getWorkspace().run(new IWorkspaceRunnable() {
@Override
public void run(IProgressMonitor monitor) throws CoreException {
SDK sdk = SDKUtil.createSDKFromLocation(sdkLocation);
SDKUtil.openAsProject(sdk);
}
}, monitor);
return fpwc.getProject();
}
use of com.liferay.ide.sdk.core.SDK in project liferay-ide by liferay.
the class CheckSDKLocationDerivedValueService method compute.
@Override
protected String compute() {
CodeUpgradeOp op = _op();
final Path path = op.getSdkLocation().content();
SDK sdk = SDKUtil.createSDKFromLocation(PathBridge.create(path));
String liferay62ServerLocation = null;
try {
if (sdk != null) {
liferay62ServerLocation = (String) (sdk.getBuildProperties(true).get(ISDKConstants.PROPERTY_APP_SERVER_PARENT_DIR));
_checkProjects(op, sdk);
} else {
_setAllStateFalse(op);
}
} catch (CoreException ce) {
}
return liferay62ServerLocation;
}
use of com.liferay.ide.sdk.core.SDK in project liferay-ide by liferay.
the class ProjectCoreBase method createNewSDK.
protected SDK createNewSDK() throws Exception {
final IPath newSDKLocation = new Path(getLiferayPluginsSdkDir().toString() + "-new");
if (!newSDKLocation.toFile().exists()) {
FileUtils.copyDirectory(getLiferayPluginsSdkDir().toFile(), newSDKLocation.toFile());
}
assertEquals(true, newSDKLocation.toFile().exists());
SDK newSDK = SDKUtil.createSDKFromLocation(newSDKLocation);
if (newSDK == null) {
FileUtils.copyDirectory(getLiferayPluginsSdkDir().toFile(), newSDKLocation.toFile());
newSDK = SDKUtil.createSDKFromLocation(newSDKLocation);
}
SDKManager.getInstance().addSDK(newSDK);
return newSDK;
}
Aggregations