Skip to content

Commit

Permalink
Further work on RunJava (Issue #35)
Browse files Browse the repository at this point in the history
  • Loading branch information
jesse-gallagher committed Mar 2, 2020
1 parent 7d61991 commit aa3649b
Show file tree
Hide file tree
Showing 14 changed files with 298 additions and 390 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,29 @@
<name>Domino Open Liberty Runtime Admin NSF Adapter</name>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.openntf.openliberty.domino</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.hcl.xsp.p2</groupId>
<artifactId>com.ibm.notes.java.api.win32.linux</artifactId>
<classifier>Notes</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.openntf.openliberty.domino</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>.</directory>
<includes>
<include>fragment.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>

<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Export-Package/>
<Fragment-Host>org.openntf.openliberty.domino</Fragment-Host>
</instructions>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
<resource>
<directory>.</directory>
<includes>
<include>plugin.xml</include>
<include>fragment.xml</include>
</includes>
</resource>
</resources>
Expand All @@ -70,6 +70,7 @@
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Require-Bundle>org.eclipse.equinox.http.servlet</Require-Bundle>
<Export-Package/>
<Fragment-Host>org.openntf.openliberty.domino</Fragment-Host>
</instructions>
</configuration>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,174 +15,33 @@
*/
package org.openntf.openliberty.domino.httpservice;

import java.io.PrintStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;

import org.openntf.openliberty.domino.config.RuntimeProperties;
import org.openntf.openliberty.domino.ext.LoggerPrintStream;
import org.openntf.openliberty.domino.util.commons.ibm.StringUtil;

import com.ibm.commons.util.io.NullOutputStream;
import com.ibm.domino.napi.c.Os;

public class DominoLogPrintStream extends PrintStream {
private final String prefix;
public class DominoLogPrintStream extends LoggerPrintStream {

public DominoLogPrintStream() {
super(new NullOutputStream());
this.prefix = RuntimeProperties.instance.getPrefix();
}

private ThreadLocal<StringBuilder> buffer = ThreadLocal.withInitial(StringBuilder::new);
private static final Pattern LINE_BREAK = Pattern.compile("[\\r\\n]+"); //$NON-NLS-1$
// TODO non-US support
private static final ThreadLocal<DateFormat> DT_FORMAT = ThreadLocal.withInitial(() -> new SimpleDateFormat("MM/dd/yyy hh:mm:ss a")); //$NON-NLS-1$

@Override
public void println(String paramString) {
if(StringUtil.isEmpty(paramString)) {
println();
return;
}

String message = null;
if(buffer.get().length() > 0) {
message = buffer.get().toString() + StringUtil.toString(paramString);
buffer.get().setLength(0);
} else {
message = StringUtil.toString(paramString);
}

_lines(message);
}

@Override
public void println() {
flushBuffer();
}

@Override
public void println(Object paramObject) {
println(StringUtil.toString(paramObject));
}
@Override
public void println(boolean paramBoolean) {
println(StringUtil.toString(paramBoolean));
}
@Override
public void println(char paramChar) {
println(StringUtil.toString(paramChar));
}
@Override
public void println(char[] paramArrayOfChar) {
println(new String(paramArrayOfChar));
}
@Override
public void println(double paramDouble) {
println(StringUtil.toString(paramDouble));
}
@Override
public void println(float paramFloat) {
println(StringUtil.toString(paramFloat));
}
@Override
public void println(int paramInt) {
println(StringUtil.toString(paramInt));
}
@Override
public void println(long paramLong) {
println(StringUtil.toString(paramLong));
}


@Override
public void print(String paramString) {
if(StringUtil.isEmpty(paramString)) {
return;
}

String[] pieces = LINE_BREAK.split(paramString);
if(pieces.length > 0) {
// Print out any whole strings, then append a remainder to the buffer
for(int i = 0; i < pieces.length-1; i++) {
_line(pieces[i]);
}

buffer.get().append(pieces[pieces.length-1]);
}
}
@Override
public void print(boolean paramBoolean) {
buffer.get().append(paramBoolean);
}
@Override
public void print(char[] paramArrayOfChar) {
buffer.get().append(paramArrayOfChar);
}
@Override
public void print(long paramLong) {
buffer.get().append(paramLong);
}
@Override
public void print(int paramInt) {
buffer.get().append(paramInt);
}
@Override
public void print(char paramChar) {
if(paramChar == '\n' || paramChar == '\r') {
flushBuffer();
} else {
buffer.get().append(paramChar);
}
}
@Override
public void print(double paramDouble) {
buffer.get().append(paramDouble);
}
@Override
public void print(float paramFloat) {
buffer.get().append(paramFloat);
}
@Override
public void print(Object paramObject) {
print(StringUtil.toString(paramObject));
}

/* (non-Javadoc)
* @see java.io.PrintStream#flush()
*/
@Override
public void flush() {
flushBuffer();
}

/* ******************************************************************************
* Internal utility methods
********************************************************************************/

private void _lines(String message) {
String[] pieces = LINE_BREAK.split(message);
if(pieces.length > 0) {
for(int i = 0; i < pieces.length; i++) {
_line(pieces[i]);
}
}
}

private void _line(String message) {
protected void _line(String message) {
String prefix = getPrefix();
String time = DT_FORMAT.get().format(new Date());
if(StringUtil.isEmpty(prefix)) {
Os.OSConsoleWrite(time + " " + StringUtil.toString(message).replace("%", "%%") + '\n'); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
} else {
Os.OSConsoleWrite(time + " " + prefix + StringUtil.toString(message).replace("%", "%%") + '\n'); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
}
private void flushBuffer() {
if(buffer.get().length() > 0) {
_lines(buffer.get().toString());
buffer.get().setLength(0);
Os.OSConsoleWrite(time + " " + prefix + ": " + StringUtil.toString(message).replace("%", "%%") + '\n'); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.openntf.openliberty.domino.httpservice.DominoLogPrintStream
Loading

0 comments on commit aa3649b

Please sign in to comment.