Re: r5918 - in branches/eclipse_3_5/wolips/core/plugins: org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/internal/types/project org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/types/project org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model org.objectstyle.wolips.launching/java/org/objectstyle/wolips/launching/delegates org.objectstyle.wolips.variables/java/org/objectstyle/wolips/variables

From: Q (qdola..mail.com)
Date: Thu Jan 28 2010 - 04:04:42 EST


On 28/01/2010, at 2:36 AM, Mike Schrag wrote:

> what does this break? this was an august commit -- i've been running on that for a long time (and mostly NOT 5.6)

That was when we had Info.plist issues caused by some logic fail in determining the WO version way back in august last year. It was fixed shortly after. Pascal is just a bit behind in reading his emails.

>
> ms
>
> On Aug 13, 2009, at 8:02 PM, Q wrote:
>
>> Do not update to this build.. it breaks something to do with launching apps.
>>
>> If you updated already and need to reinstall the previous build, you can do so using this update site URL:
>> http://webobjects.vstrata.com.au/hudson/job/wolips-35-nightly/16/artifact/wolips/dist/
>>
>> Alternatively, wait until it's fixed before updating. That is all.
>>
>> On 14/08/2009, at 5:09 AM, mschra..bjectstyle.org wrote:
>>
>>> Author: mschrag
>>> Date: 2009-08-13 15:09:24 -0400 (Thu, 13 Aug 2009)
>>> New Revision: 5918
>>>
>>> Modified:
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/WOBuildPropertiesInitializer.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseJarFramework.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipsePathFramework.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseProjectFramework.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/IEclipseFramework.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.launching/java/org/objectstyle/wolips/launching/delegates/WOJavaLocalApplicationLaunchConfigurationDelegate.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.variables/java/org/objectstyle/wolips/variables/BuildProperties.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/internal/types/project/ProjectAdapter.java
>>> branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/types/project/IProjectAdapter.java
>>> Log:
>>> bunch of fixes for launching WO 5.6
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/internal/types/project/ProjectAdapter.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/internal/types/project/ProjectAdapter.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/internal/types/project/ProjectAdapter.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -552,7 +552,7 @@
>>> */
>>> public IPath getWorkingDir() throws CoreException {
>>> IPath path = null;
>>> - IFolder workingDirFolder = getWorkingDirFolder();
>>> + IContainer workingDirFolder = getWorkingDirFolder();
>>> if (workingDirFolder != null && workingDirFolder.exists()) {
>>> path = workingDirFolder.getLocation();
>>> }
>>>.. -563,78 +563,90 @@
>>> *..eturn null if the project is not an application othewise invokes the
>>> * same method on ProjectAdapter
>>> */
>>> - public IFolder getWorkingDirFolder() throws CoreException {
>>> - IFolder workingDirFolder;
>>> + public IContainer getWorkingDirFolder() throws CoreException {
>>> + IContainer workingDirFolder;
>>> IProject project = this.getUnderlyingProject();
>>> - if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntApplicationNature)) {
>>> - workingDirFolder = this.getUnderlyingProject().getFolder(IBuildAdapter.FILE_NAME_DIST);
>>> - } else {
>>> - workingDirFolder = this.getUnderlyingProject().getFolder(IBuildAdapter.FILE_NAME_BUILD);
>>> + BuildProperties buildProperties = (BuildProperties)project.getAdapter(BuildProperties.class);
>>> + if (buildProperties.getMajorVersion() <= 5 && buildProperties.getMinorVersion() < 6) {
>>> + workingDirFolder = project;
>>> }
>>> - if (workingDirFolder != null && workingDirFolder.exists()) {
>>> - IFolder woaFolder = null;
>>> - IResource[] members = workingDirFolder.members();
>>> - for (int i = 0; woaFolder == null && i < members.length; i++) {
>>> - IResource member = members[i];
>>> - if (member.getType() == IResource.FOLDER && member.getName().endsWith(".woa")) {
>>> - woaFolder = (IFolder) member;
>>> + else {
>>> + if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntApplicationNature)) {
>>> + workingDirFolder = this.getUnderlyingProject().getFolder(IBuildAdapter.FILE_NAME_DIST);
>>> + } else {
>>> + workingDirFolder = this.getUnderlyingProject().getFolder(IBuildAdapter.FILE_NAME_BUILD);
>>> + }
>>> + if (workingDirFolder != null && workingDirFolder.exists()) {
>>> + IFolder woaFolder = null;
>>> + IResource[] members = workingDirFolder.members();
>>> + for (int i = 0; woaFolder == null && i < members.length; i++) {
>>> + IResource member = members[i];
>>> + if (member.getType() == IResource.FOLDER && member.getName().endsWith(".woa")) {
>>> + woaFolder = (IFolder) member;
>>> + }
>>> }
>>> - }
>>> - if (woaFolder != null && woaFolder.exists()) {
>>> - workingDirFolder = woaFolder;
>>> + if (woaFolder != null && woaFolder.exists()) {
>>> + workingDirFolder = woaFolder;
>>> + } else {
>>> + workingDirFolder = null;
>>> + }
>>> } else {
>>> workingDirFolder = null;
>>> }
>>> - } else {
>>> - workingDirFolder = null;
>>> }
>>> return workingDirFolder;
>>> }
>>>
>>> public IPath getWOJavaArchive() throws CoreException {
>>> - IResource resource = null;
>>> IPath path = null;
>>> IProject project = this.getUnderlyingProject();
>>> - String projectName = project.getName();
>>> - // String projectNameLC = projectName.toLowerCase();
>>> - // I'd rather use the knowledge from the IncrementalNature, but
>>> - // that fragment is not
>>> - // visible here (so I can't use the class, I think) [hn3000]
>>> - if (this.isFramework()) {
>>> - if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntFrameworkNature)) {
>>> - resource = getJar("dist/", ".framework/");
>>> - if (!resource.exists())
>>> - resource = getJar("", ".framework/");
>>> - } else if (this.isIncrementalBuilderInstalled()) {
>>> - resource = this.getUnderlyingProject().getFolder("build/" + projectName + ".framework/Resources/Java");
>>> - }
>>> - if (resource != null && resource.exists()) {
>>> - path = resource.getLocation();
>>> - } else {
>>> - IPath externalBuildRoot = VariablesPlugin.getDefault().getProjectVariables(_underlyingProject).getExternalBuildRoot();
>>> - if (externalBuildRoot != null) {
>>> - path = externalBuildRoot.append(projectName + ".framework/Resources/Java/" + projectName + ".jar");
>>> - }
>>> - }
>>> - } else if (this.isApplication()) { // must be application
>>> - IFolder wdFolder = getWorkingDirFolder();
>>> - if (wdFolder != null && wdFolder.exists()) {
>>> - IFolder javaFolder = wdFolder.getFolder("Contents/Resources/Java");
>>> - if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntApplicationNature)) {
>>> - resource = javaFolder.findMember(wdFolder.getName().substring(0, wdFolder.getName().length() - 4).toLowerCase() + ".jar");
>>> + BuildProperties buildProperties = (BuildProperties)project.getAdapter(BuildProperties.class);
>>> + if (buildProperties.getMajorVersion() <= 5 && buildProperties.getMinorVersion() < 6) {
>>> + //path = this.getUnderlyingProject().getLocation();
>>> + }
>>> + else {
>>> + IResource resource = null;
>>> + String projectName = project.getName();
>>> + // String projectNameLC = projectName.toLowerCase();
>>> + // I'd rather use the knowledge from the IncrementalNature, but
>>> + // that fragment is not
>>> + // visible here (so I can't use the class, I think) [hn3000]
>>> + if (this.isFramework()) {
>>> + if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntFrameworkNature)) {
>>> + resource = getJar("dist/", ".framework/");
>>> if (!resource.exists())
>>> - resource = getJar("", ".woa/Contents/");
>>> + resource = getJar("", ".framework/");
>>> } else if (this.isIncrementalBuilderInstalled()) {
>>> - resource = javaFolder;
>>> + resource = this.getUnderlyingProject().getFolder("build/" + projectName + ".framework/Resources/Java");
>>> }
>>> - }
>>> - if (resource != null && (resource.exists())) {
>>> - path = resource.getLocation();
>>> - } else {
>>> - IPath externalBuildRoot = VariablesPlugin.getDefault().getProjectVariables(_underlyingProject).getExternalBuildRoot();
>>> - if (externalBuildRoot != null) {
>>> - path = externalBuildRoot.append(projectName + ".woa/Contents/Resources/Java/" + projectName + ".jar");
>>> + if (resource != null && resource.exists()) {
>>> + path = resource.getLocation();
>>> + } else {
>>> + IPath externalBuildRoot = VariablesPlugin.getDefault().getProjectVariables(_underlyingProject).getExternalBuildRoot();
>>> + if (externalBuildRoot != null) {
>>> + path = externalBuildRoot.append(projectName + ".framework/Resources/Java/" + projectName + ".jar");
>>> + }
>>> }
>>> + } else if (this.isApplication()) { // must be application
>>> + IContainer wdFolder = getWorkingDirFolder();
>>> + if (wdFolder != null && wdFolder.exists()) {
>>> + IFolder javaFolder = wdFolder.getFolder(new Path("Contents/Resources/Java"));
>>> + if (this.isAntBuilderInstalled() || (WOLipsNatureUtils.getNature(project) instanceof AntApplicationNature)) {
>>> + resource = javaFolder.findMember(wdFolder.getName().substring(0, wdFolder.getName().length() - 4).toLowerCase() + ".jar");
>>> + if (!resource.exists())
>>> + resource = getJar("", ".woa/Contents/");
>>> + } else if (this.isIncrementalBuilderInstalled()) {
>>> + resource = javaFolder;
>>> + }
>>> + }
>>> + if (resource != null && (resource.exists())) {
>>> + path = resource.getLocation();
>>> + } else {
>>> + IPath externalBuildRoot = VariablesPlugin.getDefault().getProjectVariables(_underlyingProject).getExternalBuildRoot();
>>> + if (externalBuildRoot != null) {
>>> + path = externalBuildRoot.append(projectName + ".woa/Contents/Resources/Java/" + projectName + ".jar");
>>> + }
>>> + }
>>> }
>>> }
>>> return path;
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/types/project/IProjectAdapter.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/types/project/IProjectAdapter.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips/java/org/objectstyle/wolips/core/resources/types/project/IProjectAdapter.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -55,7 +55,7 @@
>>> */
>>> package org.objectstyle.wolips.core.resources.types.project;
>>>
>>> -import org.eclipse.core.resources.IFolder;
>>> +import org.eclipse.core.resources.IContainer;
>>> import org.eclipse.core.resources.IProject;
>>> import org.eclipse.core.runtime.CoreException;
>>> import org.eclipse.core.runtime.IPath;
>>>.. -69,7 +69,7 @@
>>> import org.objectstyle.wolips.variables.BuildProperties;
>>>
>>> public interface IProjectAdapter extends IResourceType, IPBDotProjectOwner {
>>> - public IFolder getWorkingDirFolder() throws CoreException;
>>> + public IContainer getWorkingDirFolder() throws CoreException;
>>>
>>> public IProject getUnderlyingProject();
>>>
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/WOBuildPropertiesInitializer.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/WOBuildPropertiesInitializer.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/WOBuildPropertiesInitializer.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -1,7 +1,5 @@
>>> package org.objectstyle.wolips.jdt;
>>>
>>> -import java.util.Map;
>>> -
>>> import org.eclipse.core.resources.IProject;
>>> import org.objectstyle.wolips.core.resources.internal.types.project.ProjectAdapter;
>>> import org.objectstyle.wolips.core.resources.types.project.IProjectAdapter;
>>>.. -20,25 +18,21 @@
>>> try {
>>> ProjectFrameworkAdapter projectFrameworkAdaptor = (ProjectFrameworkAdapter) project.getAdapter(ProjectFrameworkAdapter.class);
>>> if (projectFrameworkAdaptor != null) {
>>> - IEclipseFramework foundationFramework = projectFrameworkAdaptor.getLinkedFrameworkNamed("JavaFoundation");
>>> - if (foundationFramework != null) {
>>> - Map<String, Object> infoPList = foundationFramework.getInfoPlist();
>>> - if (infoPList != null) {
>>> - String plistVersion = (String) infoPList.get("CFBundleShortVersionString");
>>> - if (plistVersion != null && plistVersion.length() > 0) {
>>> - buildProperties.setWOVersionDefault(plistVersion);
>>> - }
>>> - else {
>>> - System.out.println("WOBuildPropertiesInitializer.initialize: blank JavaFoundation version for " + project.getName());
>>> - }
>>> - }
>>> - else {
>>> - System.out.println("WOBuildPropertiesInitializer.initialize: no JavaFoundation Info.plist for " + project.getName());
>>> - }
>>> + IEclipseFramework foundationFramework;
>>> + // ... If you have the JavaFoundation source framework and you're actually talking to it right now, well .. we have
>>> + // to special case that one. If a JavaFoundation framework falls in the forest, does it make a sound?
>>> + if ("JavaFoundation".equals(project.getName())) {
>>> + foundationFramework = JdtPlugin.getDefault().getFrameworkModel(project).getFrameworkWithName("JavaFoundation");
>>> }
>>> else {
>>> - System.out.println("WOBuildPropertiesInitializer.initialize: no JavaFoundation link for " + project.getName());
>>> + foundationFramework = projectFrameworkAdaptor.getLinkedFrameworkNamed("JavaFoundation");
>>> }
>>> + if (foundationFramework != null) {
>>> + String version = foundationFramework.getVersion();
>>> + if (version != null && version.length() > 0) {
>>> + buildProperties.setWOVersionDefault(version);
>>> + }
>>> + }
>>> if (projectFrameworkAdaptor.isLinkedToFrameworkNamed("WOOgnl")) {
>>> buildProperties.setInlineBindingPrefixDefault("$");
>>> buildProperties.setInlineBindingSuffixDefault("");
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseJarFramework.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseJarFramework.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseJarFramework.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -11,6 +11,10 @@
>>> public EclipseJarFramework(Root<?> root, File jarFile) {
>>> super(root, jarFile);
>>> }
>>> +
>>> + public String getVersion() {
>>> + return IEclipseFramework.Utility.getInfoPListVersion(getInfoPlist());
>>> + }
>>>
>>> public List<IClasspathEntry> getClasspathEntries() {
>>> return null;
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipsePathFramework.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipsePathFramework.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipsePathFramework.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -76,7 +76,11 @@
>>> public EclipsePathFramework(Root root, File frameworkFolder) {
>>> super(root, frameworkFolder);
>>> }
>>> -
>>> +
>>> + public String getVersion() {
>>> + return IEclipseFramework.Utility.getInfoPListVersion(getInfoPlist());
>>> + }
>>> +
>>> public synchronized List<IClasspathEntry> getClasspathEntries() {
>>> List<IClasspathEntry> classpathEntries = cachedClasspathEntries;
>>>
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseProjectFramework.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseProjectFramework.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/EclipseProjectFramework.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -56,10 +56,17 @@
>>> package org.objectstyle.wolips.jdt.classpath.model;
>>>
>>> import java.io.File;
>>> +import java.io.IOException;
>>> import java.util.LinkedList;
>>> import java.util.List;
>>> import java.util.Map;
>>>
>>> +import javax.xml.parsers.DocumentBuilderFactory;
>>> +import javax.xml.parsers.ParserConfigurationException;
>>> +import javax.xml.xpath.XPathConstants;
>>> +import javax.xml.xpath.XPathExpressionException;
>>> +import javax.xml.xpath.XPathFactory;
>>> +
>>> import org.eclipse.core.resources.IProject;
>>> import org.eclipse.core.runtime.IPath;
>>> import org.eclipse.jdt.core.IClasspathEntry;
>>>.. -73,6 +80,11 @@
>>> import org.objectstyle.woenvironment.plist.WOLXMLPropertyListSerialization;
>>> import org.objectstyle.wolips.core.resources.internal.types.project.ProjectAdapter;
>>> import org.objectstyle.wolips.core.resources.types.project.IProjectAdapter;
>>> +import org.objectstyle.wolips.jdt.JdtPlugin;
>>> +import org.objectstyle.wolips.variables.BuildProperties;
>>> +import org.w3c.dom.Document;
>>> +import org.w3c.dom.NodeList;
>>> +import org.xml.sax.SAXException;
>>>
>>> public class EclipseProjectFramework extends Framework implements IEclipseFramework {
>>> private IProject project;
>>>.. -110,25 +122,67 @@
>>> }
>>> return classpathEntries;
>>> }
>>> +
>>> + public String getVersion() {
>>> + String version = null;
>>> + File pomFile = project.getLocation().append("pom.xml").toFile();
>>> + if (pomFile.exists()) {
>>> + try {
>>> + Document pomDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(pomFile);
>>> + pomDocument.normalize();
>>> + NodeList versionNodes = (NodeList) XPathFactory.newInstance().newXPath().compile("//parent/version").evaluate(pomDocument, XPathConstants.NODESET);
>>> + if (versionNodes.getLength() > 0) {
>>> + version = versionNodes.item(0).getFirstChild().getNodeValue();
>>> + }
>>> + } catch (Throwable t) {
>>> + JdtPlugin.getDefault().getPluginLogger().log(t);
>>> + }
>>> + }
>>> + else {
>>> + version = IEclipseFramework.Utility.getInfoPListVersion(getInfoPlist());
>>> + }
>>> + return version;
>>> + }
>>>
>>> ..uppressWarnings("unchecked")
>>> public Map<String, Object> getInfoPlist() {
>>> ProjectAdapter projectAdapter = (ProjectAdapter) this.project.getAdapter(IProjectAdapter.class);
>>> - try {
>>> - File infoPlist = projectAdapter.getWOJavaArchive().removeLastSegments(1).append("Info.plist").toFile();
>>> - Map<String, Object> propertyList;
>>> - if (infoPlist.exists()) {
>>> - propertyList = (Map<String, Object>) WOLXMLPropertyListSerialization.propertyListWithContentsOfFile(infoPlist, new SimpleParserDataStructureFactory());
>>> - } else {
>>> + Map<String, Object> propertyList = null;
>>> + if (projectAdapter != null) {
>>> + try {
>>> + File infoPlist;
>>> + BuildProperties buildProperties = (BuildProperties)project.getAdapter(BuildProperties.class);
>>> + if (buildProperties.getMajorVersion() <= 5 && buildProperties.getMinorVersion() < 6) {
>>> + infoPlist = this.project.getLocation().append("Info.plist").toFile();
>>> + }
>>> + else {
>>> + infoPlist = projectAdapter.getWOJavaArchive().removeLastSegments(1).append("Info.plist").toFile();
>>> + }
>>> + if (infoPlist.exists()) {
>>> + propertyList = (Map<String, Object>) WOLXMLPropertyListSerialization.propertyListWithContentsOfFile(infoPlist, new SimpleParserDataStructureFactory());
>>> + }
>>> + } catch (Throwable t) {
>>> + JdtPlugin.getDefault().getPluginLogger().log(t);
>>> propertyList = null;
>>> }
>>> - return propertyList;
>>> - } catch (Throwable t) {
>>> - throw new RuntimeException("Failed to parse an XML plist from '" + getName() + "'.", t);
>>> }
>>> + return propertyList;
>>> }
>>>
>>> public static String frameworkNameForProject(IProject project) {
>>> return project.getName();
>>> }
>>> +
>>> + public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException, XPathExpressionException {
>>> + File pomFile = new File("/Volumes/WebObjects56/JavaFoundation/pom.xml");
>>> + Document pomDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(pomFile);
>>> + pomDocument.normalize();
>>> + NodeList versionNodes = (NodeList) XPathFactory.newInstance().newXPath().compile("//parent/version").evaluate(pomDocument, XPathConstants.NODESET);
>>> + if (versionNodes.getLength() > 0) {
>>> + String version = versionNodes.item(0).getFirstChild().getNodeValue();
>>> + System.out.println("EclipseProjectFramework.main: " + version);
>>> + }
>>> + System.out.println("EclipseProjectFramework.main: " + versionNodes.getLength());
>>> +
>>> + }
>>> }
>>> \ No newline at end of file
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/IEclipseFramework.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/IEclipseFramework.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.jdt/java/org/objectstyle/wolips/jdt/classpath/model/IEclipseFramework.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -58,6 +58,7 @@
>>> import java.io.File;
>>> import java.util.LinkedList;
>>> import java.util.List;
>>> +import java.util.Map;
>>>
>>> import org.eclipse.core.resources.IProject;
>>> import org.eclipse.jdt.core.IClasspathEntry;
>>>.. -72,9 +73,22 @@
>>> import org.objectstyle.wolips.jdt.classpath.WOFrameworkClasspathContainer;
>>>
>>> public interface IEclipseFramework extends IFramework {
>>> + public String getVersion();
>>> +
>>> public List<IClasspathEntry> getClasspathEntries();
>>>
>>> public static class Utility {
>>> + public static String getInfoPListVersion(Map<String, Object> infoPList) {
>>> + String version;
>>> + if (infoPList != null) {
>>> + version = (String) infoPList.get("CFBundleShortVersionString");
>>> + }
>>> + else {
>>> + version = null;
>>> + }
>>> + return version;
>>> + }
>>> +
>>> public static void addFrameworksToProject(List<IEclipseFramework> frameworksToAdd, IJavaProject javaProject, boolean reload) throws JavaModelException {
>>> IClasspathEntry[] existingEntries;
>>> if (reload) {
>>>.. -116,7 +130,7 @@
>>> }
>>> }
>>>
>>> - public static boolean addProjectToProject(IProject referencedProject, IJavaProject javaProject, List<IClasspathEntry> existingEntries) throws JavaModelException {
>>> + public static boolean addProjectToProject(IProject referencedProject, IJavaProject javaProject, List<IClasspathEntry> existingEntries) {
>>> boolean addedProject = false;
>>>
>>> boolean referencedProjectIsFramework = false;
>>>.. -141,7 +155,7 @@
>>> return addedProject;
>>> }
>>>
>>> - public static boolean addFrameworkToProject(IEclipseFramework frameworkToAdd, IJavaProject javaProject, List<IClasspathEntry> existingEntries) throws JavaModelException {
>>> + public static boolean addFrameworkToProject(IEclipseFramework frameworkToAdd, IJavaProject javaProject, List<IClasspathEntry> existingEntries) {
>>> boolean addFramework = true;
>>> String name = frameworkToAdd.getName();
>>> for (IClasspathEntry existingEntry : existingEntries) {
>>>.. -204,7 +218,7 @@
>>> }
>>> }
>>>
>>> - public static boolean removeFrameworkFromProject(IEclipseFramework frameworkToRemove, IJavaProject javaProject, List<IClasspathEntry> existingEntries) throws JavaModelException {
>>> + public static boolean removeFrameworkFromProject(IEclipseFramework frameworkToRemove, IJavaProject javaProject, List<IClasspathEntry> existingEntries) {
>>> IClasspathEntry removeEntry = null;
>>> String name = frameworkToRemove.getName();
>>> for (IClasspathEntry existingEntry : existingEntries) {
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.launching/java/org/objectstyle/wolips/launching/delegates/WOJavaLocalApplicationLaunchConfigurationDelegate.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.launching/java/org/objectstyle/wolips/launching/delegates/WOJavaLocalApplicationLaunchConfigurationDelegate.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.launching/java/org/objectstyle/wolips/launching/delegates/WOJavaLocalApplicationLaunchConfigurationDelegate.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -60,7 +60,7 @@
>>> import java.util.HashSet;
>>> import java.util.Set;
>>>
>>> -import org.eclipse.core.resources.IFolder;
>>> +import org.eclipse.core.resources.IContainer;
>>> import org.eclipse.core.resources.IProject;
>>> import org.eclipse.core.resources.ResourcesPlugin;
>>> import org.eclipse.core.runtime.CoreException;
>>>.. -177,7 +177,7 @@
>>> // IPath wd = getWorkingDirectoryPath(configuration);
>>> IProjectAdapter projectAdaptor = (IProjectAdapter) theProject.getAdapter(IProjectAdapter.class);
>>>
>>> - IFolder workingDirectoryFolder = projectAdaptor.getWorkingDirFolder();
>>> + IContainer workingDirectoryFolder = projectAdaptor.getWorkingDirFolder();
>>> File workingDirectoryFile;
>>> if (workingDirectoryFolder == null) {
>>> workingDirectoryFile = super.verifyWorkingDirectory(configuration);
>>>
>>> Modified: branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.variables/java/org/objectstyle/wolips/variables/BuildProperties.java
>>> ===================================================================
>>> --- branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.variables/java/org/objectstyle/wolips/variables/BuildProperties.java 2009-08-13 19:09:04 UTC (rev 5917)
>>> +++ branches/eclipse_3_5/wolips/core/plugins/org.objectstyle.wolips.variables/java/org/objectstyle/wolips/variables/BuildProperties.java 2009-08-13 19:09:24 UTC (rev 5918)
>>>.. -362,22 +362,32 @@
>>> return isFramework() ? "FMWK" : "APPL";
>>> }
>>>
>>> + protected String[] getVersionComponents() {
>>> + String woVersion = getWOVersion();
>>> + String[] versionComponents = woVersion.split("[.-]");
>>> + return versionComponents;
>>> + }
>>> +
>>> public int getMajorVersion() {
>>> - String woVersion = getWOVersion();
>>> - String[] versionComponents = woVersion.split("\\.");
>>> + String[] versionComponents = getVersionComponents();
>>> return versionComponents.length >= 1 ? Integer.parseInt(versionComponents[0]) : 0;
>>> }
>>>
>>> public int getMinorVersion() {
>>> - String woVersion = getWOVersion();
>>> - String[] versionComponents = woVersion.split("\\.");
>>> + String[] versionComponents = getVersionComponents();
>>> return versionComponents.length >= 2 ? Integer.parseInt(versionComponents[1]) : 0;
>>> }
>>>
>>> - public int getPatchVersion() {
>>> - String woVersion = getWOVersion();
>>> - String[] versionComponents = woVersion.split("\\.");
>>> - return versionComponents.length >= 3 ? Integer.parseInt(versionComponents[2]) : 0;
>>> + public String getPatchVersion() {
>>> + String patchVersion;
>>> + String[] versionComponents = getVersionComponents();
>>> + if (versionComponents.length >= 3) {
>>> + patchVersion = versionComponents[2];
>>> + }
>>> + else {
>>> + patchVersion = "0";
>>> + }
>>> + return patchVersion;
>>> }
>>>
>>> private boolean _defaultsInitialized;
>>>
>>
>>
>>
>> --
>> Seeya...Q
>>
>> Quinton Dolan - qdola..mail.com
>> Gold Coast, QLD, Australia (GMT+10)
>> Ph: +61 419 729 806
>>
>>
>>
>
>

-- 
Seeya...Q

Quinton Dolan - qdola..mail.com Gold Coast, QLD, Australia (GMT+10)



This archive was generated by hypermail 2.0.0 : Thu Jan 28 2010 - 04:06:34 EST