Refactored using IntelliJ
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -112,7 +112,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.openautonomousconnection</groupId>
|
<groupId>org.openautonomousconnection</groupId>
|
||||||
<artifactId>Protocol</artifactId>
|
<artifactId>Protocol</artifactId>
|
||||||
<version>1.0.0-BETA.7.3</version>
|
<version>1.0.0-BETA.7.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package org.openautonomousconnection.webserver;
|
package org.openautonomousconnection.webserver;
|
||||||
|
|
||||||
import jdk.dynalink.linker.LinkerServices;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public final class ContentTypeResolver {
|
public final class ContentTypeResolver {
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import java.util.Scanner;
|
|||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static final CommandPermission PERMISSION_ALL = new CommandPermission("all", 1);
|
public static final CommandPermission PERMISSION_ALL = new CommandPermission("all", 1);
|
||||||
private static final CommandExecutor commandExecutor = new CommandExecutor("WebServer", PERMISSION_ALL) {};
|
private static final CommandExecutor commandExecutor = new CommandExecutor("WebServer", PERMISSION_ALL) {
|
||||||
|
};
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private static CommandManager commandManager;
|
private static CommandManager commandManager;
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ import org.openautonomousconnection.webserver.utils.WebHasher;
|
|||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@ProtocolInfo(protocolSide = ProtocolVersion.ProtocolSide.WEB)
|
@ProtocolInfo(protocolSide = ProtocolVersion.ProtocolSide.WEB)
|
||||||
public final class WebServer extends ProtocolWebServer {
|
public final class WebServer extends ProtocolWebServer {
|
||||||
@@ -35,7 +36,7 @@ public final class WebServer extends ProtocolWebServer {
|
|||||||
int sessionExpire,
|
int sessionExpire,
|
||||||
int maxUpload
|
int maxUpload
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
super(authFile, rulesFile,sessionExpire, maxUpload);
|
super(authFile, rulesFile, sessionExpire, maxUpload);
|
||||||
|
|
||||||
// NOTE: Values chosen as safe defaults.
|
// NOTE: Values chosen as safe defaults.
|
||||||
// move them to Main and pass them in here (no hidden assumptions).
|
// move them to Main and pass them in here (no hidden assumptions).
|
||||||
@@ -80,8 +81,10 @@ public final class WebServer extends ProtocolWebServer {
|
|||||||
File root = getContentFolder().getCanonicalFile();
|
File root = getContentFolder().getCanonicalFile();
|
||||||
File file = new File(root, path).getCanonicalFile();
|
File file = new File(root, path).getCanonicalFile();
|
||||||
|
|
||||||
if (!file.getPath().startsWith(root.getPath())) return new WebResponsePacket(403, "text/plain; charset=utf-8", Map.of(), "Forbidden".getBytes());
|
if (!file.getPath().startsWith(root.getPath()))
|
||||||
if (!file.exists() || !file.isFile()) return new WebResponsePacket(404, "text/plain; charset=utf-8", Map.of(), "Not found".getBytes());
|
return new WebResponsePacket(403, "text/plain; charset=utf-8", Map.of(), "Forbidden".getBytes());
|
||||||
|
if (!file.exists() || !file.isFile())
|
||||||
|
return new WebResponsePacket(404, "text/plain; charset=utf-8", Map.of(), "Not found".getBytes());
|
||||||
|
|
||||||
String contentType = ContentTypeResolver.resolve(file.getName());
|
String contentType = ContentTypeResolver.resolve(file.getName());
|
||||||
long size = file.length();
|
long size = file.length();
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package org.openautonomousconnection.webserver.api;
|
package org.openautonomousconnection.webserver.api;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Declares a route path for a server-side Java WebPage.
|
* Declares a route path for a server-side Java WebPage.
|
||||||
|
|||||||
@@ -41,7 +41,15 @@ public final class SessionContext {
|
|||||||
return new SessionContext(sessionId, user, true);
|
return new SessionContext(sessionId, user, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValid() { return valid; }
|
public boolean isValid() {
|
||||||
public String getSessionId() { return sessionId; }
|
return valid;
|
||||||
public String getUser() { return user; }
|
}
|
||||||
|
|
||||||
|
public String getSessionId() {
|
||||||
|
return sessionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUser() {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package org.openautonomousconnection.webserver.api;
|
|||||||
import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebRequestPacket;
|
import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebRequestPacket;
|
||||||
import org.openautonomousconnection.protocol.side.server.CustomConnectedClient;
|
import org.openautonomousconnection.protocol.side.server.CustomConnectedClient;
|
||||||
import org.openautonomousconnection.protocol.side.web.ProtocolWebServer;
|
import org.openautonomousconnection.protocol.side.web.ProtocolWebServer;
|
||||||
import org.openautonomousconnection.webserver.utils.WebHasher;
|
|
||||||
import org.openautonomousconnection.webserver.utils.RequestParams;
|
import org.openautonomousconnection.webserver.utils.RequestParams;
|
||||||
|
import org.openautonomousconnection.webserver.utils.WebHasher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Context passed to Java WebPages (client, request, session, params, hasher).
|
* Context passed to Java WebPages (client, request, session, params, hasher).
|
||||||
|
|||||||
@@ -8,16 +8,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
*/
|
*/
|
||||||
public final class JavaPageCache {
|
public final class JavaPageCache {
|
||||||
|
|
||||||
private static final class Entry {
|
|
||||||
final long lastModified;
|
|
||||||
final Class<?> clazz;
|
|
||||||
|
|
||||||
Entry(long lastModified, Class<?> clazz) {
|
|
||||||
this.lastModified = lastModified;
|
|
||||||
this.clazz = clazz;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final ConcurrentHashMap<String, Entry> cache = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, Entry> cache = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public Class<?> getOrCompile(File javaFile) throws Exception {
|
public Class<?> getOrCompile(File javaFile) throws Exception {
|
||||||
@@ -33,4 +23,7 @@ public final class JavaPageCache {
|
|||||||
cache.put(key, new Entry(lm, compiled));
|
cache.put(key, new Entry(lm, compiled));
|
||||||
return compiled;
|
return compiled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private record Entry(long lastModified, Class<?> clazz) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package org.openautonomousconnection.webserver.runtime;
|
package org.openautonomousconnection.webserver.runtime;
|
||||||
|
|
||||||
import javax.tools.*;
|
import javax.tools.JavaCompiler;
|
||||||
|
import javax.tools.JavaFileObject;
|
||||||
|
import javax.tools.StandardJavaFileManager;
|
||||||
|
import javax.tools.ToolProvider;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
@@ -16,7 +19,8 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public final class JavaPageCompiler {
|
public final class JavaPageCompiler {
|
||||||
|
|
||||||
private JavaPageCompiler() {}
|
private JavaPageCompiler() {
|
||||||
|
}
|
||||||
|
|
||||||
public static Class<?> compile(File javaFile) throws Exception {
|
public static Class<?> compile(File javaFile) throws Exception {
|
||||||
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||||
@@ -35,7 +39,7 @@ public final class JavaPageCompiler {
|
|||||||
String fqcn = deriveFqcn(javaFile);
|
String fqcn = deriveFqcn(javaFile);
|
||||||
|
|
||||||
// Root must be the folder containing the package root (javaFile parent is fine if classes output there).
|
// Root must be the folder containing the package root (javaFile parent is fine if classes output there).
|
||||||
URLClassLoader cl = new URLClassLoader(new URL[]{ javaFile.getParentFile().toURI().toURL() });
|
URLClassLoader cl = new URLClassLoader(new URL[]{javaFile.getParentFile().toURI().toURL()});
|
||||||
|
|
||||||
return cl.loadClass(fqcn);
|
return cl.loadClass(fqcn);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import org.openautonomousconnection.protocol.side.web.ProtocolWebServer;
|
|||||||
import org.openautonomousconnection.webserver.WebServer;
|
import org.openautonomousconnection.webserver.WebServer;
|
||||||
import org.openautonomousconnection.webserver.api.WebPage;
|
import org.openautonomousconnection.webserver.api.WebPage;
|
||||||
import org.openautonomousconnection.webserver.api.WebPageContext;
|
import org.openautonomousconnection.webserver.api.WebPageContext;
|
||||||
import org.openautonomousconnection.webserver.utils.WebHasher;
|
|
||||||
import org.openautonomousconnection.webserver.utils.RequestParams;
|
import org.openautonomousconnection.webserver.utils.RequestParams;
|
||||||
|
import org.openautonomousconnection.webserver.utils.WebHasher;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@@ -21,7 +21,8 @@ public final class JavaPageDispatcher {
|
|||||||
|
|
||||||
private static final JavaRouteRegistry ROUTES = new JavaRouteRegistry();
|
private static final JavaRouteRegistry ROUTES = new JavaRouteRegistry();
|
||||||
|
|
||||||
private JavaPageDispatcher() {}
|
private JavaPageDispatcher() {
|
||||||
|
}
|
||||||
|
|
||||||
public static WebResponsePacket dispatch(
|
public static WebResponsePacket dispatch(
|
||||||
CustomConnectedClient client,
|
CustomConnectedClient client,
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ import org.openautonomousconnection.webserver.api.Route;
|
|||||||
import org.openautonomousconnection.webserver.api.WebPage;
|
import org.openautonomousconnection.webserver.api.WebPage;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.ArrayDeque;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Deque;
|
||||||
|
import java.util.List;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,24 +21,50 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
*/
|
*/
|
||||||
public final class JavaRouteRegistry {
|
public final class JavaRouteRegistry {
|
||||||
|
|
||||||
private static final class RouteEntry {
|
|
||||||
final File sourceFile;
|
|
||||||
final long lastModified;
|
|
||||||
final String fqcn;
|
|
||||||
final boolean routable;
|
|
||||||
|
|
||||||
RouteEntry(File sourceFile, long lastModified, String fqcn, boolean routable) {
|
|
||||||
this.sourceFile = sourceFile;
|
|
||||||
this.lastModified = lastModified;
|
|
||||||
this.fqcn = fqcn;
|
|
||||||
this.routable = routable;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final JavaPageCache cache = new JavaPageCache();
|
private final JavaPageCache cache = new JavaPageCache();
|
||||||
private final ConcurrentHashMap<String, RouteEntry> routes = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, RouteEntry> routes = new ConcurrentHashMap<>();
|
||||||
private final ConcurrentHashMap<String, Long> scanState = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, Long> scanState = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
private static String normalizeRoute(String value) {
|
||||||
|
if (value == null) return "/";
|
||||||
|
String v = value.trim();
|
||||||
|
if (v.isEmpty()) return "/";
|
||||||
|
if (!v.startsWith("/")) v = "/" + v;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<File> listJavaFiles(File root) {
|
||||||
|
ArrayList<File> out = new ArrayList<>();
|
||||||
|
Deque<File> stack = new ArrayDeque<>();
|
||||||
|
stack.push(root);
|
||||||
|
|
||||||
|
while (!stack.isEmpty()) {
|
||||||
|
File cur = stack.pop();
|
||||||
|
File[] children = cur.listFiles();
|
||||||
|
if (children == null) continue;
|
||||||
|
|
||||||
|
for (File c : children) {
|
||||||
|
if (c.isDirectory()) {
|
||||||
|
stack.push(c);
|
||||||
|
} else if (c.isFile() && c.getName().endsWith(".java")) {
|
||||||
|
out.add(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static long folderLastModified(File folder) {
|
||||||
|
long lm = folder.lastModified();
|
||||||
|
File[] children = folder.listFiles();
|
||||||
|
if (children == null) return lm;
|
||||||
|
for (File c : children) {
|
||||||
|
lm = Math.max(lm, c.isDirectory() ? folderLastModified(c) : c.lastModified());
|
||||||
|
}
|
||||||
|
return lm;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refreshes registry when content folder changed.
|
* Refreshes registry when content folder changed.
|
||||||
*
|
*
|
||||||
@@ -88,44 +117,7 @@ public final class JavaRouteRegistry {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String normalizeRoute(String value) {
|
private record RouteEntry(File sourceFile, long lastModified, String fqcn, boolean routable) {
|
||||||
if (value == null) return "/";
|
|
||||||
String v = value.trim();
|
|
||||||
if (v.isEmpty()) return "/";
|
|
||||||
if (!v.startsWith("/")) v = "/" + v;
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<File> listJavaFiles(File root) {
|
|
||||||
ArrayList<File> out = new ArrayList<>();
|
|
||||||
Deque<File> stack = new ArrayDeque<>();
|
|
||||||
stack.push(root);
|
|
||||||
|
|
||||||
while (!stack.isEmpty()) {
|
|
||||||
File cur = stack.pop();
|
|
||||||
File[] children = cur.listFiles();
|
|
||||||
if (children == null) continue;
|
|
||||||
|
|
||||||
for (File c : children) {
|
|
||||||
if (c.isDirectory()) {
|
|
||||||
stack.push(c);
|
|
||||||
} else if (c.isFile() && c.getName().endsWith(".java")) {
|
|
||||||
out.add(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static long folderLastModified(File folder) {
|
|
||||||
long lm = folder.lastModified();
|
|
||||||
File[] children = folder.listFiles();
|
|
||||||
if (children == null) return lm;
|
|
||||||
for (File c : children) {
|
|
||||||
lm = Math.max(lm, c.isDirectory() ? folderLastModified(c) : c.lastModified());
|
|
||||||
}
|
|
||||||
return lm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -135,5 +127,6 @@ public final class JavaRouteRegistry {
|
|||||||
* @param fqcn fully qualified class name
|
* @param fqcn fully qualified class name
|
||||||
* @param routable true if @Route + implements WebPage
|
* @param routable true if @Route + implements WebPage
|
||||||
*/
|
*/
|
||||||
public record RouteLookupResult(File sourceFile, String fqcn, boolean routable) {}
|
public record RouteLookupResult(File sourceFile, String fqcn, boolean routable) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ import java.nio.charset.StandardCharsets;
|
|||||||
*/
|
*/
|
||||||
public final class Html {
|
public final class Html {
|
||||||
|
|
||||||
private Html() {}
|
private Html() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Escapes text for HTML.
|
* Escapes text for HTML.
|
||||||
|
|||||||
@@ -38,6 +38,35 @@ public final class WebHasher {
|
|||||||
this.pbkdf2KeyBytes = pbkdf2KeyBytes;
|
this.pbkdf2KeyBytes = pbkdf2KeyBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static byte[] derive(char[] password, byte[] salt, int iterations, int keyBytes) {
|
||||||
|
try {
|
||||||
|
PBEKeySpec spec = new PBEKeySpec(password, salt, iterations, keyBytes * 8);
|
||||||
|
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
|
||||||
|
return skf.generateSecret(spec).getEncoded();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new IllegalStateException("PBKDF2 not available", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean constantTimeEquals(byte[] a, byte[] b) {
|
||||||
|
if (a == null || b == null) return false;
|
||||||
|
if (a.length != b.length) return false;
|
||||||
|
int r = 0;
|
||||||
|
for (int i = 0; i < a.length; i++) r |= (a[i] ^ b[i]);
|
||||||
|
return r == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String toHexLower(byte[] data) {
|
||||||
|
final char[] hex = "0123456789abcdef".toCharArray();
|
||||||
|
char[] out = new char[data.length * 2];
|
||||||
|
int i = 0;
|
||||||
|
for (byte b : data) {
|
||||||
|
out[i++] = hex[(b >>> 4) & 0x0F];
|
||||||
|
out[i++] = hex[b & 0x0F];
|
||||||
|
}
|
||||||
|
return new String(out);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SHA-256 hashes text (lowercase hex).
|
* SHA-256 hashes text (lowercase hex).
|
||||||
*
|
*
|
||||||
@@ -107,33 +136,4 @@ public final class WebHasher {
|
|||||||
byte[] actual = derive(password.toCharArray(), salt, it, expected.length);
|
byte[] actual = derive(password.toCharArray(), salt, it, expected.length);
|
||||||
return constantTimeEquals(expected, actual);
|
return constantTimeEquals(expected, actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] derive(char[] password, byte[] salt, int iterations, int keyBytes) {
|
|
||||||
try {
|
|
||||||
PBEKeySpec spec = new PBEKeySpec(password, salt, iterations, keyBytes * 8);
|
|
||||||
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
|
|
||||||
return skf.generateSecret(spec).getEncoded();
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new IllegalStateException("PBKDF2 not available", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean constantTimeEquals(byte[] a, byte[] b) {
|
|
||||||
if (a == null || b == null) return false;
|
|
||||||
if (a.length != b.length) return false;
|
|
||||||
int r = 0;
|
|
||||||
for (int i = 0; i < a.length; i++) r |= (a[i] ^ b[i]);
|
|
||||||
return r == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String toHexLower(byte[] data) {
|
|
||||||
final char[] hex = "0123456789abcdef".toCharArray();
|
|
||||||
char[] out = new char[data.length * 2];
|
|
||||||
int i = 0;
|
|
||||||
for (byte b : data) {
|
|
||||||
out[i++] = hex[(b >>> 4) & 0x0F];
|
|
||||||
out[i++] = hex[b & 0x0F];
|
|
||||||
}
|
|
||||||
return new String(out);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<HTML>
|
<HTML>
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>Javassist License</TITLE>
|
<TITLE>Javassist License</TITLE>
|
||||||
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
|
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
|
||||||
<META content="MSHTML 5.50.4916.2300" name=GENERATOR></HEAD>
|
<META content="MSHTML 5.50.4916.2300" name=GENERATOR>
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff>
|
<BODY aLink=#ff0000 bgColor=#ffffff link=#0000ee text=#000000 vLink=#551a8b>
|
||||||
<CENTER><B><FONT size=+2>MOZILLA PUBLIC LICENSE</FONT></B> <BR><B>Version
|
<CENTER><B><FONT size=+2>MOZILLA PUBLIC LICENSE</FONT></B> <BR><B>Version
|
||||||
1.1</B>
|
1.1</B>
|
||||||
<P>
|
<P>
|
||||||
<HR width="20%">
|
<HR width="20%">
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<P><B>1. Definitions.</B>
|
<P><B>1. Definitions.</B>
|
||||||
<UL><B>1.0.1. "Commercial Use" </B>means distribution or otherwise making the
|
<UL><B>1.0.1. "Commercial Use" </B>means distribution or otherwise making the
|
||||||
@@ -42,7 +43,8 @@
|
|||||||
<UL><B>A.</B> Any addition to or deletion from the contents of a file
|
<UL><B>A.</B> Any addition to or deletion from the contents of a file
|
||||||
containing Original Code or previous Modifications.
|
containing Original Code or previous Modifications.
|
||||||
<P><B>B.</B> Any new file that contains any part of the Original Code or
|
<P><B>B.</B> Any new file that contains any part of the Original Code or
|
||||||
previous Modifications. <BR> </P></UL><B>1.10. ''Original Code''</B>
|
previous Modifications. <BR> </P></UL>
|
||||||
|
<B>1.10. ''Original Code''</B>
|
||||||
means Source Code of computer software code which is described in the Source
|
means Source Code of computer software code which is described in the Source
|
||||||
Code notice required by <B>Exhibit A</B> as Original Code, and which, at the
|
Code notice required by <B>Exhibit A</B> as Original Code, and which, at the
|
||||||
time of its release under this License is not already Covered Code governed by
|
time of its release under this License is not already Covered Code governed by
|
||||||
@@ -66,7 +68,8 @@
|
|||||||
means (a) the power, direct or indirect, to cause the direction or management
|
means (a) the power, direct or indirect, to cause the direction or management
|
||||||
of such entity, whether by contract or otherwise, or (b) ownership of more
|
of such entity, whether by contract or otherwise, or (b) ownership of more
|
||||||
than fifty percent (50%) of the outstanding shares or beneficial ownership of
|
than fifty percent (50%) of the outstanding shares or beneficial ownership of
|
||||||
such entity.</P></UL><B>2. Source Code License.</B>
|
such entity.</P></UL>
|
||||||
|
<B>2. Source Code License.</B>
|
||||||
<UL><B>2.1. The Initial Developer Grant.</B> <BR>The Initial Developer hereby
|
<UL><B>2.1. The Initial Developer Grant.</B> <BR>The Initial Developer hereby
|
||||||
grants You a world-wide, royalty-free, non-exclusive license, subject to third
|
grants You a world-wide, royalty-free, non-exclusive license, subject to third
|
||||||
party intellectual property claims:
|
party intellectual property claims:
|
||||||
@@ -79,18 +82,21 @@
|
|||||||
of Original Code, to make, have made, use, practice, sell, and offer for
|
of Original Code, to make, have made, use, practice, sell, and offer for
|
||||||
sale, and/or otherwise dispose of the Original Code (or portions thereof).
|
sale, and/or otherwise dispose of the Original Code (or portions thereof).
|
||||||
<UL>
|
<UL>
|
||||||
<UL></UL></UL><B>(c) </B>the licenses granted in this Section 2.1(a) and (b)
|
<UL></UL>
|
||||||
|
</UL>
|
||||||
|
<B>(c) </B>the licenses granted in this Section 2.1(a) and (b)
|
||||||
are effective on the date Initial Developer first distributes Original Code
|
are effective on the date Initial Developer first distributes Original Code
|
||||||
under the terms of this License.
|
under the terms of this License.
|
||||||
<P><B>(d) </B>Notwithstanding Section 2.1(b) above, no patent license is
|
<P><B>(d) </B>Notwithstanding Section 2.1(b) above, no patent license is
|
||||||
granted: 1) for code that You delete from the Original Code; 2) separate
|
granted: 1) for code that You delete from the Original Code; 2) separate
|
||||||
from the Original Code; or 3) for infringements caused by: i) the
|
from the Original Code; or 3) for infringements caused by: i) the
|
||||||
modification of the Original Code or ii) the combination of the Original
|
modification of the Original Code or ii) the combination of the Original
|
||||||
Code with other software or devices. <BR> </P></UL><B>2.2. Contributor
|
Code with other software or devices. <BR> </P></UL>
|
||||||
|
<B>2.2. Contributor
|
||||||
Grant.</B> <BR>Subject to third party intellectual property claims, each
|
Grant.</B> <BR>Subject to third party intellectual property claims, each
|
||||||
Contributor hereby grants You a world-wide, royalty-free, non-exclusive
|
Contributor hereby grants You a world-wide, royalty-free, non-exclusive
|
||||||
license
|
license
|
||||||
<UL> <BR><B>(a)</B> <B> </B>under intellectual property rights (other
|
<UL><BR><B>(a)</B> <B> </B>under intellectual property rights (other
|
||||||
than patent or trademark) Licensable by Contributor, to use, reproduce,
|
than patent or trademark) Licensable by Contributor, to use, reproduce,
|
||||||
modify, display, perform, sublicense and distribute the Modifications
|
modify, display, perform, sublicense and distribute the Modifications
|
||||||
created by such Contributor (or portions thereof) either on an unmodified
|
created by such Contributor (or portions thereof) either on an unmodified
|
||||||
@@ -115,7 +121,8 @@
|
|||||||
Modifications made by that Contributor with other software (except as
|
Modifications made by that Contributor with other software (except as
|
||||||
part of the Contributor Version) or other devices; or 4) under Patent Claims
|
part of the Contributor Version) or other devices; or 4) under Patent Claims
|
||||||
infringed by Covered Code in the absence of Modifications made by that
|
infringed by Covered Code in the absence of Modifications made by that
|
||||||
Contributor.</P></UL></UL>
|
Contributor.</P></UL>
|
||||||
|
</UL>
|
||||||
<P><BR><B>3. Distribution Obligations.</B>
|
<P><BR><B>3. Distribution Obligations.</B>
|
||||||
<UL><B>3.1. Application of License.</B> <BR>The Modifications which You create
|
<UL><B>3.1. Application of License.</B> <BR>The Modifications which You create
|
||||||
or to which You contribute are governed by the terms of this License,
|
or to which You contribute are governed by the terms of this License,
|
||||||
@@ -168,7 +175,8 @@
|
|||||||
<UL>Contributor represents that, except as disclosed pursuant to Section
|
<UL>Contributor represents that, except as disclosed pursuant to Section
|
||||||
3.4(a) above, Contributor believes that Contributor's Modifications are
|
3.4(a) above, Contributor believes that Contributor's Modifications are
|
||||||
Contributor's original creation(s) and/or Contributor has sufficient rights
|
Contributor's original creation(s) and/or Contributor has sufficient rights
|
||||||
to grant the rights conveyed by this License.</UL>
|
to grant the rights conveyed by this License.
|
||||||
|
</UL>
|
||||||
<P><BR><B>3.5. Required Notices.</B> <BR>You must duplicate the notice in
|
<P><BR><B>3.5. Required Notices.</B> <BR>You must duplicate the notice in
|
||||||
<B>Exhibit A</B> in each file of the Source Code. If it is not possible
|
<B>Exhibit A</B> in each file of the Source Code. If it is not possible
|
||||||
to put such notice in a particular Source Code file due to its structure, then
|
to put such notice in a particular Source Code file due to its structure, then
|
||||||
@@ -210,7 +218,8 @@
|
|||||||
Covered Code with other code not governed by the terms of this License and
|
Covered Code with other code not governed by the terms of this License and
|
||||||
distribute the Larger Work as a single product. In such a case, You must make
|
distribute the Larger Work as a single product. In such a case, You must make
|
||||||
sure the requirements of this License are fulfilled for the Covered
|
sure the requirements of this License are fulfilled for the Covered
|
||||||
Code.</P></UL><B>4. Inability to Comply Due to Statute or Regulation.</B>
|
Code.</P></UL>
|
||||||
|
<B>4. Inability to Comply Due to Statute or Regulation.</B>
|
||||||
<UL>If it is impossible for You to comply with any of the terms of this
|
<UL>If it is impossible for You to comply with any of the terms of this
|
||||||
License with respect to some or all of the Covered Code due to statute,
|
License with respect to some or all of the Covered Code due to statute,
|
||||||
judicial order, or regulation then You must: (a) comply with the terms of this
|
judicial order, or regulation then You must: (a) comply with the terms of this
|
||||||
@@ -219,10 +228,14 @@ Code.</P></UL><B>4. Inability to Comply Due to Statute or Regulation.</B>
|
|||||||
described in Section <B>3.4</B> and must be included with all distributions of
|
described in Section <B>3.4</B> and must be included with all distributions of
|
||||||
the Source Code. Except to the extent prohibited by statute or regulation,
|
the Source Code. Except to the extent prohibited by statute or regulation,
|
||||||
such description must be sufficiently detailed for a recipient of ordinary
|
such description must be sufficiently detailed for a recipient of ordinary
|
||||||
skill to be able to understand it.</UL><B>5. Application of this License.</B>
|
skill to be able to understand it.
|
||||||
|
</UL>
|
||||||
|
<B>5. Application of this License.</B>
|
||||||
<UL>This License applies to code to which the Initial Developer has attached
|
<UL>This License applies to code to which the Initial Developer has attached
|
||||||
the notice in <B>Exhibit A</B> and to related Covered Code.</UL><B>6. Versions
|
the notice in <B>Exhibit A</B> and to related Covered Code.
|
||||||
of the License.</B>
|
</UL>
|
||||||
|
<B>6. Versions
|
||||||
|
of the License.</B>
|
||||||
<UL><B>6.1. New Versions</B>. <BR>Netscape Communications Corporation
|
<UL><B>6.1. New Versions</B>. <BR>Netscape Communications Corporation
|
||||||
(''Netscape'') may publish revised and/or new versions of the License from
|
(''Netscape'') may publish revised and/or new versions of the License from
|
||||||
time to time. Each version will be given a distinguishing version number.
|
time to time. Each version will be given a distinguishing version number.
|
||||||
@@ -242,8 +255,9 @@ of the License.</B>
|
|||||||
terms which differ from the Mozilla Public License and Netscape Public
|
terms which differ from the Mozilla Public License and Netscape Public
|
||||||
License. (Filling in the name of the Initial Developer, Original Code or
|
License. (Filling in the name of the Initial Developer, Original Code or
|
||||||
Contributor in the notice described in <B>Exhibit A</B> shall not of
|
Contributor in the notice described in <B>Exhibit A</B> shall not of
|
||||||
themselves be deemed to be modifications of this License.)</P></UL><B>7.
|
themselves be deemed to be modifications of this License.)</P></UL>
|
||||||
DISCLAIMER OF WARRANTY.</B>
|
<B>7.
|
||||||
|
DISCLAIMER OF WARRANTY.</B>
|
||||||
<UL>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT
|
<UL>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT
|
||||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
|
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
|
||||||
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
|
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
|
||||||
@@ -253,7 +267,9 @@ DISCLAIMER OF WARRANTY.</B>
|
|||||||
OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
|
OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
|
||||||
CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
||||||
LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
|
LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
|
||||||
DISCLAIMER.</UL><B>8. TERMINATION.</B>
|
DISCLAIMER.
|
||||||
|
</UL>
|
||||||
|
<B>8. TERMINATION.</B>
|
||||||
<UL><B>8.1. </B>This License and the rights granted hereunder will
|
<UL><B>8.1. </B>This License and the rights granted hereunder will
|
||||||
terminate automatically if You fail to comply with terms herein and fail to
|
terminate automatically if You fail to comply with terms herein and fail to
|
||||||
cure such breach within 30 days of becoming aware of the breach. All
|
cure such breach within 30 days of becoming aware of the breach. All
|
||||||
@@ -292,8 +308,9 @@ DISCLAIMER OF WARRANTY.</B>
|
|||||||
<P><B>8.4.</B> In the event of termination under Sections 8.1 or 8.2
|
<P><B>8.4.</B> In the event of termination under Sections 8.1 or 8.2
|
||||||
above, all end user license agreements (excluding distributors and
|
above, all end user license agreements (excluding distributors and
|
||||||
resellers) which have been validly granted by You or any distributor hereunder
|
resellers) which have been validly granted by You or any distributor hereunder
|
||||||
prior to termination shall survive termination.</P></UL><B>9. LIMITATION OF
|
prior to termination shall survive termination.</P></UL>
|
||||||
LIABILITY.</B>
|
<B>9. LIMITATION OF
|
||||||
|
LIABILITY.</B>
|
||||||
<UL>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
<UL>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
||||||
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
|
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
|
||||||
OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY
|
OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY
|
||||||
@@ -306,14 +323,18 @@ LIABILITY.</B>
|
|||||||
INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
|
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
|
||||||
LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
|
LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
|
||||||
LIMITATION MAY NOT APPLY TO YOU.</UL><B>10. U.S. GOVERNMENT END USERS.</B>
|
LIMITATION MAY NOT APPLY TO YOU.
|
||||||
|
</UL>
|
||||||
|
<B>10. U.S. GOVERNMENT END USERS.</B>
|
||||||
<UL>The Covered Code is a ''commercial item,'' as that term is defined in 48
|
<UL>The Covered Code is a ''commercial item,'' as that term is defined in 48
|
||||||
C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and
|
C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and
|
||||||
''commercial computer software documentation,'' as such terms are used in 48
|
''commercial computer software documentation,'' as such terms are used in 48
|
||||||
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
|
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
|
||||||
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
|
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
|
||||||
acquire Covered Code with only those rights set forth herein.</UL><B>11.
|
acquire Covered Code with only those rights set forth herein.
|
||||||
MISCELLANEOUS.</B>
|
</UL>
|
||||||
|
<B>11.
|
||||||
|
MISCELLANEOUS.</B>
|
||||||
<UL>This License represents the complete agreement concerning subject matter
|
<UL>This License represents the complete agreement concerning subject matter
|
||||||
hereof. If any provision of this License is held to be unenforceable, such
|
hereof. If any provision of this License is held to be unenforceable, such
|
||||||
provision shall be reformed only to the extent necessary to make it
|
provision shall be reformed only to the extent necessary to make it
|
||||||
@@ -329,18 +350,23 @@ MISCELLANEOUS.</B>
|
|||||||
Nations Convention on Contracts for the International Sale of Goods is
|
Nations Convention on Contracts for the International Sale of Goods is
|
||||||
expressly excluded. Any law or regulation which provides that the language of
|
expressly excluded. Any law or regulation which provides that the language of
|
||||||
a contract shall be construed against the drafter shall not apply to this
|
a contract shall be construed against the drafter shall not apply to this
|
||||||
License.</UL><B>12. RESPONSIBILITY FOR CLAIMS.</B>
|
License.
|
||||||
|
</UL>
|
||||||
|
<B>12. RESPONSIBILITY FOR CLAIMS.</B>
|
||||||
<UL>As between Initial Developer and the Contributors, each party is
|
<UL>As between Initial Developer and the Contributors, each party is
|
||||||
responsible for claims and damages arising, directly or indirectly, out of its
|
responsible for claims and damages arising, directly or indirectly, out of its
|
||||||
utilization of rights under this License and You agree to work with Initial
|
utilization of rights under this License and You agree to work with Initial
|
||||||
Developer and Contributors to distribute such responsibility on an equitable
|
Developer and Contributors to distribute such responsibility on an equitable
|
||||||
basis. Nothing herein is intended or shall be deemed to constitute any
|
basis. Nothing herein is intended or shall be deemed to constitute any
|
||||||
admission of liability.</UL><B>13. MULTIPLE-LICENSED CODE.</B>
|
admission of liability.
|
||||||
|
</UL>
|
||||||
|
<B>13. MULTIPLE-LICENSED CODE.</B>
|
||||||
<UL>Initial Developer may designate portions of the Covered Code as
|
<UL>Initial Developer may designate portions of the Covered Code as
|
||||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||||
Developer permits you to utilize portions of the Covered Code under Your
|
Developer permits you to utilize portions of the Covered Code under Your
|
||||||
choice of the MPL or the alternative licenses, if any, specified by the
|
choice of the MPL or the alternative licenses, if any, specified by the
|
||||||
Initial Developer in the file described in Exhibit A.</UL>
|
Initial Developer in the file described in Exhibit A.
|
||||||
|
</UL>
|
||||||
<P><BR><B>EXHIBIT A -Mozilla Public License.</B>
|
<P><BR><B>EXHIBIT A -Mozilla Public License.</B>
|
||||||
<UL>The contents of this file are subject to the Mozilla Public License
|
<UL>The contents of this file are subject to the Mozilla Public License
|
||||||
Version 1.1 (the "License"); you may not use this file except in compliance
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
@@ -356,24 +382,24 @@ MISCELLANEOUS.</B>
|
|||||||
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
|
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
|
||||||
<P>Contributor(s): __Bill Burke, Jason T. Greene______________.
|
<P>Contributor(s): __Bill Burke, Jason T. Greene______________.
|
||||||
|
|
||||||
<p>Alternatively, the contents of this software may be used under the
|
<p>Alternatively, the contents of this software may be used under the
|
||||||
terms of the GNU Lesser General Public License Version 2.1 or later
|
terms of the GNU Lesser General Public License Version 2.1 or later
|
||||||
(the "LGPL"), or the Apache License Version 2.0 (the "AL"),
|
(the "LGPL"), or the Apache License Version 2.0 (the "AL"),
|
||||||
in which case the provisions of the LGPL or the AL are applicable
|
in which case the provisions of the LGPL or the AL are applicable
|
||||||
instead of those above. If you wish to allow use of your version of
|
instead of those above. If you wish to allow use of your version of
|
||||||
this software only under the terms of either the LGPL or the AL, and not to allow others to
|
this software only under the terms of either the LGPL or the AL, and not to allow others to
|
||||||
use your version of this software under the terms of the MPL, indicate
|
use your version of this software under the terms of the MPL, indicate
|
||||||
your decision by deleting the provisions above and replace them with
|
your decision by deleting the provisions above and replace them with
|
||||||
the notice and other provisions required by the LGPL or the AL. If you do not
|
the notice and other provisions required by the LGPL or the AL. If you do not
|
||||||
delete the provisions above, a recipient may use your version of this
|
delete the provisions above, a recipient may use your version of this
|
||||||
software under the terms of any one of the MPL, the LGPL or the AL.</p>
|
software under the terms of any one of the MPL, the LGPL or the AL.</p>
|
||||||
|
|
||||||
<p>If you obtain this software as part of JBoss,
|
<p>If you obtain this software as part of JBoss,
|
||||||
the contents of this software may be used under only the terms of the LGPL.
|
the contents of this software may be used under only the terms of the LGPL.
|
||||||
To use them under the MPL, you must obtain a separate package including only
|
To use them under the MPL, you must obtain a separate package including only
|
||||||
Javassist but not the other part of JBoss.</p>
|
Javassist but not the other part of JBoss.</p>
|
||||||
|
|
||||||
<p>All the contributors to the original source tree have agreed to the original
|
<p>All the contributors to the original source tree have agreed to the original
|
||||||
license term described above.</p>
|
license term described above.</p>
|
||||||
|
|
||||||
<P></P></UL>
|
<P></P></UL>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<HTML>
|
<HTML>
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>Javassist License</TITLE>
|
<TITLE>Javassist License</TITLE>
|
||||||
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
|
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
|
||||||
<META content="MSHTML 5.50.4916.2300" name=GENERATOR></HEAD>
|
<META content="MSHTML 5.50.4916.2300" name=GENERATOR>
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff>
|
<BODY aLink=#ff0000 bgColor=#ffffff link=#0000ee text=#000000 vLink=#551a8b>
|
||||||
<CENTER><B><FONT size=+2>MOZILLA PUBLIC LICENSE</FONT></B> <BR><B>Version
|
<CENTER><B><FONT size=+2>MOZILLA PUBLIC LICENSE</FONT></B> <BR><B>Version
|
||||||
1.1</B>
|
1.1</B>
|
||||||
<P>
|
<P>
|
||||||
<HR width="20%">
|
<HR width="20%">
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<P><B>1. Definitions.</B>
|
<P><B>1. Definitions.</B>
|
||||||
<UL><B>1.0.1. "Commercial Use" </B>means distribution or otherwise making the
|
<UL><B>1.0.1. "Commercial Use" </B>means distribution or otherwise making the
|
||||||
@@ -42,7 +43,8 @@
|
|||||||
<UL><B>A.</B> Any addition to or deletion from the contents of a file
|
<UL><B>A.</B> Any addition to or deletion from the contents of a file
|
||||||
containing Original Code or previous Modifications.
|
containing Original Code or previous Modifications.
|
||||||
<P><B>B.</B> Any new file that contains any part of the Original Code or
|
<P><B>B.</B> Any new file that contains any part of the Original Code or
|
||||||
previous Modifications. <BR> </P></UL><B>1.10. ''Original Code''</B>
|
previous Modifications. <BR> </P></UL>
|
||||||
|
<B>1.10. ''Original Code''</B>
|
||||||
means Source Code of computer software code which is described in the Source
|
means Source Code of computer software code which is described in the Source
|
||||||
Code notice required by <B>Exhibit A</B> as Original Code, and which, at the
|
Code notice required by <B>Exhibit A</B> as Original Code, and which, at the
|
||||||
time of its release under this License is not already Covered Code governed by
|
time of its release under this License is not already Covered Code governed by
|
||||||
@@ -66,7 +68,8 @@
|
|||||||
means (a) the power, direct or indirect, to cause the direction or management
|
means (a) the power, direct or indirect, to cause the direction or management
|
||||||
of such entity, whether by contract or otherwise, or (b) ownership of more
|
of such entity, whether by contract or otherwise, or (b) ownership of more
|
||||||
than fifty percent (50%) of the outstanding shares or beneficial ownership of
|
than fifty percent (50%) of the outstanding shares or beneficial ownership of
|
||||||
such entity.</P></UL><B>2. Source Code License.</B>
|
such entity.</P></UL>
|
||||||
|
<B>2. Source Code License.</B>
|
||||||
<UL><B>2.1. The Initial Developer Grant.</B> <BR>The Initial Developer hereby
|
<UL><B>2.1. The Initial Developer Grant.</B> <BR>The Initial Developer hereby
|
||||||
grants You a world-wide, royalty-free, non-exclusive license, subject to third
|
grants You a world-wide, royalty-free, non-exclusive license, subject to third
|
||||||
party intellectual property claims:
|
party intellectual property claims:
|
||||||
@@ -79,18 +82,21 @@
|
|||||||
of Original Code, to make, have made, use, practice, sell, and offer for
|
of Original Code, to make, have made, use, practice, sell, and offer for
|
||||||
sale, and/or otherwise dispose of the Original Code (or portions thereof).
|
sale, and/or otherwise dispose of the Original Code (or portions thereof).
|
||||||
<UL>
|
<UL>
|
||||||
<UL></UL></UL><B>(c) </B>the licenses granted in this Section 2.1(a) and (b)
|
<UL></UL>
|
||||||
|
</UL>
|
||||||
|
<B>(c) </B>the licenses granted in this Section 2.1(a) and (b)
|
||||||
are effective on the date Initial Developer first distributes Original Code
|
are effective on the date Initial Developer first distributes Original Code
|
||||||
under the terms of this License.
|
under the terms of this License.
|
||||||
<P><B>(d) </B>Notwithstanding Section 2.1(b) above, no patent license is
|
<P><B>(d) </B>Notwithstanding Section 2.1(b) above, no patent license is
|
||||||
granted: 1) for code that You delete from the Original Code; 2) separate
|
granted: 1) for code that You delete from the Original Code; 2) separate
|
||||||
from the Original Code; or 3) for infringements caused by: i) the
|
from the Original Code; or 3) for infringements caused by: i) the
|
||||||
modification of the Original Code or ii) the combination of the Original
|
modification of the Original Code or ii) the combination of the Original
|
||||||
Code with other software or devices. <BR> </P></UL><B>2.2. Contributor
|
Code with other software or devices. <BR> </P></UL>
|
||||||
|
<B>2.2. Contributor
|
||||||
Grant.</B> <BR>Subject to third party intellectual property claims, each
|
Grant.</B> <BR>Subject to third party intellectual property claims, each
|
||||||
Contributor hereby grants You a world-wide, royalty-free, non-exclusive
|
Contributor hereby grants You a world-wide, royalty-free, non-exclusive
|
||||||
license
|
license
|
||||||
<UL> <BR><B>(a)</B> <B> </B>under intellectual property rights (other
|
<UL><BR><B>(a)</B> <B> </B>under intellectual property rights (other
|
||||||
than patent or trademark) Licensable by Contributor, to use, reproduce,
|
than patent or trademark) Licensable by Contributor, to use, reproduce,
|
||||||
modify, display, perform, sublicense and distribute the Modifications
|
modify, display, perform, sublicense and distribute the Modifications
|
||||||
created by such Contributor (or portions thereof) either on an unmodified
|
created by such Contributor (or portions thereof) either on an unmodified
|
||||||
@@ -115,7 +121,8 @@
|
|||||||
Modifications made by that Contributor with other software (except as
|
Modifications made by that Contributor with other software (except as
|
||||||
part of the Contributor Version) or other devices; or 4) under Patent Claims
|
part of the Contributor Version) or other devices; or 4) under Patent Claims
|
||||||
infringed by Covered Code in the absence of Modifications made by that
|
infringed by Covered Code in the absence of Modifications made by that
|
||||||
Contributor.</P></UL></UL>
|
Contributor.</P></UL>
|
||||||
|
</UL>
|
||||||
<P><BR><B>3. Distribution Obligations.</B>
|
<P><BR><B>3. Distribution Obligations.</B>
|
||||||
<UL><B>3.1. Application of License.</B> <BR>The Modifications which You create
|
<UL><B>3.1. Application of License.</B> <BR>The Modifications which You create
|
||||||
or to which You contribute are governed by the terms of this License,
|
or to which You contribute are governed by the terms of this License,
|
||||||
@@ -168,7 +175,8 @@
|
|||||||
<UL>Contributor represents that, except as disclosed pursuant to Section
|
<UL>Contributor represents that, except as disclosed pursuant to Section
|
||||||
3.4(a) above, Contributor believes that Contributor's Modifications are
|
3.4(a) above, Contributor believes that Contributor's Modifications are
|
||||||
Contributor's original creation(s) and/or Contributor has sufficient rights
|
Contributor's original creation(s) and/or Contributor has sufficient rights
|
||||||
to grant the rights conveyed by this License.</UL>
|
to grant the rights conveyed by this License.
|
||||||
|
</UL>
|
||||||
<P><BR><B>3.5. Required Notices.</B> <BR>You must duplicate the notice in
|
<P><BR><B>3.5. Required Notices.</B> <BR>You must duplicate the notice in
|
||||||
<B>Exhibit A</B> in each file of the Source Code. If it is not possible
|
<B>Exhibit A</B> in each file of the Source Code. If it is not possible
|
||||||
to put such notice in a particular Source Code file due to its structure, then
|
to put such notice in a particular Source Code file due to its structure, then
|
||||||
@@ -210,7 +218,8 @@
|
|||||||
Covered Code with other code not governed by the terms of this License and
|
Covered Code with other code not governed by the terms of this License and
|
||||||
distribute the Larger Work as a single product. In such a case, You must make
|
distribute the Larger Work as a single product. In such a case, You must make
|
||||||
sure the requirements of this License are fulfilled for the Covered
|
sure the requirements of this License are fulfilled for the Covered
|
||||||
Code.</P></UL><B>4. Inability to Comply Due to Statute or Regulation.</B>
|
Code.</P></UL>
|
||||||
|
<B>4. Inability to Comply Due to Statute or Regulation.</B>
|
||||||
<UL>If it is impossible for You to comply with any of the terms of this
|
<UL>If it is impossible for You to comply with any of the terms of this
|
||||||
License with respect to some or all of the Covered Code due to statute,
|
License with respect to some or all of the Covered Code due to statute,
|
||||||
judicial order, or regulation then You must: (a) comply with the terms of this
|
judicial order, or regulation then You must: (a) comply with the terms of this
|
||||||
@@ -219,10 +228,14 @@ Code.</P></UL><B>4. Inability to Comply Due to Statute or Regulation.</B>
|
|||||||
described in Section <B>3.4</B> and must be included with all distributions of
|
described in Section <B>3.4</B> and must be included with all distributions of
|
||||||
the Source Code. Except to the extent prohibited by statute or regulation,
|
the Source Code. Except to the extent prohibited by statute or regulation,
|
||||||
such description must be sufficiently detailed for a recipient of ordinary
|
such description must be sufficiently detailed for a recipient of ordinary
|
||||||
skill to be able to understand it.</UL><B>5. Application of this License.</B>
|
skill to be able to understand it.
|
||||||
|
</UL>
|
||||||
|
<B>5. Application of this License.</B>
|
||||||
<UL>This License applies to code to which the Initial Developer has attached
|
<UL>This License applies to code to which the Initial Developer has attached
|
||||||
the notice in <B>Exhibit A</B> and to related Covered Code.</UL><B>6. Versions
|
the notice in <B>Exhibit A</B> and to related Covered Code.
|
||||||
of the License.</B>
|
</UL>
|
||||||
|
<B>6. Versions
|
||||||
|
of the License.</B>
|
||||||
<UL><B>6.1. New Versions</B>. <BR>Netscape Communications Corporation
|
<UL><B>6.1. New Versions</B>. <BR>Netscape Communications Corporation
|
||||||
(''Netscape'') may publish revised and/or new versions of the License from
|
(''Netscape'') may publish revised and/or new versions of the License from
|
||||||
time to time. Each version will be given a distinguishing version number.
|
time to time. Each version will be given a distinguishing version number.
|
||||||
@@ -242,8 +255,9 @@ of the License.</B>
|
|||||||
terms which differ from the Mozilla Public License and Netscape Public
|
terms which differ from the Mozilla Public License and Netscape Public
|
||||||
License. (Filling in the name of the Initial Developer, Original Code or
|
License. (Filling in the name of the Initial Developer, Original Code or
|
||||||
Contributor in the notice described in <B>Exhibit A</B> shall not of
|
Contributor in the notice described in <B>Exhibit A</B> shall not of
|
||||||
themselves be deemed to be modifications of this License.)</P></UL><B>7.
|
themselves be deemed to be modifications of this License.)</P></UL>
|
||||||
DISCLAIMER OF WARRANTY.</B>
|
<B>7.
|
||||||
|
DISCLAIMER OF WARRANTY.</B>
|
||||||
<UL>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT
|
<UL>COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT
|
||||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
|
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
|
||||||
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
|
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
|
||||||
@@ -253,7 +267,9 @@ DISCLAIMER OF WARRANTY.</B>
|
|||||||
OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
|
OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
|
||||||
CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
||||||
LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
|
LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
|
||||||
DISCLAIMER.</UL><B>8. TERMINATION.</B>
|
DISCLAIMER.
|
||||||
|
</UL>
|
||||||
|
<B>8. TERMINATION.</B>
|
||||||
<UL><B>8.1. </B>This License and the rights granted hereunder will
|
<UL><B>8.1. </B>This License and the rights granted hereunder will
|
||||||
terminate automatically if You fail to comply with terms herein and fail to
|
terminate automatically if You fail to comply with terms herein and fail to
|
||||||
cure such breach within 30 days of becoming aware of the breach. All
|
cure such breach within 30 days of becoming aware of the breach. All
|
||||||
@@ -292,8 +308,9 @@ DISCLAIMER OF WARRANTY.</B>
|
|||||||
<P><B>8.4.</B> In the event of termination under Sections 8.1 or 8.2
|
<P><B>8.4.</B> In the event of termination under Sections 8.1 or 8.2
|
||||||
above, all end user license agreements (excluding distributors and
|
above, all end user license agreements (excluding distributors and
|
||||||
resellers) which have been validly granted by You or any distributor hereunder
|
resellers) which have been validly granted by You or any distributor hereunder
|
||||||
prior to termination shall survive termination.</P></UL><B>9. LIMITATION OF
|
prior to termination shall survive termination.</P></UL>
|
||||||
LIABILITY.</B>
|
<B>9. LIMITATION OF
|
||||||
|
LIABILITY.</B>
|
||||||
<UL>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
<UL>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
||||||
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
|
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
|
||||||
OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY
|
OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY
|
||||||
@@ -306,14 +323,18 @@ LIABILITY.</B>
|
|||||||
INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
|
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
|
||||||
LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
|
LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND
|
||||||
LIMITATION MAY NOT APPLY TO YOU.</UL><B>10. U.S. GOVERNMENT END USERS.</B>
|
LIMITATION MAY NOT APPLY TO YOU.
|
||||||
|
</UL>
|
||||||
|
<B>10. U.S. GOVERNMENT END USERS.</B>
|
||||||
<UL>The Covered Code is a ''commercial item,'' as that term is defined in 48
|
<UL>The Covered Code is a ''commercial item,'' as that term is defined in 48
|
||||||
C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and
|
C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and
|
||||||
''commercial computer software documentation,'' as such terms are used in 48
|
''commercial computer software documentation,'' as such terms are used in 48
|
||||||
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
|
C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
|
||||||
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
|
227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
|
||||||
acquire Covered Code with only those rights set forth herein.</UL><B>11.
|
acquire Covered Code with only those rights set forth herein.
|
||||||
MISCELLANEOUS.</B>
|
</UL>
|
||||||
|
<B>11.
|
||||||
|
MISCELLANEOUS.</B>
|
||||||
<UL>This License represents the complete agreement concerning subject matter
|
<UL>This License represents the complete agreement concerning subject matter
|
||||||
hereof. If any provision of this License is held to be unenforceable, such
|
hereof. If any provision of this License is held to be unenforceable, such
|
||||||
provision shall be reformed only to the extent necessary to make it
|
provision shall be reformed only to the extent necessary to make it
|
||||||
@@ -329,18 +350,23 @@ MISCELLANEOUS.</B>
|
|||||||
Nations Convention on Contracts for the International Sale of Goods is
|
Nations Convention on Contracts for the International Sale of Goods is
|
||||||
expressly excluded. Any law or regulation which provides that the language of
|
expressly excluded. Any law or regulation which provides that the language of
|
||||||
a contract shall be construed against the drafter shall not apply to this
|
a contract shall be construed against the drafter shall not apply to this
|
||||||
License.</UL><B>12. RESPONSIBILITY FOR CLAIMS.</B>
|
License.
|
||||||
|
</UL>
|
||||||
|
<B>12. RESPONSIBILITY FOR CLAIMS.</B>
|
||||||
<UL>As between Initial Developer and the Contributors, each party is
|
<UL>As between Initial Developer and the Contributors, each party is
|
||||||
responsible for claims and damages arising, directly or indirectly, out of its
|
responsible for claims and damages arising, directly or indirectly, out of its
|
||||||
utilization of rights under this License and You agree to work with Initial
|
utilization of rights under this License and You agree to work with Initial
|
||||||
Developer and Contributors to distribute such responsibility on an equitable
|
Developer and Contributors to distribute such responsibility on an equitable
|
||||||
basis. Nothing herein is intended or shall be deemed to constitute any
|
basis. Nothing herein is intended or shall be deemed to constitute any
|
||||||
admission of liability.</UL><B>13. MULTIPLE-LICENSED CODE.</B>
|
admission of liability.
|
||||||
|
</UL>
|
||||||
|
<B>13. MULTIPLE-LICENSED CODE.</B>
|
||||||
<UL>Initial Developer may designate portions of the Covered Code as
|
<UL>Initial Developer may designate portions of the Covered Code as
|
||||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||||
Developer permits you to utilize portions of the Covered Code under Your
|
Developer permits you to utilize portions of the Covered Code under Your
|
||||||
choice of the MPL or the alternative licenses, if any, specified by the
|
choice of the MPL or the alternative licenses, if any, specified by the
|
||||||
Initial Developer in the file described in Exhibit A.</UL>
|
Initial Developer in the file described in Exhibit A.
|
||||||
|
</UL>
|
||||||
<P><BR><B>EXHIBIT A -Mozilla Public License.</B>
|
<P><BR><B>EXHIBIT A -Mozilla Public License.</B>
|
||||||
<UL>The contents of this file are subject to the Mozilla Public License
|
<UL>The contents of this file are subject to the Mozilla Public License
|
||||||
Version 1.1 (the "License"); you may not use this file except in compliance
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
@@ -356,24 +382,24 @@ MISCELLANEOUS.</B>
|
|||||||
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
|
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
|
||||||
<P>Contributor(s): __Bill Burke, Jason T. Greene______________.
|
<P>Contributor(s): __Bill Burke, Jason T. Greene______________.
|
||||||
|
|
||||||
<p>Alternatively, the contents of this software may be used under the
|
<p>Alternatively, the contents of this software may be used under the
|
||||||
terms of the GNU Lesser General Public License Version 2.1 or later
|
terms of the GNU Lesser General Public License Version 2.1 or later
|
||||||
(the "LGPL"), or the Apache License Version 2.0 (the "AL"),
|
(the "LGPL"), or the Apache License Version 2.0 (the "AL"),
|
||||||
in which case the provisions of the LGPL or the AL are applicable
|
in which case the provisions of the LGPL or the AL are applicable
|
||||||
instead of those above. If you wish to allow use of your version of
|
instead of those above. If you wish to allow use of your version of
|
||||||
this software only under the terms of either the LGPL or the AL, and not to allow others to
|
this software only under the terms of either the LGPL or the AL, and not to allow others to
|
||||||
use your version of this software under the terms of the MPL, indicate
|
use your version of this software under the terms of the MPL, indicate
|
||||||
your decision by deleting the provisions above and replace them with
|
your decision by deleting the provisions above and replace them with
|
||||||
the notice and other provisions required by the LGPL or the AL. If you do not
|
the notice and other provisions required by the LGPL or the AL. If you do not
|
||||||
delete the provisions above, a recipient may use your version of this
|
delete the provisions above, a recipient may use your version of this
|
||||||
software under the terms of any one of the MPL, the LGPL or the AL.</p>
|
software under the terms of any one of the MPL, the LGPL or the AL.</p>
|
||||||
|
|
||||||
<p>If you obtain this software as part of JBoss,
|
<p>If you obtain this software as part of JBoss,
|
||||||
the contents of this software may be used under only the terms of the LGPL.
|
the contents of this software may be used under only the terms of the LGPL.
|
||||||
To use them under the MPL, you must obtain a separate package including only
|
To use them under the MPL, you must obtain a separate package including only
|
||||||
Javassist but not the other part of JBoss.</p>
|
Javassist but not the other part of JBoss.</p>
|
||||||
|
|
||||||
<p>All the contributors to the original source tree have agreed to the original
|
<p>All the contributors to the original source tree have agreed to the original
|
||||||
license term described above.</p>
|
license term described above.</p>
|
||||||
|
|
||||||
<P></P></UL>
|
<P></P></UL>
|
||||||
|
|||||||
Reference in New Issue
Block a user