Commit Graph

24 Commits

Author SHA1 Message Date
Ian Wienand 234ed85a92 Retire repo
Change-Id: I7d68f82c75cbc4dc7e843198593846e19cf88f14
2022-04-05 13:20:00 +10:00
Shawn O. Pearce 4e67700dab Change version to 2.2-SNAPSHOT
Change-Id: I1d3e6c42bc678536162a81d2b13372659a1c3dec
Signed-off-by: Shawn O. Pearce <sop@google.com>
2011-05-31 10:30:57 -07:00
Shawn O. Pearce f855f399f8 Fix all of our pom.xml versions to be 2.1-SNAPSHOT
I meant to keep reusing the 2.1 version number for the entire
2.1 series during development, but botched it during the 2.1.4
development cycle and set it to 2.1.4-SNAPSHOT by mistake.  Put
it back to 2.1-SNAPSHOT since 2.1.4 is released.

Change-Id: I37e206c0609bf3fd94a5aab8ea301c98b7fb013e
Signed-off-by: Shawn O. Pearce <sop@google.com>
2010-08-12 16:24:43 -07:00
Shawn O. Pearce faee655254 Start 2.1.4 development
Change-Id: I71719c85b0d50707333517b8ef956853b04efa14
Signed-off-by: Shawn O. Pearce <sop@google.com>
2010-06-21 17:41:54 -07:00
Shawn O. Pearce f51d48c111 gerrit 2.1.3
Change-Id: I93386d5b71e8361219c03d95ab7476dc46e7d6b0
Signed-off-by: Shawn O. Pearce <sop@google.com>
2010-06-21 14:40:34 -07:00
Nico Sallembien 63ecb0f7e6 Fixing Eclipse settings file
Maven auto-fixes it all the time, otherwise.

Change-Id: I17e6acae09747a9282c9e26545f3f8dcf139dc07
2010-01-20 15:17:02 -08:00
Shawn O. Pearce b150f25480 Be specific about the Maven plugin groupId
Change-Id: I2d170ad046164d62eaf5d50f0cfaacd252a81c1d
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-30 17:19:49 -08:00
Shawn O. Pearce 99cdf558f9 Cleanup Maven build by using common plugin management
Most of our build will want to assume the same version of each
plugin across all components, just like do with our dependencies.

Also, start populating some data into the manifest of each created
JAR file, to better document where the JAR came from.

Change-Id: I38c62949dfb0e14603a31e9045e4ab5f7ca1424b
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-30 17:19:48 -08:00
Shawn O. Pearce d1a3f68b80 Cleanup Maven build by pushing component dependencies down
Rather than listing all of our build projects in the parent pom,
list them where they are actually required to compile.

Change-Id: I27954f3e4affdaa258ee024c0899f0cacd3f2ae4
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-30 17:19:47 -08:00
Shawn O. Pearce 0e060b257d Start next release development
Change-Id: I5a69e2b7a3e64664f0ca32649d153cb8cde27b27
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-21 13:27:30 -08:00
Shawn O. Pearce a02df64b0f gerrit 2.1
Change-Id: Ic864f71b0899af24334c76b8558c2757a2f79750
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-21 11:19:02 -08:00
Shawn O. Pearce 6ee0554f27 Teach Main to check the Java runtime version
To run Gerrit Code Review we require Java 6, because our class
files are compiled against the Java 6 SDK, use methods from it,
and are in the Java 6 bytecode file format.  We cannot run on a
JRE that predates the Java 6 specification.

Rather than giving users who are trying to run us on an outdated
virutal machine an obtuse stack trace like the following:

  Exception in thread "main" java.lang.UnsupportedClassVersionError:
      Bad version number in .class file
	at java.lang.ClassLoader.defineClass1(Native Method)
        ...

we should give them a specific message describing the problem,
and our minimum version requirement.

To get a custom error message we compile our Main springboard class
in Java 1.2 format, against only APIs that are available since Java
1.2, and we check the specification of our runtime to verify it can
support us.  This allows us to execute on a really old JRE and at
least report a descriptive error message.

In order to use Java 6 APIs in GerritLauncher we had to move it
to its own Maven component, where the runtime environment is still
described as Java 6.

Change-Id: I47bfcfb5076427d491c896a2815dd091ca205bfc
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-18 15:33:40 -08:00
Shawn O. Pearce 3b279fa8d8 Call the next version 2.1
We've changed so much since the 2.0.24 release that I'm really not
comfortable calling it 2.0.25.

Change-Id: I9cf28b0a97e0f74838bf893b79ce3105e0a7bfdb
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-12 20:17:29 -08:00
Shawn O. Pearce 46ade82099 Get the canonical path to our temporary directory
When we access ~/.gerritcodereview/tmp we might find out that tmp has
actually be symlinked to a different part of the local filesystem,
such as /tmp.  Resolve the link as early as possible during startup so
that if ~/ is on NFS we remove our dependency on the NFS server as
early as possible and won't be impacted later on should it go down.

Change-Id: Ib631add17338c08c55dd84762dc4fd105308d7c2
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-11 17:43:38 -08:00
Shawn O. Pearce ec4495eb5a daemon: Unpack the WAR contents to a local directory
Jetty can serve a file directly from local disk using low-level APIs
like sendfile(), but only if the file it is reading from is actually
stored on the local filesystem.  Loading it dynamically from a JAR
where its been compressed completely defeats this feature of the
DefaultServlet we are trying to take advantage of.

To enable Jetty's more optimized IO path, we now unpack our WAR
contents to our temporary directory, under the gerrit_war folder.

Change-Id: I7be7c90029720f1664bc35ae2f7ff77e247161df
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-07 15:16:54 -08:00
Shawn O. Pearce a68b89452f Clean up stale empty temporary directories from prior executions
Some NFS based filesystems seem to have a problem deleting the
temporary directory we create to hold our JARs.  Something on the
NFS server is pegging the directory open until the JVM exits,
which means we may wind up leaving an infinite number of empty
directories in ~/.gerritcodereview/tmp.

This appears to be isolated to certain NFS servers, because my local
/tmp doesn't suffer from the same problem, the temporary directory
is deleted on JVM exit.

We use a simple rule here, any empty directory with a modification
date older than 7 days is assumed to be garbage and removed.
Any directory that is non-empty can be assumed to be a running
daemon, even if it has a modification date of older than 7 days,
and is thus left alone.

Change-Id: I3d4e697863f347e66e5b142e4a7ad8e99a08956d
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-07 14:10:11 -08:00
Shawn O. Pearce 79860d1ddb Default temporary directory to $HOME/.gerritcodereview/tmp
Some operating system distributions include a cron script which
cleans /tmp by unlinking any files not modified in the past 7 days.
This can kill a running Gerrit server by deleting its JAR files,
preventing it from lazily-loading any code after the unlink occurs.

Work around this by unpacking our JARs into a directory below the
user's home directory.  This matches the behavior of Hudson CI,
which also suffered from having their JARs disappear at runtime
due to these automatic /tmp cleaning scripts.

Change-Id: Ia83c65d61310658fc9afd1c663b4b3877c457a3c
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-07 13:58:36 -08:00
Shawn O. Pearce dc5d1ee12d cat, ls: move inside our main program package
I've never liked having these be special cases.  Lets move them to
the pgm package where they aren't special anymore.

Change-Id: Ib76fd6c7fe806b92ee5658ece4c788e67bcacdbc
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-07 12:51:17 -08:00
Shawn O. Pearce f0b848506f launcher: Refactor how we return the status code to the shell
Instead of doing a direct System.exit() use return to return the
exit code to the caller, which is the true main method for the
application.  This simplifies the calling strategy considerably.

Change-Id: I3b056579726a56bd9a1ab7186265dc5c5ebeeacc
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-12-07 12:27:23 -08:00
Shawn O. Pearce 7c5941ba4c Implement query tool on command line and over SSH
This little query tool is primarily intended for use when running an
embedded H2 database where there really is no other way to access the
in-memory files and state.

It is however handy for quick queries against any other database.

Bug: issue 327
Change-Id: I77a96c0833026d432103a16b48ec36f315c352ec
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-11-17 20:47:04 -08:00
Shawn O. Pearce 2fe738b4ad init: Create a command to setup a new Gerrit installation
The init command uses an interactive prompting process to help the
user get a basic website configured.

The --import-projects option will automatically search for and import
any Git repositories which are discovered within gerrit.basePath.

Bug: issue 323
Bug: issue 330
Change-Id: I3d6e8f9f5fea8bfc78f6dfb1fc8f284bebfba670
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-11-17 14:52:07 -08:00
Shawn O. Pearce f7063bc2ae launcher: Don't print stack trace with reflection frames
We don't really care that the reflection based invocation of a method
failed with an InvocationTargetException, what's really relevant for
us to display is the cause of this exception.

Change-Id: Ifd6332a44c2b19b073c14b73b631210030321889
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-11-13 10:33:09 -08:00
Shawn O. Pearce 8ef01904d1 Launcher: Clarify the purpose of the daemon command
Since we embedded Jetty into our WAR and automatically launch the
web server when our daemon command is invoked its no longer true that
we run only the SSH daemon.  Correct this misleading description.

Change-Id: I440b1b484a43d7e9c6ba57c313fde55762dfc49e
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-11-12 18:39:53 -08:00
Shawn O. Pearce 44671f5c69 Rewrite our build as modular maven components
This refactoring splits the code up into different components, with
their own per-component CLASSPATH.  By moving all of our classes
into isolated components we can better isolate the classpaths and
try to avoid unexpected dependency problems.  It also allows us to
more clearly define which components are used by the GWT UI and
thus must be compiled under GWT, and which components are run on
the server and can therefore use more of the J2SE API.

Change-Id: I833cc22bacc5655d1c9099ed7c2b0e0a5b08855a
Signed-off-by: Shawn O. Pearce <sop@google.com>
2009-11-11 16:54:06 -08:00