|
From: <duc...@us...> - 2008-01-31 23:07:07
|
Revision: 704
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=704&view=rev
Author: ducheneaut
Date: 2008-01-31 15:07:09 -0800 (Thu, 31 Jan 2008)
Log Message:
-----------
Deal more gracefully with the (rare) occasions when files checked out by SVN on MacOS X have exactly the same timestamp, causing og:populate to throw an exception. Instead, PopulateMojo now increases a file's timestamp by a few milliseconds if it's equal to another one.
Modified Paths:
--------------
maven/trunk/dev-plugins/.classpath
maven/trunk/dev-plugins/src/main/java/com/ogoglio/plugin/PopulateMojo.java
maven/trunk/ogoglio/.classpath
maven/trunk/ogoglio-bodies/.classpath
maven/trunk/ogoglio-server/.classpath
Modified: maven/trunk/dev-plugins/.classpath
===================================================================
--- maven/trunk/dev-plugins/.classpath 2008-01-31 19:01:00 UTC (rev 703)
+++ maven/trunk/dev-plugins/.classpath 2008-01-31 23:07:09 UTC (rev 704)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
+ <classpathentry excluding="**" kind="src" output="src/main/resources" path="src/main/resources"/>
+ <classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: maven/trunk/dev-plugins/src/main/java/com/ogoglio/plugin/PopulateMojo.java
===================================================================
--- maven/trunk/dev-plugins/src/main/java/com/ogoglio/plugin/PopulateMojo.java 2008-01-31 19:01:00 UTC (rev 703)
+++ maven/trunk/dev-plugins/src/main/java/com/ogoglio/plugin/PopulateMojo.java 2008-01-31 23:07:09 UTC (rev 704)
@@ -42,7 +42,7 @@
private Map<Long, SpaceDocument> localSpaces = new HashMap<Long, SpaceDocument>();
- private Map<String, SpaceDocument> serveSpacerNameToSpaceDoc = new HashMap<String, SpaceDocument>();
+ private Map<String, SpaceDocument> serverSpaceNameToSpaceDoc = new HashMap<String, SpaceDocument>();
private Map<String, TemplateDocument> existingServerTemplates = null;
@@ -67,14 +67,14 @@
if (candidate.getName().startsWith(TEMPLATE_PREFIX)) {
uploadTemplate(client, candidate, existingServerTemplates);
} else if (candidate.getName().startsWith(SPACE_PREFIX)) {
- readSpace(client, candidate);
+ readSpace(client, candidate, i);
} else {
if (!candidate.getName().equals(".svn")) {
getLog().warn("Unable to process in populate:" + candidate.getAbsolutePath());
}
}
}
- serveSpacerNameToSpaceDoc = getAllServerSpaces(client);
+ serverSpaceNameToSpaceDoc = getAllServerSpaces(client);
patchSpaces(client);
}
@@ -110,8 +110,8 @@
try {
long localModTime = iter.next();
fakeSpaceDoc = localSpaces.get(localModTime);
- if (serveSpacerNameToSpaceDoc.containsKey(fakeSpaceDoc.getDisplayName())) {
- realSpaceDoc = serveSpacerNameToSpaceDoc.get(fakeSpaceDoc.getDisplayName());
+ if (serverSpaceNameToSpaceDoc.containsKey(fakeSpaceDoc.getDisplayName())) {
+ realSpaceDoc = serverSpaceNameToSpaceDoc.get(fakeSpaceDoc.getDisplayName());
Date fileModified = new Date(localModTime);
Date serverModified = TemplateSupportFileDocument.fmt.parse(realSpaceDoc.getLastModifiedAsUTC());
@@ -167,7 +167,7 @@
}
}
- private void readSpace(WebAPIClient client, File candidate) throws MojoExecutionException {
+ private void readSpace(WebAPIClient client, File candidate, int fileNumber) throws MojoExecutionException {
String name = candidate.getName();
String num = name.substring(SPACE_PREFIX.length());
int spaceFakeId = -189;
@@ -183,10 +183,13 @@
FileInputStream inputStream = new FileInputStream(candidate);
String docContent = StreamUtils.readInput(inputStream);
SpaceDocument doc = new SpaceDocument(XMLElement.parseElementFromString(docContent));
- if(localSpaces.get(candidate.lastModified()) != null){
- throw new MojoExecutionException("Sadly, space-* docs must have unique timestamps.");
+ long timeStamp = candidate.lastModified();
+ if(localSpaces.get(timeStamp) != null){
+ // Rare occurrence: sometimes files checked out by SVN on MacOS X end up having exactly the same timestamp
+ // Simply increment it by a few milliseconds and use the new value for the index
+ timeStamp = candidate.lastModified() + fileNumber;
}
- localSpaces.put(candidate.lastModified(), doc);
+ localSpaces.put(timeStamp, doc);
inputStream.close();
} catch (IOException e) {
throw new MojoExecutionException("IO Error reading space", e);
Modified: maven/trunk/ogoglio/.classpath
===================================================================
--- maven/trunk/ogoglio/.classpath 2008-01-31 19:01:00 UTC (rev 703)
+++ maven/trunk/ogoglio/.classpath 2008-01-31 23:07:09 UTC (rev 704)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
+ <classpathentry excluding="**" kind="src" output="src/main/resources" path="src/main/resources"/>
+ <classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: maven/trunk/ogoglio-bodies/.classpath
===================================================================
--- maven/trunk/ogoglio-bodies/.classpath 2008-01-31 19:01:00 UTC (rev 703)
+++ maven/trunk/ogoglio-bodies/.classpath 2008-01-31 23:07:09 UTC (rev 704)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="ogoglio-body-tools/src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: maven/trunk/ogoglio-server/.classpath
===================================================================
--- maven/trunk/ogoglio-server/.classpath 2008-01-31 19:01:00 UTC (rev 703)
+++ maven/trunk/ogoglio-server/.classpath 2008-01-31 23:07:09 UTC (rev 704)
@@ -6,10 +6,6 @@
<classpathentry excluding="**" kind="src" output="src/main/resources/hibernate" path="src/main/resources/hibernate"/>
<classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
- <attributes>
- <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="/usr/local/jdk1.5.0_12/jre/lib/i386"/>
- </attributes>
- </classpathentry>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|