Binary Search Tree
8 years ago
Copy-pasted from: https://forums.oracle.com/forums/thread.jspa?messageID=10078419
public class Gobbler implements Runnable {
private PrintStream out;
private String message;
private BufferedReader reader;
public Gobbler(InputStream inputStream, PrintStream out) {
this.reader = new BufferedReader(new InputStreamReader(inputStream));
this.out = out;
this.message = ( null != message ) ? message : "";
}
public void run() {
String line;
try {
while (null != (line = this.reader.readLine())) {
out.println(message + line);
}
this.reader.close();
} catch (IOException e) {
System.err.println("ERROR: " + e.getMessage());
}
}
}
public class PowerConsole {
private ProcessBuilder pb;
Process p;
boolean closed = false;
PrintWriter writer;
PowerConsole(String[] commandList) {
pb = new ProcessBuilder(commandList);
try {
p = pb.start();
} catch (IOException ex) {
throw new RuntimeException("Cannot execute PowerShell.exe", ex);
}
writer = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true);
Gobbler outGobbler = new Gobbler(p.getInputStream(), System.out);
Gobbler errGobbler = new Gobbler(p.getErrorStream(), System.out);
Thread outThread = new Thread(outGobbler);
Thread errThread = new Thread(errGobbler);
outThread.start();
errThread.start();
}
public void execute(String command) {
if (!closed) {
writer.println(command);
writer.flush();
} else {
throw new IllegalStateException("Power console has ben closed.");
}
}
public void close() {
try {
execute("exit");
p.waitFor();
} catch (InterruptedException ex) {
}
}
public static void main(String[] args) throws IOException, InterruptedException {
/* PowerConsole pc = new PowerConsole(new String[]{"/bin/bash"});
PowerConsole pc = new PowerConsole(new String[]{"/bin/bash"});
pc.execute("pwd");
pc.execute("ls");
pc.execute("cd /");
pc.execute("ls -l");
pc.execute("cd ~");
pc.execute("find . -name 'test.*' -print");
pc.close();
*/
// PowerConsole pc = new PowerConsole(new String[]{"cmd.exe"});
PowerConsole pc = new PowerConsole(new String[]{"powershell.exe", "-NoExit", "-Command", "-"});
System.out.println("========== Executing dir");
pc.execute("dir");
System.out.println("========== Executing cd\\");
pc.execute("cd \\"); Thread.sleep(2000);
System.out.println("========== Executing dir");
pc.execute("dir"); Thread.sleep(2000);
System.out.println("========== Executing cd \\temp");
pc.execute("cd \\temp"); Thread.sleep(2000);
System.out.println("========== Executing dir");
pc.execute("dir"); Thread.sleep(2000);
System.out.println("========== Executing cd \\bubba");
pc.execute("cd \\bubba"); Thread.sleep(2000);
System.out.println("========== Exiting .... bye.");
pc.close();
}
}
C:\temp>java -jar PowerShell.jar
========== Executing dir
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2012-01-09 01:16 5290 PowerShell.jar
========== Executing cd\
========== Executing dir
Directory: Microsoft.PowerShell.Core\FileSystem::C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2012-01-08 02:56 61587b977687a6e22fbe
d---- 2011-12-14 03:19 Documents and Settings
d---- 2011-12-15 00:05 oraclexe
d-r-- 2012-01-08 03:44 Program Files
d---- 2012-01-05 19:59 sqldeveloper
d---- 2012-01-09 01:15 temp
d---- 2012-01-09 01:13 WINDOWS
-a--- 2011-12-14 03:12 0 AUTOEXEC.BAT
-a--- 2011-12-14 03:12 0 CONFIG.SYS
========== Executing cd \temp
========== Executing dir
Directory: Microsoft.PowerShell.Core\FileSystem::C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2012-01-09 01:16 5290 PowerShell.jar
========== Executing cd \bubba
Set-Location : Cannot find path 'C:\bubba' because it does not exist.
At line:1 char:3
+ cd <<<< \bubba
========== Exiting .... bye.
C:\temp>
package com.mkyong.common; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class App { public static void main( String[] args ) { Properties prop = new Properties(); try { //set the properties value prop.setProperty("database", "localhost"); prop.setProperty("dbuser", "mkyong"); prop.setProperty("dbpassword", "password"); //save properties to project root folder prop.store(new FileOutputStream("config.properties"), null); } catch (IOException ex) { ex.printStackTrace(); } } }
package com.mkyong.common; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; public class App { public static void main( String[] args ) { Properties prop = new Properties(); try { //load a properties file prop.load(new FileInputStream("config.properties")); //get the property value and print it out System.out.println(prop.getProperty("database")); System.out.println(prop.getProperty("dbuser")); System.out.println(prop.getProperty("dbpassword")); } catch (IOException ex) { ex.printStackTrace(); } } }
package com.mkyong.common; import java.io.FileInputStream; import java.io.IOException; import java.utilutil.Properties; public class App { public static void main( String[] args ) { Properties prop = new Properties(); try { //load a properties file from class path, inside static method prop.load(App.class.getClassLoader().getResourceAsStream("config.properties");)); //get the property value and print it out System.out.println(prop.getProperty("database")); System.out.println(prop.getProperty("dbuser")); System.out.println(prop.getProperty("dbpassword")); } catch (IOException ex) { ex.printStackTrace(); } } }
public class Base64 { private static final String base64code = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789" + "+/"; private static final int splitLinesAt = 76; public static byte[] zeroPad(int length, byte[] bytes) { byte[] padded = new byte[length]; // initialized to zero by JVM System.arraycopy(bytes, 0, padded, 0, bytes.length); return padded; } public static String encode(String string) { String encoded = ""; byte[] stringArray; try { stringArray = string.getBytes("UTF-8"); // use appropriate encoding string! } catch (Exception ignored) { stringArray = string.getBytes(); // use locale default rather than croak } // determine how many padding bytes to add to the output int paddingCount = (3 - (stringArray.length % 3)) % 3; // add any necessary padding to the input stringArray = zeroPad(stringArray.length + paddingCount, stringArray); // process 3 bytes at a time, churning out 4 output bytes // worry about CRLF insertions later for (int i = 0; i < stringArray.length; i += 3) { int j = ((stringArray[i] & 0xff) << 16) + ((stringArray[i + 1] & 0xff) << 8) + (stringArray[i + 2] & 0xff); encoded = encoded + base64code.charAt((j >> 18) & 0x3f) + base64code.charAt((j >> 12) & 0x3f) + base64code.charAt((j >> 6) & 0x3f) + base64code.charAt(j & 0x3f); } // replace encoded padding nulls with "=" return splitLines(encoded.substring(0, encoded.length() - paddingCount) + "==".substring(0, paddingCount)); } public static String splitLines(String string) { String lines = ""; for (int i = 0; i < string.length(); i += splitLinesAt) { lines += string.substring(i, Math.min(string.length(), i + splitLinesAt)); lines += "\r\n"; } return lines; } public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.err.println("encoding \"" + args[i] + "\""); System.out.println(encode(args[i])); } } }
Copied from blog: http://www.java-samples.com/showtutorial.php?tutorialid=1343
import java.io.*;
import java.net.*;
import java.security.Security.*;
import com.sun.net.ssl.*;
import com.sun.*;
public class sslpost {
public static void main(String[] args){
String cuki=new String();
try {
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
URL url = new URL("https://www.sunpage.com.sg/sso/login.asp");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setFollowRedirects(true);
String query = "UserID=" + URLEncoder.encode("williamalex@hotmail.com");
query += "&";
query += "password=" + URLEncoder.encode("password");
query += "&";
query += "UserChk=" + URLEncoder.encode("Bidder");
// This particular website I was working with, required that the referrel URL should be from this URL
// as specified the previousURL. If you do not have such requirement you may omit it.
query += "&";
query += "PreviousURL=" + URLEncoder.encode("https://www.sunpage.com.sg/sso/login.asp");
//connection.setRequestProperty("Accept-Language","it");
//connection.setRequestProperty("Accept", "application/cfm, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, ///");
//connection.setRequestProperty("Accept-Encoding","gzip");
connection.setRequestProperty("Content-length",String.valueOf (query.length()));
connection.setRequestProperty("Content-Type","application/x-www- form-urlencoded");
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");
// open up the output stream of the connection
DataOutputStream output = new DataOutputStream( connection.getOutputStream() );
// write out the data
int queryLength = query.length();
output.writeBytes( query );
//output.close();
System.out.println("Resp Code:"+connection.getResponseCode());
System.out.println("Resp Message:"+ connection.getResponseMessage());
// get ready to read the response from the cgi script
DataInputStream input = new DataInputStream( connection.getInputStream() );
// read in each character until end-of-stream is detected
for( int c = input.read(); c != -1; c = input.read() )
System.out.print( (char)c );
input.close();
}
catch(Exception e)
{
System.out.println( "Something bad just happened." );
System.out.println( e );
e.printStackTrace();
}
}
}
01.
package
com.veerasundar;
02.
03.
public
class
Context {
04.
05.
private
String transactionId =
null
;
06.
07.
/* getters and setters here */
08.
09.
}
01.
package
com.veerasundar;
02.
03.
/**
04.
* this class acts as a container to our thread local variables.
05.
* @author vsundar
06.
*
07.
*/
08.
public
class
MyThreadLocal {
09.
10.
public
static
final
ThreadLocal userThreadLocal =
new
ThreadLocal();
11.
12.
public
static
void
set(Context user) {
13.
userThreadLocal.set(user);
14.
}
15.
16.
public
static
void
unset() {
17.
userThreadLocal.remove();
18.
}
19.
20.
public
static
Context get() {
21.
return
userThreadLocal.get();
22.
}
23.
}
01.
package
com.veerasundar;
02.
03.
public
class
ThreadLocalDemo
extends
Thread {
04.
05.
public
static
void
main(String args[]) {
06.
07.
Thread threadOne =
new
ThreadLocalDemo();
08.
threadOne.start();
09.
10.
Thread threadTwo =
new
ThreadLocalDemo();
11.
threadTwo.start();
12.
}
13.
14.
@Override
15.
public
void
run() {
16.
// sample code to simulate transaction id
17.
Context context =
new
Context();
18.
context.setTransactionId(getName());
19.
20.
// set the context object in thread local to access it somewhere else
21.
MyThreadLocal.set(context);
22.
23.
/* note that we are not explicitly passing the transaction id */
24.
new
BusinessService().businessMethod();
25.
MyThreadLocal.unset();
26.
27.
}
28.
}
01.
package
com.veerasundar;
02.
03.
public
class
BusinessService {
04.
05.
public
void
businessMethod() {
06.
// get the context from thread local
07.
Context context = MyThreadLocal.get();
08.
System.out.println(context.getTransactionId());
09.
}
10.
}