• Stars
    star
    501
  • Rank 87,967 (Top 2 %)
  • Language
    Java
  • License
    Other
  • Created about 11 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Download, Install, Update

What is it?

Getdown (yes, it's the funky stuff) is a system for deploying Java applications to end-user computers, as well as keeping those applications up to date.

It was designed as a replacement for Java Web Start due to limitations in Java Web Start's architecture which are outlined in the rationale section.

Note: Getdown was designed in 2004 as an alternative to Java Web Start, because of design choices made by JWS that were problematic to the use cases its authors had. It is not a drop-in replacement for JWS, aimed to help the developers left in the lurch by the deprecation of JWS in Java 9. It may still be a viable alternative for developers looking to replace JWS, but don't expect to find feature parity with JWS.

How do I use it?

A tutorial and more detailed specification are available from the Documentation page. Questions can be posted to the OOO Libs Google group.

Note that because one can not rely on users having a JRE installed, you must create a custom installer for each platform that you plan to support (Windows, macOS, Linux) that installs a JRE, the Getdown launcher jar file, a stub configuration file that identifies the URL at which your real app manifest is hosted, and whatever the appropiate "desktop integration" is that provides an icon the user can click on. We have some details on the installers documentation page, though it is unfortunately not very detailed.

How does it work?

The main design and operation of Getdown is detailed on the design page. You can also browse the javadoc documentation and source code if you're interested in implementation details.

Where can I see it in action?

Getdown was originally written by developers at OOO for the deployment of their Java-based massively multiplayer games. Try out any of the following games to see it in action:

Getdown is implemented in Java, and is designed to deploy and update JVM-based applications. While it would be technically feasible to use Getdown to deploy non-JVM-based applications, it is not currently supported and it is unlikely that the overhead of bundling a JVM just to run Getdown would be worth it if the JVM were not also being used to run the target application.

Release notes

See CHANGELOG.md for release notes.

Obtaining Getdown

Getdown will likely need to be integrated into your build. We have separate instructions for build integration. You can also download the individual jar files from Maven Central if needed. Getdown is comprised of three Maven artifacts (jar files), though you probably only need the first one:

  • getdown-launcher contains minified (via Proguard) code that you actually run to update and launch your app. It also contains the tools needed to build a Getdown app distribution.

  • getdown-core contains the core logic for downloading, verifying, patching and launching an app as well as the core logic for creating an app distribution. It does not contain any user interface code. You would only use this artifact if you were planning to integrate Getdown directly into your app.

  • getdown-ant contains an Ant task for building a Getdown app distribution. See the build integration instructions for details.

You can also:

JVM Version Requirements

  • Getdown version 1.8.x requires Java 7 VM or newer.
  • Getdown version 1.7.x requires Java 7 VM or newer.
  • Getdown version 1.6.x requires Java 6 VM or newer.
  • Getdown version 1.5 and earlier requires Java 5 VM or newer.

Migrating from Getdown 1.7 to Getdown 1.8

See this document on the changes needed to migrate from Getdown 1.7 to 1.8.

Building

Getdown is built with Maven in the standard ways. Invoke the following commands, for fun and profit:

% mvn compile  # builds the classes
% mvn test     # builds and runs the unit tests
% mvn package  # builds and creates jar file
% mvn install  # builds, jars and installs in your local Maven repository

Discussion

Feel free to pop over to the OOO Libs Google Group to ask questions and get (and give) answers.

More Repositories

1

playn

Legacy 1.x version of PlayN library.
Java
194
star
2

openvpn-auth-ldap

Implements username/password authentication via LDAP for OpenVPN 2.x.
C
135
star
3

tripleplay

Utilities for use in PlayN-based games.
Java
92
star
4

clyde

A collection of Java packages for making networked 3D games
Java
49
star
5

narya

Distributed application framework, good for MMOGs
Java
46
star
6

react

A signals/slots plus FRP-like library for Java and Objective-C
Java
36
star
7

nenya

Components for Java 2D, isometric and 3D games.
Java
29
star
8

java-signals

Simple, type-safe event dispatching for Java a la as3-signals
Java
23
star
9

vilya

Components for making massively and not-so-massively multiplayer online games
Java
20
star
10

nexus

Distributed interactive application development framework
Java
15
star
11

aspirin

Reducing the pain in your .as
ActionScript
13
star
12

flashbang

Flash game framework
ActionScript
12
star
13

game-gardens

A framework for hosting simple multiplayer games written in Java.
Java
9
star
14

atlantis

A tile laying game that's fun for the whole family!
Java
8
star
15

flashbang-playn

A Java port of the ActionScript flashbang game framework, for use in PlayN projects.
Java
7
star
16

betwixt

Objective-C
7
star
17

depot

A relational persistence library for Java.
Java
5
star
18

s3lib

Java and C client libraries for Amazon's Simple Storage Service.
Java
5
star
19

jiggl

2D game library with GWT/WebGL and LWJGL backends
Java
5
star
20

cooocoa

A collection of utilities to make Cocoa development more pleasant
Objective-C
4
star
21

gwt-utils

Utilities for creating GWT applications
Java
3
star
22

godmode

A behavior tree implementation in Objective-C
Objective-C
3
star
23

flofiler

Traces method invocation times for AS3 code.
ActionScript
3
star
24

ooo-util

A place for general purpose utilities used across all of Three Rings' libraries and projects.
Java
3
star
25

getdown-testapp

A simple app that demonstrates wiring Getdown into a Maven build and other bits.
Java
2
star
26

ooo-build

Ant infrastructure for Three Rings' projects
2
star
27

nexus-demos

Demos for the Nexus distributed app/game framework.
Java
2
star
28

maven-repo

A publicly accessible Maven repository for OOO artifacts.
2
star
29

soomla

Branch of soomla libraries
Java
2
star
30

ant-javanailgun

An Ant task to use nailgun in the place of the java task.
Java
2
star
31

executor

Futures & Executor for AS/Flash
ActionScript
2
star
32

papercut

Java
1
star
33

socializen

Auth and social services for use in PlayN-based games.
Java
1
star
34

fisy

Java
1
star
35

ooo-cron

A simple multiserver-coordinated cron service
Java
1
star
36

ooo-app

A simple framework for social apps written in Java.
Java
1
star
37

monoshrub

a 2D scenegraph for MonoGame
C#
1
star
38

splatd

Automatically exported from code.google.com/p/splatd
Python
1
star