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: Mike Schrag (mschra..dimension.com)
Date: Wed Jan 27 2010 - 11:36:59 EST

  • Next message: Chuck Hill: "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"

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

    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
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Jan 27 2010 - 11:38:13 EST