List of usage examples for org.eclipse.jdt.core IJavaProject getOption
String getOption(String optionName, boolean inheritJavaCoreOptions);
From source file:com.sabre.buildergenerator.ui.wizard.TypeNameValidator.java
License:Open Source License
/** * copied from jdt//from w w w .j a va 2s. c o m * * @param context * an {@link IJavaElement} or <code>null</code> * @return a <code>String[]</code> whose <code>[0]</code> is the * {@link JavaCore#COMPILER_SOURCE} and whose <code>[1]</code> is * the {@link JavaCore#COMPILER_COMPLIANCE} level at the given * <code>context</code>. */ static String[] getSourceComplianceLevels(IJavaElement context) { if (context != null) { IJavaProject javaProject = context.getJavaProject(); if (javaProject != null) { return new String[] { javaProject.getOption(JavaCore.COMPILER_SOURCE, true), javaProject.getOption(JavaCore.COMPILER_COMPLIANCE, true) }; } } return new String[] { JavaCore.getOption(JavaCore.COMPILER_SOURCE), JavaCore.getOption(JavaCore.COMPILER_COMPLIANCE) }; }
From source file:com.siteview.mde.internal.core.builders.BuildErrorReporter.java
License:Open Source License
/** * Matches the javacSource, javacTarget, javacWarnings, javacErrors and jre.compilation.prile entries in build.properties with the * project specific Java Compiler properties and reports the errors found. * // w ww .ja v a 2s. c o m * @param javacSourceEntry * @param javacTargetEntry * @param jreCompilationProfileEntry * @param javacWarningsEntries * @param javacErrorsEntries * @param libraryNames list of library names (javacWarnings/javacErrors require an entry for each source library) */ private void validateExecutionEnvironment(IBuildEntry javacSourceEntry, IBuildEntry javacTargetEntry, IBuildEntry jreCompilationProfileEntry, ArrayList javacWarningsEntries, ArrayList javacErrorsEntries, List libraryNames) { // if there is no source to compile, don't worry about compiler settings IJavaProject project = JavaCore.create(fProject); if (project.exists()) { IClasspathEntry[] classpath = null; try { classpath = project.getRawClasspath(); } catch (JavaModelException e) { MDECore.log(e); return; } boolean source = false; for (int i = 0; i < classpath.length; i++) { IClasspathEntry cpe = classpath[i]; if (cpe.getEntryKind() == IClasspathEntry.CPE_SOURCE) { source = true; } } if (!source) { return; } String projectComplianceLevel = project.getOption(JavaCore.COMPILER_COMPLIANCE, false); if (projectComplianceLevel != null) { IMonitorModelBase model = MonitorRegistry.findModel(fProject); String[] execEnvs = null; if (model != null) { BundleDescription bundleDesc = model.getBundleDescription(); if (bundleDesc != null) { execEnvs = bundleDesc.getExecutionEnvironments(); } } if (execEnvs == null || execEnvs.length == 0) { return; } //PDE Build uses top most entry to build the plug-in String execEnv = execEnvs[0]; String projectSourceCompatibility = project.getOption(JavaCore.COMPILER_SOURCE, true); String projectClassCompatibility = project.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true); if (projectComplianceLevel .equals(findMatchingEE(projectSourceCompatibility, projectClassCompatibility, false)) && execEnv.equals( findMatchingEE(projectSourceCompatibility, projectClassCompatibility, true))) { return; //The project compliance settings matches the BREE } Map defaultComplianceOptions = new HashMap(); JavaCore.setComplianceOptions(projectComplianceLevel, defaultComplianceOptions); //project compliance does not match the BREE String projectJavaCompatibility = findMatchingEE(projectSourceCompatibility, projectClassCompatibility, true); String message = null; if (projectJavaCompatibility != null) { if (jreCompilationProfileEntry == null) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceMissingEntry, PROPERTY_JRE_COMPILATION_PROFILE, MDECoreMessages.BuildErrorReporter_CompilercomplianceLevel); prepareError(PROPERTY_JRE_COMPILATION_PROFILE, projectJavaCompatibility, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } else { if (!projectJavaCompatibility.equalsIgnoreCase(jreCompilationProfileEntry.getTokens()[0])) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceDifferentToken, PROPERTY_JRE_COMPILATION_PROFILE, MDECoreMessages.BuildErrorReporter_CompilercomplianceLevel); prepareError(PROPERTY_JRE_COMPILATION_PROFILE, projectJavaCompatibility, message, MDEMarkerFactory.B_REPLACE, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } } else { // Check source level setting if (projectSourceCompatibility.equals(defaultComplianceOptions.get(JavaCore.COMPILER_SOURCE))) { if (javacSourceEntry != null) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_BuildEntryNotRequiredMatchesDefault, PROPERTY_JAVAC_SOURCE, MDECoreMessages.BuildErrorReporter_SourceCompatibility); prepareError(PROPERTY_JAVAC_SOURCE, null, message, MDEMarkerFactory.B_REMOVAL, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } else { if (javacSourceEntry == null) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceMissingEntry, PROPERTY_JAVAC_SOURCE, MDECoreMessages.BuildErrorReporter_SourceCompatibility); prepareError(PROPERTY_JAVAC_SOURCE, projectSourceCompatibility, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } else { if (!projectSourceCompatibility.equalsIgnoreCase(javacSourceEntry.getTokens()[0])) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceDifferentToken, PROPERTY_JAVAC_SOURCE, MDECoreMessages.BuildErrorReporter_SourceCompatibility); prepareError(PROPERTY_JAVAC_SOURCE, projectSourceCompatibility, message, MDEMarkerFactory.B_REPLACE, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } } // Check target level setting if (projectClassCompatibility .equals(defaultComplianceOptions.get(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM))) { if (javacTargetEntry != null) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_BuildEntryNotRequiredMatchesDefault, PROPERTY_JAVAC_TARGET, MDECoreMessages.BuildErrorReporter_GeneratedClassFilesCompatibility); prepareError(PROPERTY_JAVAC_TARGET, null, message, MDEMarkerFactory.B_REMOVAL, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } else { if (javacTargetEntry == null) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceMissingEntry, PROPERTY_JAVAC_TARGET, MDECoreMessages.BuildErrorReporter_GeneratedClassFilesCompatibility); prepareError(PROPERTY_JAVAC_TARGET, projectClassCompatibility, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } else { if (!projectClassCompatibility.equalsIgnoreCase(javacTargetEntry.getTokens()[0])) { message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceDifferentToken, PROPERTY_JAVAC_TARGET, MDECoreMessages.BuildErrorReporter_GeneratedClassFilesCompatibility); prepareError(PROPERTY_JAVAC_TARGET, projectClassCompatibility, message, MDEMarkerFactory.B_REPLACE, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } } } boolean warnForJavacWarnings = message != null || javacSourceEntry != null || javacTargetEntry != null || jreCompilationProfileEntry != null; if (warnForJavacWarnings == false) { return; } checkJavaComplianceSettings(projectComplianceLevel, javacWarningsEntries, javacErrorsEntries, libraryNames); } } }
From source file:com.siteview.mde.internal.core.builders.BuildErrorReporter.java
License:Open Source License
/** * Matches the javacWarnings and javacErrors entries in build.properties with the * project specific Java compliance properties and reports the errors found. Since java * compiler settings are set on a per project basis, any special javacWarnings/javacErrors * must be set for each library./*from ww w . j a v a 2s. c o m*/ * * @param complianceLevel the compliance level to check settings against, used to get default values * @param javacWarningsEntries list of build entries with the java compiler warnings prefix javacWarnings. * @param javacErrorsEntries list of build entries with the java compiler errors prefix javacErrors. * @param libraryNames list of String library names */ private void checkJavaComplianceSettings(String complianceLevel, ArrayList javacWarningsEntries, ArrayList javacErrorsEntries, List libraryNames) { List complianceWarnSettings = new ArrayList(3); List complianceErrorSettings = new ArrayList(3); IJavaProject project = JavaCore.create(fProject); if (project.exists()) { Map defaultComplianceOptions = new HashMap(); JavaCore.setComplianceOptions(complianceLevel, defaultComplianceOptions); //look for assertIdentifier and enumIdentifier entries in javacWarnings. If any is present let it be, if not warn. String assertIdentifier = project.getOption(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, false); String defaultAssert = (String) defaultComplianceOptions.get(JavaCore.COMPILER_PB_ASSERT_IDENTIFIER); if (assertIdentifier != null && !assertIdentifier.equalsIgnoreCase(defaultAssert)) { if (JavaCore.ERROR.equalsIgnoreCase(assertIdentifier)) { complianceErrorSettings.add(ASSERT_IDENTIFIER); } else if (JavaCore.WARNING.equalsIgnoreCase(assertIdentifier)) { complianceWarnSettings.add(ASSERT_IDENTIFIER); } } String enumIdentifier = project.getOption(JavaCore.COMPILER_PB_ENUM_IDENTIFIER, false); String defaultEnum = (String) defaultComplianceOptions.get(JavaCore.COMPILER_PB_ENUM_IDENTIFIER); if (enumIdentifier != null && !enumIdentifier.equalsIgnoreCase(defaultEnum)) { if (JavaCore.ERROR.equalsIgnoreCase(enumIdentifier)) { complianceErrorSettings.add(ENUM_IDENTIFIER); } else if (JavaCore.WARNING.equalsIgnoreCase(enumIdentifier)) { complianceWarnSettings.add(ENUM_IDENTIFIER); } } // If a warnings entry is required, make sure there is one for each library with the correct content if (complianceWarnSettings.size() > 0) { for (Iterator iterator = libraryNames.iterator(); iterator.hasNext();) { String libName = (String) iterator.next(); IBuildEntry matchingEntry = null; for (Iterator iterator2 = javacWarningsEntries.iterator(); iterator2.hasNext();) { IBuildEntry candidate = (IBuildEntry) iterator2.next(); if (candidate.getName().equals(PROPERTY_JAVAC_WARNINGS_PREFIX + libName)) { matchingEntry = candidate; break; } } if (matchingEntry == null) { String missingTokens = ""; //$NON-NLS-1$ for (Iterator iterator2 = complianceWarnSettings.iterator(); iterator2.hasNext();) { String currentIdentifier = (String) iterator2.next(); missingTokens = join(missingTokens, '-' + currentIdentifier); } String message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceMissingEntry, PROPERTY_JAVAC_WARNINGS_PREFIX + libName); prepareError(PROPERTY_JAVAC_WARNINGS_PREFIX + libName, missingTokens, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } else { String missingTokens = ""; //$NON-NLS-1$ for (Iterator iterator2 = complianceWarnSettings.iterator(); iterator2.hasNext();) { String currentIdentifier = (String) iterator2.next(); if (!matchingEntry.contains(currentIdentifier) && !matchingEntry.contains('+' + currentIdentifier) && !matchingEntry.contains('-' + currentIdentifier)) { join(missingTokens, '-' + currentIdentifier); } } if (missingTokens.length() > 0) { String message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceDifferentToken, PROPERTY_JAVAC_WARNINGS_PREFIX + libName); prepareError(PROPERTY_JAVAC_WARNINGS_PREFIX + libName, missingTokens, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } } } // If a warnings entry is required, make sure there is one for each library with the correct content if (complianceErrorSettings.size() > 0) { for (Iterator iterator = libraryNames.iterator(); iterator.hasNext();) { String libName = (String) iterator.next(); IBuildEntry matchingEntry = null; for (Iterator iterator2 = javacErrorsEntries.iterator(); iterator2.hasNext();) { IBuildEntry candidate = (IBuildEntry) iterator2.next(); if (candidate.getName().equals(PROPERTY_JAVAC_ERRORS_PREFIX + libName)) { matchingEntry = candidate; break; } } if (matchingEntry == null) { String missingTokens = ""; //$NON-NLS-1$ for (Iterator iterator2 = complianceErrorSettings.iterator(); iterator2.hasNext();) { String currentIdentifier = (String) iterator2.next(); missingTokens = join(missingTokens, '-' + currentIdentifier); } String message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceMissingEntry, PROPERTY_JAVAC_ERRORS_PREFIX + libName); prepareError(PROPERTY_JAVAC_ERRORS_PREFIX + libName, missingTokens, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } else { String missingTokens = ""; //$NON-NLS-1$ for (Iterator iterator2 = complianceErrorSettings.iterator(); iterator2.hasNext();) { String currentIdentifier = (String) iterator2.next(); if (!matchingEntry.contains(currentIdentifier) && !matchingEntry.contains('+' + currentIdentifier) && !matchingEntry.contains('-' + currentIdentifier)) { missingTokens = join(missingTokens, '-' + currentIdentifier); } } if (missingTokens.length() > 0) { String message = NLS.bind( MDECoreMessages.BuildErrorReporter_ProjectSpecificJavaComplianceDifferentToken, PROPERTY_JAVAC_ERRORS_PREFIX + libName); prepareError(PROPERTY_JAVAC_ERRORS_PREFIX + libName, missingTokens, message, MDEMarkerFactory.B_JAVA_ADDDITION, fJavaComplianceSeverity, MDEMarkerFactory.CAT_EE); } } } } } }
From source file:com.siteview.mde.internal.core.util.PDEJavaHelper.java
License:Open Source License
/** * Precedence order from high to low: (1) Project specific option; * (2) General preference option; (3) Default option; (4) Java 1.3 * @param project/* ww w . j a va 2s.c o m*/ * @param optionName */ public static String getJavaLevel(IProject project, String optionName) { // Returns the corresponding java project // No need to check for null, will return null IJavaProject javaProject = JavaCore.create(project); String value = null; // Preferred to use the project if ((javaProject != null) && javaProject.exists()) { // Get the project specific option if one exists. Rolls up to the // general preference option if no project specific option exists. value = javaProject.getOption(optionName, true); if (value != null) { return value; } } // Get the general preference option value = new MDEPreferencesManager(JavaCore.PLUGIN_ID).getString(optionName); if (value != null) { return value; } // Get the default option value = JavaCore.getOption(optionName); if (value != null) { return value; } // Return the default return JavaCore.VERSION_1_3; }
From source file:com.siteview.mde.internal.ui.build.BaseBuildAction.java
License:Open Source License
public static void setDefaultValues(IFile generatedFile) { try {/*from w w w . j a v a2s .c om*/ List configs = AntLaunchShortcut.findExistingLaunchConfigurations(generatedFile); ILaunchConfigurationWorkingCopy launchCopy; if (configs.size() == 0) { ILaunchConfiguration config = AntLaunchShortcut.createDefaultLaunchConfiguration(generatedFile); launchCopy = config.getWorkingCopy(); } else { launchCopy = ((ILaunchConfiguration) configs.get(0)).getWorkingCopy(); } if (launchCopy == null) return; Map properties = new HashMap(); properties = launchCopy.getAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties); properties.put(IXMLConstants.PROPERTY_BASE_WS, TargetPlatform.getWS()); properties.put(IXMLConstants.PROPERTY_BASE_OS, TargetPlatform.getOS()); properties.put(IXMLConstants.PROPERTY_BASE_ARCH, TargetPlatform.getOSArch()); properties.put(IXMLConstants.PROPERTY_BASE_NL, TargetPlatform.getNL()); properties.put("eclipse.running", "true"); //$NON-NLS-1$ //$NON-NLS-2$ properties.put(IXMLConstants.PROPERTY_JAVAC_FAIL_ON_ERROR, "false"); //$NON-NLS-1$ properties.put(IXMLConstants.PROPERTY_JAVAC_DEBUG_INFO, "on"); //$NON-NLS-1$ properties.put(IXMLConstants.PROPERTY_JAVAC_VERBOSE, "false"); //$NON-NLS-1$ IProject project = generatedFile.getProject(); if (!project.hasNature(JavaCore.NATURE_ID)) { MDEPreferencesManager pref = new MDEPreferencesManager(JavaCore.PLUGIN_ID); properties.put(IXMLConstants.PROPERTY_JAVAC_SOURCE, pref.getString(JavaCore.COMPILER_SOURCE)); properties.put(IXMLConstants.PROPERTY_JAVAC_TARGET, pref.getString(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM)); } else { IJavaProject jProject = JavaCore.create(project); properties.put(IXMLConstants.PROPERTY_JAVAC_SOURCE, jProject.getOption(JavaCore.COMPILER_SOURCE, true)); properties.put(IXMLConstants.PROPERTY_JAVAC_TARGET, jProject.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true)); } properties.put(IXMLConstants.PROPERTY_BOOTCLASSPATH, BuildUtilities.getBootClasspath()); IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager(); IExecutionEnvironment[] envs = manager.getExecutionEnvironments(); for (int i = 0; i < envs.length; i++) { String id = envs[i].getId(); if (id != null) properties.put(id, BuildUtilities.getBootClasspath(id)); } launchCopy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties); launchCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, (String) null); launchCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, (String) null); launchCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, (String) null); launchCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, (String) null); launchCopy.setAttribute(IAntLaunchConfigurationConstants.ATTR_DEFAULT_VM_INSTALL, (String) null); launchCopy.doSave(); } catch (CoreException e) { } }
From source file:de.loskutov.anyedit.jdt.JdtUtils.java
License:Open Source License
private static int getJavaProjectTabWidth(int tabWidth, IProject project) { IJavaProject javaProject = null; if (project != null && hasJavaNature(project)) { javaProject = getJavaProject(project); }//from w ww. j a v a 2 s.co m String tabOption; if (javaProject == null || JavaCore.getJavaCore() == null) { tabOption = JavaCore.getOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE); } else { tabOption = javaProject.getOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, true); } if (tabOption != null) { try { tabWidth = Integer.parseInt(tabOption); } catch (NumberFormatException e) { // TODO: handle exception } } return tabWidth; }
From source file:de.loskutov.bco.ui.JdtUtils.java
License:Open Source License
/** * Modified copy from JavaModelUtil./*from www . j a v a 2s . c om*/ * @param javaElt * @return true, if corresponding java project has compiler setting to generate * bytecode for jdk 1.5 and above */ public static boolean is50OrHigher(IJavaElement javaElt) { IJavaProject project = javaElt.getJavaProject(); String option = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); boolean result = JavaCore.VERSION_1_5.equals(option); if (result) { return result; } // probably > 1.5? result = JavaCore.VERSION_1_4.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_3.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_2.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_1.equals(option); if (result) { return false; } // unknown = > 1.5 return true; }
From source file:de.tobject.findbugs.reporter.JdtUtils.java
License:Open Source License
/** * @param javaElt//from w w w .ja v a 2s . c o m * @return true, if corresponding java project has compiler setting to * generate bytecode for jdk 1.5 and above */ private static boolean is50OrHigher(IJavaElement javaElt) { IJavaProject project = javaElt.getJavaProject(); String option = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); boolean result = JavaCore.VERSION_1_5.equals(option); if (result) { return result; } // probably > 1.5? result = JavaCore.VERSION_1_4.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_3.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_2.equals(option); if (result) { return false; } result = JavaCore.VERSION_1_1.equals(option); if (result) { return false; } // unknown = > 1.5 return true; }
From source file:io.takari.m2e.lifecycle.test.LifecycleBasicTest.java
License:Open Source License
public void testTakariJar() throws Exception { IProject project = importProject("projects/takari-jar/pom.xml"); waitForJobsToComplete();/*from w w w . j av a 2s . c o m*/ project.build(IncrementalProjectBuilder.FULL_BUILD, monitor); assertNoErrors(project); // assert java project configuration IJavaProject jproject = JavaCore.create(project); assertEquals("1.5", jproject.getOption(JavaCore.COMPILER_SOURCE, false)); assertEquals("1.5", jproject.getOption(JavaCore.COMPILER_COMPLIANCE, false)); assertEquals("1.5", jproject.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, false)); // assert JRE classpath container IClasspathEntry cpe = getJREContainer(jproject); assertNotNull("JRE Container", cpe); assertEquals("J2SE-1.5", JavaRuntime.getExecutionEnvironmentId(cpe.getPath())); // XXX assert lifecycle mapping assertFile(project, "target/classes/main/MainClass.class"); assertFile(project, "target/classes/main.properties"); assertFile(project, "target/test-classes/test/TestClass.class"); assertFile(project, "target/test-classes/test.properties"); }
From source file:jmockit.assist.ASTUtil.java
License:Open Source License
public static void addAnnotation(final String annotation, final IJavaProject project, final ASTRewrite rewrite, final MethodDeclaration decl, final IMethodBinding binding) { String version = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); if (!binding.getDeclaringClass().isInterface() || !JavaModelUtil.isVersionLessThan(version, JavaCore.VERSION_1_6)) { final Annotation marker = rewrite.getAST().newMarkerAnnotation(); marker.setTypeName(rewrite.getAST().newSimpleName(annotation)); //$NON-NLS-1$ rewrite.getListRewrite(decl, MethodDeclaration.MODIFIERS2_PROPERTY).insertFirst(marker, null); }/*www . j a v a2 s.c o m*/ }