|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectphp.java.bridge.JavaBridge
public class JavaBridge
This is the main class for the PHP/Java Bridge. It starts the standalone backend, listenes for protocol requests and handles CreateInstance, GetSetProp and Invoke requests. Supported protocol modes are INET (listens on all interfaces), INET_LOCAL (loopback only) and UNIX (uses a local, invisible communication channel, requires natcJavaBridge.so). Furthermore it contains utility methods which can be used by clients.
Example:
java -Djava.awt.headless=true JavaBridge.jar INET_LOCAL:9676 5 bridge.log &
telnet localhost 9676
<Invoke value="" method=setJarLibraryPath" predicate="Instance" id="0">
<String value="j2ee.jar"/>
</Invoke>
<CreateInstance value="java.lang.Long" predicate="Instance" id="0">
<Long value="6"/>
</CreateInstance>
<Invoke value="1" method="toString" predicate="Invoke" id="0">
</Invoke>
Nested Class Summary | |
---|---|
static class |
JavaBridge.SessionFactory
|
Field Summary | |
---|---|
JavaBridgeClassLoader |
cl
For internal use only. |
static JavaBridge.SessionFactory |
defaultSessionFactory
For internal use only. |
java.io.InputStream |
in
For internal use only. |
java.lang.Throwable |
lastException
For PHP4's last_exception_get. |
static short |
load
For internal use only. |
int |
logLevel
For internal use only. |
java.io.OutputStream |
out
For internal use only. |
Request |
request
For internal use only. |
Constructor Summary | |
---|---|
JavaBridge(java.io.InputStream in,
java.io.OutputStream out)
|
Method Summary | |
---|---|
static int |
accept(int socket)
|
static ISocketFactory |
bind(java.lang.String sockname)
Create a new server socket and return it. |
static java.lang.String |
classDebugDescription(java.lang.Class cls)
|
void |
CreateObject(java.lang.String name,
boolean createInstance,
java.lang.Object[] args,
Response response)
Create an new instance of a given class |
int |
deserialize(java.lang.String serialID,
int timeout)
Deserialize serialID |
PhpMap |
getPhpMap(java.lang.Object value)
Return map for the value (PHP 5 only) |
ISession |
getSession(java.lang.String name,
boolean clientIsNew,
int timeout)
Return a session handle shared among all JavaBridge instances. |
void |
GetSetProp(java.lang.Object object,
java.lang.String prop,
java.lang.Object[] args,
Response response)
Get or Set a property |
java.lang.Object |
getValues(java.lang.Object ob)
for PHP5: convert Map or Collection into a PHP array, sends the entire Map or Collection to the client. |
static void |
init(java.lang.String[] s)
Global init |
java.lang.String |
inspect(java.lang.Object object)
For internal use only. |
static boolean |
InstanceOf(java.lang.Object ob,
java.lang.Object c)
|
void |
Invoke(java.lang.Object object,
java.lang.String method,
java.lang.Object[] args,
Response response)
Invoke a method on a given object |
void |
logDebug(java.lang.String msg)
|
void |
logError(java.lang.String msg)
|
void |
logFatal(java.lang.String msg)
|
static void |
logInvoke(java.lang.Object obj,
java.lang.String method,
java.lang.Object[] args)
|
void |
logMessage(java.lang.String msg)
|
static void |
main(java.lang.String[] s)
Start the PHP/Java Bridge. |
java.lang.Object |
makeClosure(long object)
Create a dynamic proxy proxy for calling PHP code. Example: java_closure(); java_closure($this); |
java.lang.Object |
makeClosure(long object,
java.util.Map names)
Create a dynamic proxy proxy for calling PHP code. Example: java_closure($this, $map); |
java.lang.Object |
makeClosure(long object,
java.util.Map names,
java.lang.Class[] interfaces)
Create a dynamic proxy proxy for calling PHP code. Example: java_closure($this, $map, $interfaces); |
java.lang.Object |
makeClosure(long object,
java.lang.String name)
Create a dynamic proxy proxy for calling PHP code. Example: java_closure($this, "clickMe"); |
java.lang.Object |
makeClosure(long object,
java.lang.String name,
java.lang.Class[] interfaces)
Create a dynamic proxy proxy for calling PHP code. Example: java_closure($this, "clickMe", $interfaces); |
static java.lang.String |
objectDebugDescription(java.lang.Object obj)
|
static java.lang.String |
ObjectToString(java.lang.Object ob)
|
static boolean |
openLog(java.lang.String logFile)
Open a system log file with the correct (Unix) permissions. |
void |
printStackTrace(java.lang.Throwable t)
Print a stack trace to the log file. |
void |
reset()
Reset the global caches of the bridge. |
void |
run()
Communication with client in a new thread |
static void |
sclose(int peer)
Close a local socket. |
java.lang.String |
serialize(java.lang.Object obj,
int timeout)
Serialize the object obj and return the serial id. |
void |
setFileEncoding(java.lang.String fileEncoding)
|
void |
setJarLibraryPath(java.lang.String path,
java.lang.String extensionDir)
Append the path to the current library path Examples: setJarLibPath(";file:///tmp/test.jar;file:///tmp/my.jar"); setJarLibPath("|file:c:/t.jar|http://.../a.jar|jar:file:///tmp/x.jar!/"); |
void |
setLibraryPath(java.lang.String _path,
java.lang.String extensionDir)
Set the library path for ECMA dll's |
void |
setSessionFactory(JavaBridge.SessionFactory sessionFactory)
This method sets a new session factory. |
static int |
startNative(int logLevel,
int backlog,
java.lang.String sockname)
Create a local ("Unix domain") socket for sockname and return the handle. |
void |
warn(java.lang.String msg)
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public java.lang.Throwable lastException
public JavaBridgeClassLoader cl
public java.io.InputStream in
public java.io.OutputStream out
public int logLevel
public Request request
public static short load
public static final JavaBridge.SessionFactory defaultSessionFactory
Constructor Detail |
---|
public JavaBridge(java.io.InputStream in, java.io.OutputStream out)
Method Detail |
---|
public static boolean openLog(java.lang.String logFile)
logFile
- The log file or "" for standard out
public static int startNative(int logLevel, int backlog, java.lang.String sockname)
bridge
- The bridge instance.logLevel
- The current log level.backlog
- The current backlog.sockname
- The sockename.
public static int accept(int socket)
public static void sclose(int peer)
peer
- The socket handlepublic void run()
run
in interface java.lang.Runnable
public static ISocketFactory bind(java.lang.String sockname) throws java.lang.Exception
sockname
- the socket name
java.lang.Exception
public static void init(java.lang.String[] s)
s
- an array of [socketname, level, logFile]public static void main(java.lang.String[] s)
java -Djava.awt.headless=true -jar JavaBridge.jar INET:9656 5 /var/log/php-java-bridge.log
s
- an array of [socketname, level, logFile]public void printStackTrace(java.lang.Throwable t)
t
- the throwablepublic void logDebug(java.lang.String msg)
public void logFatal(java.lang.String msg)
public void logError(java.lang.String msg)
public void logMessage(java.lang.String msg)
public void warn(java.lang.String msg)
public void CreateObject(java.lang.String name, boolean createInstance, java.lang.Object[] args, Response response)
public static void logInvoke(java.lang.Object obj, java.lang.String method, java.lang.Object[] args)
public void Invoke(java.lang.Object object, java.lang.String method, java.lang.Object[] args, Response response)
public static java.lang.String objectDebugDescription(java.lang.Object obj)
public static java.lang.String classDebugDescription(java.lang.Class cls)
public void GetSetProp(java.lang.Object object, java.lang.String prop, java.lang.Object[] args, Response response)
public java.lang.Object getValues(java.lang.Object ob)
public PhpMap getPhpMap(java.lang.Object value)
public void setJarLibraryPath(java.lang.String path, java.lang.String extensionDir)
path
- A file or url list, usually separated by ';'extensionDir
- The php extension directory.public void setLibraryPath(java.lang.String _path, java.lang.String extensionDir)
public java.lang.String inspect(java.lang.Object object)
object
- The java object
public void setFileEncoding(java.lang.String fileEncoding)
public static boolean InstanceOf(java.lang.Object ob, java.lang.Object c)
public static java.lang.String ObjectToString(java.lang.Object ob)
public ISession getSession(java.lang.String name, boolean clientIsNew, int timeout)
ISession
public java.lang.Object makeClosure(long object, java.util.Map names)
object
- the PHP environment (the php "class")names
- maps java to php names
public java.lang.Object makeClosure(long object, java.util.Map names, java.lang.Class[] interfaces)
object
- the PHP environment (the php "class")names
- maps java to php namesinterfaces
- list of interfaces which the PHP environment must implement
public java.lang.Object makeClosure(long object, java.lang.String name)
object
- the PHP environment (the php "class")name
- maps all java names to this php namepublic java.lang.Object makeClosure(long object, java.lang.String name, java.lang.Class[] interfaces)
object
- the PHP environment (the php "class")name
- maps all java names to this php nameinterfaces
- list of interfaces which the PHP environment must implement
public java.lang.Object makeClosure(long object)
object
- the PHP environment (the php "class")
public void reset()
public void setSessionFactory(JavaBridge.SessionFactory sessionFactory)
sessionFactory
- The sessionFactory to set.public int deserialize(java.lang.String serialID, int timeout)
serialID
- timeout
-
java.lang.IllegalArgumentException
- if serialID does not exist anymore.public java.lang.String serialize(java.lang.Object obj, int timeout)
obj
- timeout
-
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |