Commit Graph

2818 Commits

Author SHA1 Message Date
ray.j.greenwell 5cbde1b456 Created an addAll() that folds a supplied Iterable of Collections
into the starter collection using addAll. Certain Collections, like
guava's Multiset have optimized addAll() methods that recognize
other Multisets.
There is also a putAll() equivalent for Maps.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2891 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-21 02:11:03 +00:00
samskivert ace6b104e2 Utilities!
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2890 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-20 22:31:02 +00:00
karma@deadmoose.com 8c9adfd8f8 Ray rolled back the bit that needed this one.
And SVN is being super pokey so I'm swimming against molasses and
that wasn't showing yet. Argh.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2889 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:54:40 +00:00
ray.j.greenwell 590be465d7 Why are we silently ignoring the last argument if someone passes in an odd number?
Instead, let's log:
  message [name1=value1, name2=<toString failure: ArrayIndexOutOfBoundsException>]


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2888 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:53:00 +00:00
karma@deadmoose.com ef34b921b2 Need to import those to use them.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2887 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:47:54 +00:00
ray.j.greenwell 42e4c4138d Reverted r2884.
If someone wants to use StringUtil.toString(), let them get
the openBox/closeBox/separators they were expected.

Gee, I hope r2885 didn't beak any Log parsing code...


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2886 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:45:56 +00:00
ray.j.greenwell 0dc4418fd2 Do not use StringUtil.toString() to log any arguments.
As detailed in my last checkin.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2885 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:44:22 +00:00
ray.j.greenwell 7dba599509 Just call toString() on a Collection rather than iterating over it ourselves.
This is an incomplete fix and brings up a larger issue that I'll explain
below. Also, this breaks the customization of openBox/closeBox/separator
Strings.

First off, I know of no Collection that doesn't have a decent toString()
implementation. The java.util.Abstract* classes all do something
reasonable and most Collections are built from those.

Guava's Multiset has a defined way of representing itself as a String.
An example would be "[value1, value2 x 100]". This fix is mainly
addressed at fixing that, as this class would do the very dumb thing
if provided with a Multiset.

Do we really customize the openBox/closeBox/separator values? Should we?


The second issue comes from the way Log uses StringUtil to evaluate
the var-args it is passed. Check out the following code.

Iterator<Thing> it = Iterables.concat(_staticThings, newThings).iterator();
log.debug("About to iterate", "user", user, "request", req, "iterator", it);
while (it.hasNext()) {
    ...


If the logging level is above debug, this works fine. However if one day
you lower your logging level, the message will be logged and the Iterator
will be passed to String.toString(), which will suck all the elements out of it.

That's a problem.

Actually, perhaps the right thing to do is simply to change the Log class
to avoid using this, and instead just call String.valueOf() on all objects
except arrays, which can instead be String'd with the methods added to
java.util.Arrays in 1.5.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2884 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-17 20:23:41 +00:00
ray.j.greenwell 8e33cc2cd7 Shareable references to common 0-length arrays.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2883 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-14 00:40:05 +00:00
ray.j.greenwell 62c86b38f7 Append the final "]" using the StringBuilder.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2882 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-13 19:50:22 +00:00
samskivert 5f5a261e0d Go ahead and build and ship the Velocity and Digester stuff. Most of the
Velocity stuff actually works with a non-hacked Velocity implementation, and
specifically VelocityUtil and ClasspathResourceLoader are used all over the
place for great justice, so we want to support that.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2881 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-11 04:28:04 +00:00
samskivert 58f0b9a067 A test of some basic HsqldbLiaison behavior, which I added to test other
things, which ended up being infeasible. But I'll leave this test machinery
here as it may be useful in the future if we want to add more
com.samskivert.jdcb unit tests.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2880 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 23:48:48 +00:00
samskivert 87731adf48 [maven-release-plugin] prepare for next development iteration
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2879 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 16:15:13 +00:00
samskivert 71f1a59668 [maven-release-plugin] prepare release samskivert-1.0
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2877 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 16:15:04 +00:00
samskivert 6c97376395 This only works when we fork the compiler. Also managed to bork my dash.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2876 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 16:09:49 +00:00
samskivert 6d2269e465 OMFG. The inmates are running the asylum.
Instead of fixing this utterly ridiculous problem, some guy submitted a patch
to detect when someone was using spaces in the text of <compilerArgument> and
spit out a warning, directing them to a new FAQ entry explaining the
limitation, and telling them this retarded workaround:
http://jira.codehaus.org/browse/MCOMPILER-130

He then included a bunch of code to allow this warning to be turned off.
WTFFFFFFFFFFFFFFFFFFFFF!?


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2875 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 16:02:38 +00:00
samskivert 9b55d58add We apparently need the current version to be a -SNAPSHOT version to perform a
release.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2874 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-10 15:12:54 +00:00
samskivert 8c54d3689c Link to the project page from the Javadocs.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2872 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 20:24:42 +00:00
samskivert c201ac6d9f Add plugin declarations for these plugins so that we get the latest versions.
Sigh.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2870 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 20:17:26 +00:00
samskivert d1c37e5b36 Omit Javadocs for protected members. They clutter up the documentation of the
public interfaces and if you are making use of protected members, you should be
looking at the source.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2869 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 20:10:42 +00:00
samskivert d159774dff Minor edit.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2865 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 18:22:21 +00:00
samskivert eb85d7d40b Bye bye Ivy. Even though I like you better, building with Maven makes
publishing to the public Maven repositories much simpler. Being published to
the public Maven repositories makes life easier for everyone who wants to
depend on samskivert.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2864 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 18:21:54 +00:00
samskivert db601ce31f Include our GWT source bits directly in the main jar.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2863 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 17:44:44 +00:00
samskivert eb4b4b90dd Not specifying a plugin version number is interpreted by Maven as "use whatever
fucking arbitrary version you like". Fortunately, it is possible to instruct
Maven to do what would be the sensible default: use the latest release version
of the plugin.

Now that I have done so, the magical insertion of a -link argument for the Java
API is working. Much to my chagrin, the associated <detectLinks> option of the
javadoc plugin is a cruel joke.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2862 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-09 04:44:52 +00:00
samskivert 155c8bada1 This is in the resources directory now, sadly.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2861 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 22:57:12 +00:00
samskivert 5cae01afd6 Second entry into "Why Maven sucks" journal:
Sun "enhanced" the jar file specification to allow dependencies to be expressed
inside jar files, which cause the JVM to try to magically add dependent jar
files to the classpath. This is half-assed and wrong in too many ways to
enumerate here.

They then helpfully added activation.jar to mail.jar under the multiple
misguided assumptions that no one would ever possibly need to use mail.jar
without also having activation.jar in their classpath, with that exact name,
and located precisely in the same directory. I can't possibly imagine devating
from those implicit requirements.

Maven then upped the ante on this little fiasco by deciding that any time the
Java compiler generates a warning that they can't parse, they should fail the
build. Clearly it's critical that your build system be conversant in every
possible warning that might be emitted by your compiler. As a result, when I
fix their boneheaded default of suppressing warnings by default, the build now
fails with this demonstration of awesomeness:

  could not parse error message: warning: [path] bad path element
  "/home/mdb/.m2/repository/javax/mail/mail/1.4.1/activation.jar": no such file
  or directory

Thank you Sun, and thank you Maven.

Fortunately, I can tell javac to not emit warnings for these bogus jar
dependencies, which I have done.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2860 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 22:56:00 +00:00
samskivert 9699eceea7 First entry into "Why Maven sucks" journal:
1. Warnings and deprecations are not shown by default.

2. Documentation shows use of <compilerArgument> with mulitple arguments in a
single element:

  <compilerArgument>-foo -bar</compilerArgument>

which is a bald-faced lie. Only a single argument is allowed inside a
<compilerArgument> element. Web search turns up "helpful" advice to use
multiple elements:

  <compilerArgument>-foo</compilerArgument>
  <compilerArgument>-bar</compilerArgument>

Fair enough, and also a bald-faced lie. After spending a bunch of time
debugging why my compiler arguments were not working, I discovered that Maven
was just (silently) using the last one and ignoring/overwriting all of the
previous arguments.

I had noticed while poring over the documentation that it was also possible to
use the so-called "Map version" (whatever that means), which uses this
completely fucking stupid syntax:

  <compilerArguments>
    <foo/>
    <bar/>
  </compilerArguments>

Why is that syntax completely fucking stupid, you might ask? Well, dear reader,
because the arguments that I'm actually passing end up looking like this:

  <compilerArguments>
    <Xlint/>
    <Xlint:-serial/>
  </compilerArguments>

which is a case study in how not to represent information in XML. I didn't even
try that originally because I was sure that it would not work, given the wacky
non-[a-zA-z]+ nature of the argument I needed to supply. The fact that it does
work gives me the fear.

You might wonder if the following form would provide satisfaction:

  <compilerArguments>
    <compilerArgument>-Xlint</compilerArgument>
    <compilerArgument>-Xlint:-serial</compilerArgument>
  </compilerArguments>

Other than being absurdly verbose, it seems right in line with The Maven Way
(tm). However, that results in -compilerArgument=-Xlint and
-compilerArgument=-Xlint:-serial being passed to the compiler. Hilarity
naturally ensues.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2859 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 21:28:27 +00:00
samskivert 312d38c6b7 GPG plugin configuration, as Sonatype requires published artifacts to be GPG
signed.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2858 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:50:26 +00:00
samskivert 90758faa6e Er, libs-incl.xml rather.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2857 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:08:53 +00:00
samskivert 802b4b36ca Restore libs.dir, that is used in deps-incl.xml.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2856 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:08:36 +00:00
samskivert 08bb3da8a7 We don't need ehcache here.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2855 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:08:01 +00:00
samskivert 3269bc4db9 Oops, didn't mean to commit that old cruft.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2854 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:06:27 +00:00
samskivert e68daada41 Properly configure javadoc in our POM build. The POM is now approaching the
line count of the build.xml file, but I suppose that's just because XML is
absurdly verbose (and Maven annoyingly chose to do things like
<quiet>true</quiet> instead of a quiet="true" attribute). I wonder if there's a
Maven plugin that allows you to specify your pom.xml in YAML or some less
verbose format and which automatically converts it to XML. That'd probably cut
the line count by 2/3.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2853 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 19:04:33 +00:00
samskivert 579d706075 Nix some obsolete tests directories.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2852 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 18:52:36 +00:00
samskivert ea80aad970 Nix old scripts. Everything's handled via Ant or Ivy or Maven these days.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2851 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 18:44:41 +00:00
samskivert ac9fb3c63d Nix vestigial directory.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2850 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 18:44:06 +00:00
samskivert baef3bccb1 Put our non-source resources into src/main/resources to comply with the
standard Maven layout.

I'm not a huge fan of that separation, particularly now that it's de rigueur to
ship your sources with your class files. In such circumstances, one could
imagine just copying the entire contents of src/main/java into target/classes
and being done with it. Class files, XML files, propert files, etc. are all
packaged up together into one happy jar file of goodness. Then you don't have
extra files off in src/main/resources being demure and hard to notice.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2849 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 18:41:41 +00:00
samskivert 91e8240a48 Fiddling with persistent properties in tests is dangerous. Let's be sure that
our tests pass even when we haven't run them before. We were relying on
sub.sub3 having been set and persisted from a previous test invocation.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2848 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 18:35:08 +00:00
samskivert ff243af527 Hosting our own Ivy repository is a burden on library users. We really want to
publish our bits to the Maven central repository, which means we need to gird
our loins and wade into the ninth circle of hell: a Mavenized build.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2847 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 16:22:48 +00:00
charlie.groves 39f3b63dbe I broke this in 2845; probably want to check the values in the bucket, not just the bucket. Thanks, Mr. Hoover
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2846 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-02 20:50:37 +00:00
charlie.groves 087dbd0e9b Remove unecessary import and implementation
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2845 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-31 01:13:11 +00:00
karma@deadmoose.com 60224534e9 SVN need not concern itself with our compiled goodies.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2844 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-30 18:52:23 +00:00
samskivert 22a849a5d4 Unit tests not needing the assertion imports seems like a bad sign. Let's
actually turn these "tests" into tests.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2843 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-30 18:33:09 +00:00
karma@deadmoose.com 86f49a05a5 Speeling
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2842 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-30 17:34:26 +00:00
karma@deadmoose.com eb4f4dc2c5 Prune unused imports.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2841 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-30 17:24:16 +00:00
karma@deadmoose.com 695fe90bf5 Tell eclipse about the new way things are organized.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2840 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-30 17:23:48 +00:00
samskivert 3e77445126 We want our ivy.xml in ivys/ivy.xml as well.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2839 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-28 01:28:36 +00:00
samskivert bc034443ba app.name -> lib.name, made use of lib.name in a few places where we were
repeating ourselves.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2838 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-28 01:16:37 +00:00
samskivert 5d2ed20918 Modified build to create and publish source and javadoc jar files.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2837 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-28 01:10:42 +00:00
samskivert c8c748614b I think I understand Ivy well enough now to define sane dependencies. Of course
these differ from the "standard definitions", but I'm going to stick with my
usual approach of assuming that everyone else is crazy.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2834 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-08-27 23:36:44 +00:00