propagate from branch 'i2p.www' (head 58b6b0589b4b5e4a45b1be2ac97bba8d253e9368)

to branch 'i2p.www.str4d' (head 2ab3bce2634e8d1dcbf7f2bf89c310c5ae3a7eb6)
This commit is contained in:
str4d
2016-03-05 17:38:12 +00:00
76 changed files with 5321 additions and 696 deletions

View File

@@ -2,8 +2,8 @@
Plugin Specification
====================
.. meta::
:lastupdated: May 2015
:accuratefor: 0.9.20
:lastupdated: February 2016
:accuratefor: 0.9.25
Overview
@@ -154,7 +154,7 @@ The following properties are used to add a link on the console summary bar:
consoleLinkTooltip_xx
lang xx as of 0.7.12-6
The following optional property may be used to add a custom icon on the
The following optional properties may be used to add a custom icon on the
console:
console-icon
@@ -165,6 +165,14 @@ console:
A path within the webapp to a 32x32 image, e.g. /icon.png
Applies to all webapps in the plugin.
icon-code
supported as of 0.9.25
Provides a console icon for plugins without web resources.
A B64 string produced by calling `net.i2p.data.Base64 encode FILE` on a
32x32 png image file.
The following properties are used by the plugin installer:
type
@@ -547,17 +555,49 @@ Classpaths
The following jars in $I2P/lib can be assumed to be in the standard classpath
for all I2P installations, no matter how old or how new the original
installation::
installation:
i2p.jar, router.jar, jbigi.jar, sam.jar, mstreaming.jar, streaming.jar, i2ptunnel.jar,
org.mortbay.jetty.jar, javax.servlet.jar, jasper-compiler.jar, jasper-runtime.jar,
commons-logging.jar, commons-el.jar, wrapper.jar, systray.jar, systray4j.jar
===================== ============================ =====
Jar Contains Usage
===================== ============================ =====
commons-logging.jar Apache Logging For plugins requiring Apache logging.
Prior to Jetty 6 (release 0.9), this
contained Apache Commons Logging only.
From release 0.9 to release 0.9.23, this
contained both Commons Logging and Tomcat JULI.
As of release 0.9.24, this contains
Apache Tomcat JULI logging only.
commons-el.jar JSP Expressions Language For plugins with JSPs that use EL
i2p.jar Core API Almost all plugins will need
i2ptunnel.jar I2PTunnel For plugins with HTTP or other servers
jasper-compiler.jar nothing Empty since Jetty 6 (release 0.9)
jasper-runtime.jar Jasper Compiler and Runtime, Needed for plugins with JSPs
and some Tomcat utils
javax.servlet.jar Servlet API Needed for plugins with JSPs
jbigi.jar Binaries No plugin should need
mstreaming.jar Streaming API Almost all plugins will need
org.mortbay.jetty.jar Jetty Base Only plugins starting their own Jetty instance
will need. Recommended way of starting Jetty
is with net.i2p.jetty.JettyStart in jetty-i2p.jar.
router.jar Router Only plugins using router context will need; most will not
sam.jar SAM API No plugin should need
streaming.jar Streaming Implementation Almost all plugins will need
systray.jar URL Launcher Most plugins should not need
systray4j.jar Systray No plugin should need
wrapper.jar Router Most plugins should not need
===================== ============================ =====
The following jars in $I2P/lib can be assumed to be present for all I2P
installations, no matter how old or how new the original installation, but are
not necessarily in the classpath::
not necessarily in the classpath:
jstl.jar, standard.jar
============ =============== =====
Jar Contains Usage
============ =============== =====
jstl.jar Standard Taglib For plugins using JSP tags
standard.jar Standard Taglib For plugins using JSP tags
============ =============== =====
Anything not listed above may not be present in everybody's classpath, even if
you have it in the classpath in YOUR version of i2p. If you need any jar not
@@ -575,29 +615,28 @@ required classpath for each client.
Java Version Notes
==================
While most I2P users are running a 1.6 (6.0) JVM, we support 1.5 (5.0) and
higher JVMs. Unless you require 1.6 features, you should create your plugin so
it works on 1.5.
I2P has required Java 7 since release 0.9.24 (January 2016).
I2P has required Java 6 since release 0.9.12 (April 2014).
Any I2P users on the latest release should be running a 1.7 (7.0) JVM.
In early 2016, unless you require 1.7 language or library features, you should
create your plugin so it works on 1.6. Later in the year, most of the network
will be on 0.9.24 or higher with Java 7.
If your plugin **does not require 1.6**:
If your plugin **does not require 1.7**:
* Ensure that all java and jsp files are compiled with source="1.5"
target="1.5".
* Ensure that all java and jsp files are compiled with source="1.6"
target="1.6".
* Ensure that all bundled library jars are also for 1.5 or lower.
* Ensure that all bundled library jars are also for 1.6 or lower.
* If you are using pack200, any 1.6 classes in a jar will cause pack200 to
create a 1.6 pack format, and plugin installation will fail on a 1.5 system
with the misleading message "plugin is corrupt".
If your plugin **requires 1.6**:
If your plugin **requires 1.7**:
* Note that on your download page.
* Add min-java-version=1.6 to your plugin.config
* Add min-java-version=1.7 to your plugin.config
* If you are using pack200, plugin installation will fail on a 1.5 system with
the misleading message "plugin is corrupt".
In any case, you **must** set a bootclasspath when compiling with Java 8 to
prevent runtime crashes.
JVM Crashes When Updating