Mentions légales du service

Skip to content
Snippets Groups Projects
Commit acf83b7e authored by Gabriel Landais's avatar Gabriel Landais
Browse files
parent 56a443cc
No related branches found
No related tags found
No related merge requests found
Showing
with 443 additions and 129 deletions
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
xmlns:rich="http://richfaces.org/rich" xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j" template="layout/template.xhtml"> xmlns:a4j="http://richfaces.org/a4j" template="layout/template.xhtml">
<ui:define name="body"> <ui:define name="body">
#{dataTableStateHolder.setDescendingOn('id')}
<a4j:form> <a4j:form>
<rich:simpleTogglePanel switchType="client" id="search" <rich:simpleTogglePanel switchType="client" id="search"
label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}"> label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}">
......
...@@ -32,6 +32,45 @@ ...@@ -32,6 +32,45 @@
<artifactId>dcm4che-tool-dcmrcv</artifactId> <artifactId>dcm4che-tool-dcmrcv</artifactId>
<version>2.0.25</version> <version>2.0.25</version>
</dependency> </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jp.digitalsensation.ihej.transactionmonitor</groupId>
<artifactId>ihej-dicom</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<!-- Clients -->
<dependency>
<groupId>apache-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>dcm4che.tool</groupId>
<artifactId>dcm4che-tool-dcmecho</artifactId>
<version>2.0.25</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi</groupId>
<artifactId>hapi-base</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.openhealthtools.openatna</groupId>
<artifactId>syslog-core</artifactId>
<version>1.2</version>
</dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
......
package org.gazelle.proxy.loadtests;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadPoolExecutor;
public class App {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(12);
List<Future<String>> futures = new ArrayList<Future<String>>();
for (int i = 0; i < 200; i++) {
final int j = i;
Callable<String> task = new Callable<String>() {
@Override
public String call() throws Exception {
System.out.println("Called " + j);
Thread.sleep(500 + Math.round(Math.random() * 500));
System.out.println("Done " + j);
return "toto" + j;
}
};
Future<String> future = threadPool.submit(task);
futures.add(future);
}
while (threadPool.getQueue().size() > 0) {
Thread.sleep(1000);
}
boolean allFinished = false;
while (!allFinished) {
allFinished = true;
for (Future<String> future : futures) {
allFinished = allFinished && future.isDone();
}
if (!allFinished) {
Thread.sleep(1000);
}
}
for (Future<String> future : futures) {
System.out.println(future.get());
}
threadPool.shutdown();
}
}
package org.gazelle.proxy.loadtests;
import java.io.IOException;
import org.dcm4che2.tool.dcmrcv.DcmRcv;
public class DcmRcvTest {
public static void main(String[] args) throws IOException {
DcmRcv dcmRcv = new DcmRcv("TEST");
dcmRcv.setAEtitle("TEST");
dcmRcv.setPort(60000);
dcmRcv.setDestination("/tmp");
dcmRcv.start();
}
}
package org.gazelle.proxy.loadtests;
import java.io.File;
import java.util.concurrent.Callable;
import org.dcm4che2.tool.dcmsnd.DcmSnd;
public class DcmSend implements Callable<String> {
public static void main(String[] args) throws Exception {
new DcmSend().call();
}
@Override
public String call() throws Exception {
// String[] args = { "DCMRCV@localhost:11112", "/opt/dicom/" };
String[] args = { "DCMRCV@192.168.20.100:10000", "/opt/dicom/" };
DcmSnd.main(args);
/*
DcmSnd dcmsnd = new DcmSnd("DCMSND");
dcmsnd.setCalledAET("DCMRCV");
dcmsnd.setRemoteHost("127.0.0.1");
dcmsnd.setRemotePort(11112);
dcmsnd.setOfferDefaultTransferSyntaxInSeparatePresentationContext(false);
dcmsnd.setSendFileRef(false);
dcmsnd.setStorageCommitment(false);
dcmsnd.setPackPDV(true);
dcmsnd.setTcpNoDelay(true);
dcmsnd.configureTransferCapability();
dcmsnd.addFile(new File("/opt/dicom/13/06F0A7FC/C16CDBC0/FCCBBAA0"));
dcmsnd.start();
dcmsnd.open();
dcmsnd.send();
dcmsnd.close();
*/
return "OK";
}
}
package org.gazelle.proxy.loadtests;
import java.io.File;
import java.util.Random;
import java.util.concurrent.Callable;
import org.dcm4che2.tool.dcmsnd.DcmSnd;
public class DicomSendMessageTask implements Callable<String> {
private String host;
private int port;
private String aeName;
private File dicomFolder;
private Random r = new Random();
public DicomSendMessageTask(String host, int port, String aeName, String dicomFolder) {
super();
this.host = host;
this.port = port;
this.aeName = aeName;
this.dicomFolder = new File(dicomFolder);
}
@Override
public String call() throws Exception {
try {
String randomFile = getRandomFile(dicomFolder);
String[] args = { aeName + "@" + host + ":" + port, randomFile };
DcmSnd.main(args);
return randomFile;
} catch (Throwable e) {
return "Failed " + e.getMessage();
}
}
private String getRandomFile(File file) {
if (file.isFile()) {
return file.getAbsolutePath();
} else {
File[] listFiles = file.listFiles();
int i = r.nextInt(listFiles.length);
File rFile = listFiles[i];
if (rFile.getName().startsWith(".")) {
return getRandomFile(dicomFolder);
} else {
return getRandomFile(rFile);
}
}
}
}
package org.gazelle.proxy.loadtests;
import java.io.OutputStream;
import ca.uhn.hl7v2.llp.MinLLPWriter;
public class HL7SendMessageTask extends SendMessageOnSocketCallable {
private static final String LINE_FEED = "\r\n";
private static final String DEFAULT_QUERY = "MSH|^~\\&|TLS_TOOL|IL_LAB_BRK|MODULAB_LIP|MODULAB|20110414121938||QBP^SLI^QBP_Q11|627498221219696500|D|2.5|||||ITA||EN"
+ LINE_FEED
+ "QPD|SLI^Specimen Labeling Instructions^IHE_LABTF|QRY68751825846181340|||PG2^OP^OID^ISO||||"
+ LINE_FEED + "RCP|I||R";
public HL7SendMessageTask(String host, int port) {
super(host, port);
}
@Override
public String writeInSocket(OutputStream outputStream) throws Exception {
MinLLPWriter mllpWriter = new MinLLPWriter(outputStream);
mllpWriter.writeMessage(DEFAULT_QUERY);
return "OK";
}
}
package org.gazelle.proxy.loadtests;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class HTTPSendMessageTask extends SendMessageOnSocketCallable {
private static final String LINE_FEED = "\r\n";
private static final String DEFAULT_QUERY = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" "
+ "xmlns:ws=\"http://ws.svs.simulators.gazelle.ihe.net/\">"
+ LINE_FEED
+ " <soapenv:Header/>"
+ LINE_FEED
+ " <soapenv:Body><ws:sendMessage></ws:sendMessage>"
+ LINE_FEED
+ " </soapenv:Body>"
+ LINE_FEED + "</soapenv:Envelope>";
public HTTPSendMessageTask(String host, int port) {
super(host, port);
}
@Override
public String writeInSocket(OutputStream outputStream) throws Exception {
// /SVSSimulator-SVSSimulator-ejb-1.0/SimulatorWS
// http://192.168.20.50:8080/SVSSimulator-SVSSimulator-ejb-1.0/SimulatorWS?wsdl
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8");
byte[] bytes = DEFAULT_QUERY.getBytes("UTF-8");
println(writer, "POST /SVSSimulator-SVSSimulator-ejb-1.0/SimulatorWS HTTP/1.1");
println(writer, "User-Agent: TLS IHE testing tools");
println(writer, "Content-Type: text/xml;charset=UTF-8");
println(writer, "Accept: */*");
println(writer, "Host: " + host + ":" + port);
println(writer, "Connection: close");
println(writer, "Content-Length: " + bytes.length);
println(writer, "");
writer.flush();
outputStream.write(bytes);
return "OK";
}
}
package org.gazelle.proxy.loadtests;
import java.io.File;
import java.io.IOException;
import jp.digitalsensation.ihej.transactionmonitor.dicom.DicomParserException;
import jp.digitalsensation.ihej.transactionmonitor.dicom.messageexchange.Association;
import jp.digitalsensation.ihej.transactionmonitor.dicom.messageexchange.DimseMessage;
import jp.digitalsensation.ihej.transactionmonitor.dicom.messageexchange.DimseMessageParser;
import org.apache.commons.io.FileUtils;
import org.dcm4che2.data.DicomObject;
import org.dcm4che2.io.DicomInputStream;
public class LoadDcm {
public static void main(String[] args) throws Exception {
// parseFile("/opt/dicom/2ce68ce6d068a");
// parseFile("/opt/dicom/13/366D4983/60AB0024/625FD920");
parseFile("/opt/dicom/13/06F0A7FC/C16CDBC0/FCCBBAA0");
System.out.println("=====================");
parseFile("/tmp/1.3.12.2.1107.5.5.2.99999.30000008020102183889000000000");
}
private static void parseFile(String fileName) throws IOException, DicomParserException {
parseFileDCM4CHE(fileName);
// parseFileIHEj(fileName);
}
private static void parseFileIHEj(String fileName) throws IOException, DicomParserException {
DimseMessageParser dimseMessageParser = new DimseMessageParser(new Association(), "/tmp");
byte[] byteArray = FileUtils.readFileToByteArray(new File(fileName));
Iterable<DimseMessage> messages = dimseMessageParser.push(byteArray);
for (DimseMessage dimseMessage : messages) {
System.out.println(dimseMessage);
}
}
private static void parseFileDCM4CHE(String fileName) throws IOException {
DicomInputStream din = new DicomInputStream(new File(fileName));
DicomObject dcmObj = null;
dcmObj = din.readDicomObject();
// while ((dcmObj = din.readDicomObject()) != null) {
System.out.println(dcmObj);
// }
din.close();
}
}
package org.gazelle.proxy.loadtests;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadPoolExecutor;
public class ProxyLoadTest {
/**
* Disables System.exit calls
*/
protected static void disableSystemExitCall() {
final SecurityManager securityManager = new SecurityManager() {
public void checkPermission(java.security.Permission permission) {
// Forbid only exit status 1
// If you want to forbid any kind of halt, just use "exitVM"
if (permission.getName().contains("exitVM.")) {
throw new SecurityException("System.exit calls not allowed!");
}
}
};
System.setSecurityManager(securityManager);
}
public static void main(String[] args) {
disableSystemExitCall();
try {
ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(12);
List<Future<String>> futures = new ArrayList<Future<String>>();
List<Callable<String>> tasks = new ArrayList<Callable<String>>();
int nTot = 2000;
int nHL7 = nTot;
int nDICOM = nTot;
int nSYSLOG = nTot;
int nHTTP = nTot;
// int nHL7 = 0;
// int nDICOM = 20;
// int nSYSLOG = 0;
// int nHTTP = 0;
// Proxy :
// HL7 : 10000 -> 59188
// DICOM : 10001 -> 11112
// SYSLOG : 10002 -> 3101
// HTTP : 10003 -> 8080
for (int i = 0; i < nHL7; i++) {
tasks.add(new HL7SendMessageTask("192.168.20.100", 10000));
}
for (int i = 0; i < nDICOM; i++) {
tasks.add(new DicomSendMessageTask("192.168.20.100", 10001, "DCMRCV", "/opt/dicom"));
}
for (int i = 0; i < nSYSLOG; i++) {
tasks.add(new SyslogSendMessageTask("192.168.20.100", 10002));
}
for (int i = 0; i < nHTTP; i++) {
tasks.add(new HTTPSendMessageTask("192.168.20.100", 10003));
}
Collections.shuffle(tasks);
for (Callable<String> callable : tasks) {
Future<String> future = threadPool.submit(callable);
futures.add(future);
}
while (threadPool.getQueue().size() > 0) {
Thread.sleep(50);
System.out.println(threadPool.getQueue().size() + " - " + Thread.activeCount());
}
boolean allFinished = false;
while (!allFinished) {
allFinished = true;
for (Future<String> future : futures) {
allFinished = allFinished && future.isDone();
}
if (!allFinished) {
Thread.sleep(1000);
}
}
for (Future<String> future : futures) {
System.out.println(future.get());
}
System.out.println(futures.size());
threadPool.shutdown();
} catch (Throwable e) {
e.printStackTrace();
}
}
}
package org.gazelle.proxy.loadtests;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.net.Socket;
import java.util.concurrent.Callable;
public abstract class SendMessageOnSocketCallable implements Callable<String> {
protected String host;
protected int port;
public SendMessageOnSocketCallable(String host, int port) {
super();
this.host = host;
this.port = port;
}
@Override
public String call() throws Exception {
try {
final Socket socket = new Socket(host, port);
final InputStream inputStream = socket.getInputStream();
final OutputStream outputStream = socket.getOutputStream();
String result = writeInSocket(outputStream);
outputStream.flush();
Thread socketClose = new Thread() {
@Override
public void run() {
try {
sleep(1000);
if (!socket.isClosed()) {
outputStream.close();
inputStream.close();
socket.close();
}
} catch (Exception e) {
// socket closed
}
}
};
socketClose.start();
while (!socket.isClosed()) {
if (inputStream.read() == -1) {
break;
}
}
return result;
} catch (Throwable e) {
return "Failed " + e.getMessage();
}
}
public abstract String writeInSocket(OutputStream outputStream) throws Exception;
protected void println(Writer os, String string) throws IOException {
os.write(string);
os.write("\r\n");
}
}
package org.gazelle.proxy.loadtests;
import java.io.OutputStream;
import java.util.Date;
import java.util.Random;
import org.apache.commons.lang.RandomStringUtils;
import org.openhealthtools.openatna.syslog.message.StringLogMessage;
import org.openhealthtools.openatna.syslog.protocol.ProtocolMessage;
import org.openhealthtools.openatna.syslog.protocol.ProtocolMessageFactory;
public class SyslogSendMessageTask extends SendMessageOnSocketCallable {
private Random r = new Random();
public SyslogSendMessageTask(String host, int port) {
super(host, port);
}
@Override
public String writeInSocket(OutputStream outputStream) throws Exception {
ProtocolMessage<String> sl = new ProtocolMessage<String>(10, 5, ProtocolMessageFactory.formatDate(new Date()),
randomString(), new StringLogMessage("<atna>" + randomString() + "</atna>"), randomString(),
randomString(), "1234");
byte[] bytes = sl.toByteArray();
outputStream.write(Integer.toString(bytes.length).getBytes());
outputStream.write(" ".getBytes());
outputStream.write(bytes);
return "OK";
}
private String randomString() {
return RandomStringUtils.randomAlphabetic(5 + r.nextInt(5));
}
}
...@@ -6,5 +6,5 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender ...@@ -6,5 +6,5 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d [%t] %c: %m%n log4j.appender.stdout.layout.ConversionPattern=%-5p %d [%t] %c: %m%n
log4j.logger.org.dcm4che2=DEBUG log4j.logger.org.dcm4che2=ERROR
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>jp.digitalsensation.ihej.transactionmonitor</groupId> <groupId>jp.digitalsensation.ihej.transactionmonitor</groupId>
<artifactId>ihej-dicom</artifactId> <artifactId>ihej-dicom</artifactId>
<version>1.0</version> <version>1.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.openhealthtools.openatna</groupId> <groupId>org.openhealthtools.openatna</groupId>
......
...@@ -17,6 +17,7 @@ public class DicomProxy extends Proxy<DimseMessage, DimseMessage> { ...@@ -17,6 +17,7 @@ public class DicomProxy extends Proxy<DimseMessage, DimseMessage> {
public DicomProxy(ProxyEventListener<DimseMessage, DimseMessage> proxyEventListener, public DicomProxy(ProxyEventListener<DimseMessage, DimseMessage> proxyEventListener,
ConnectionConfig connectionConfig, String storageFolder) { ConnectionConfig connectionConfig, String storageFolder) {
super(proxyEventListener, connectionConfig); super(proxyEventListener, connectionConfig);
setStorageFolder(storageFolder);
} }
public String getStorageFolder() { public String getStorageFolder() {
......
...@@ -36,14 +36,12 @@ public class HL7FrameDecoder extends FrameDecoder { ...@@ -36,14 +36,12 @@ public class HL7FrameDecoder extends FrameDecoder {
switch (status) { switch (status) {
case STATUS_INIT: case STATUS_INIT:
if (readByte == START_MESSAGE) { if (readByte == START_MESSAGE) {
log.info("START_MESSAGE");
status = STATUS_READ; status = STATUS_READ;
currentFrame = new ByteArrayOutputStream(); currentFrame = new ByteArrayOutputStream();
} }
break; break;
case STATUS_READ: case STATUS_READ:
if (readByte == END_MESSAGE) { if (readByte == END_MESSAGE) {
log.info("END_MESSAGE");
status = STATUS_END; status = STATUS_END;
return currentFrame.toString(CharsetUtil.UTF_8.name()); return currentFrame.toString(CharsetUtil.UTF_8.name());
} else { } else {
...@@ -55,7 +53,6 @@ public class HL7FrameDecoder extends FrameDecoder { ...@@ -55,7 +53,6 @@ public class HL7FrameDecoder extends FrameDecoder {
status = STATUS_INIT; status = STATUS_INIT;
} }
if (readByte == START_MESSAGE) { if (readByte == START_MESSAGE) {
log.info("START_MESSAGE");
status = STATUS_READ; status = STATUS_READ;
currentFrame = new ByteArrayOutputStream(); currentFrame = new ByteArrayOutputStream();
} }
......
...@@ -31,13 +31,14 @@ import org.openhealthtools.openatna.syslog.protocol.SdParam; ...@@ -31,13 +31,14 @@ import org.openhealthtools.openatna.syslog.protocol.SdParam;
import org.openhealthtools.openatna.syslog.protocol.StructuredElement; import org.openhealthtools.openatna.syslog.protocol.StructuredElement;
import org.openhealthtools.openatna.syslog.transport.SyslogListener; import org.openhealthtools.openatna.syslog.transport.SyslogListener;
public class App { public class AppProxy {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
// testHttpsConnection(); // testHttpsConnection();
// startDicomProxyTLS(10004); // startDicomProxyTLS(10004);
startSyslogProxyTLS(); // startSyslogProxyTLS();
startDicomProxyBasic(10000);
/* /*
startHTTPProxyBasic(10000); startHTTPProxyBasic(10000);
startHTTPProxyTLSClient1(10001); startHTTPProxyTLSClient1(10001);
...@@ -66,6 +67,13 @@ public class App { ...@@ -66,6 +67,13 @@ public class App {
} }
private static void startDicomProxyBasic(int port) {
DicomEventListenerSimple eventListener = new DicomEventListenerSimple(System.out);
DicomProxy dicomProxy = new DicomProxy(eventListener, new ConnectionConfigSimple(port, "127.0.0.1", 11112,
ChannelType.DICOM), "/tmp/DICOM");
dicomProxy.start();
}
private static void startSyslogProxyTLS() { private static void startSyslogProxyTLS() {
// Syslog Client 9443-TLS> Proxy1 10000-> Proxy Web app 8442-> Proxy3 // Syslog Client 9443-TLS> Proxy1 10000-> Proxy Web app 8442-> Proxy3
// 8443-TLS> Syslog // 8443-TLS> Syslog
...@@ -89,7 +97,8 @@ public class App { ...@@ -89,7 +97,8 @@ public class App {
RawEventListenerSimple listener = new RawEventListenerSimple(System.out); RawEventListenerSimple listener = new RawEventListenerSimple(System.out);
// Starts proxy3 (provider not TLS - 8442, connects to a TLS server - 8443) // Starts proxy3 (provider not TLS - 8442, connects to a TLS server -
// 8443)
InputStream clientKeyStoreStream = listener.getClass().getResourceAsStream("/keys/185.jks"); InputStream clientKeyStoreStream = listener.getClass().getResourceAsStream("/keys/185.jks");
TlsCredentials clientCredentials = new TlsCredentials(clientKeyStoreStream, "password".toCharArray(), "tomcat", TlsCredentials clientCredentials = new TlsCredentials(clientKeyStoreStream, "password".toCharArray(), "tomcat",
"password".toCharArray()); "password".toCharArray());
...@@ -99,7 +108,8 @@ public class App { ...@@ -99,7 +108,8 @@ public class App {
RawProxy proxy3 = new RawProxy(listener, connectionConfigClient); RawProxy proxy3 = new RawProxy(listener, connectionConfigClient);
proxy3.start(); proxy3.start();
// Starts proxy1 (provider TLS - 9443, connects to a not TLS server - 10000) // Starts proxy1 (provider TLS - 9443, connects to a not TLS server -
// 10000)
InputStream serverKeyStoreStream = listener.getClass().getResourceAsStream("/keys/186.jks"); InputStream serverKeyStoreStream = listener.getClass().getResourceAsStream("/keys/186.jks");
TlsCredentials serverCredentials = new TlsCredentials(serverKeyStoreStream, "password".toCharArray(), "tomcat", TlsCredentials serverCredentials = new TlsCredentials(serverKeyStoreStream, "password".toCharArray(), "tomcat",
"password".toCharArray()); "password".toCharArray());
...@@ -123,7 +133,8 @@ public class App { ...@@ -123,7 +133,8 @@ public class App {
StructuredElement se = new StructuredElement("exampleSDID@1234", params); StructuredElement se = new StructuredElement("exampleSDID@1234", params);
sl.addStructuredElement(se); sl.addStructuredElement(se);
// Socket s = clientSocketFactory.createSecureSocket("localhost", 8443); // Socket s = clientSocketFactory.createSecureSocket("localhost",
// 8443);
Socket s = clientSocketFactory.createSecureSocket("jumbo.irisa.fr", 6514); Socket s = clientSocketFactory.createSecureSocket("jumbo.irisa.fr", 6514);
OutputStream out = s.getOutputStream(); OutputStream out = s.getOutputStream();
byte[] bytes = sl.toByteArray(); byte[] bytes = sl.toByteArray();
...@@ -179,7 +190,7 @@ public class App { ...@@ -179,7 +190,7 @@ public class App {
} }
private static InputStream getStream(String string) { private static InputStream getStream(String string) {
return App.class.getResourceAsStream(string); return AppProxy.class.getResourceAsStream(string);
} }
private static void startHTTPProxyTLSClient1(int port) { private static void startHTTPProxyTLSClient1(int port) {
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
xmlns:a4j="http://richfaces.org/a4j" template="layout/template.xhtml"> xmlns:a4j="http://richfaces.org/a4j" template="layout/template.xhtml">
<ui:define name="body"> <ui:define name="body">
#{messagesStepBean.init()} #{messagesStepBean.init()}
#{dataTableStateHolder.setDescendingOn('id')}
<a4j:form> <a4j:form>
<rich:simpleTogglePanel switchType="client" id="search" <rich:simpleTogglePanel switchType="client" id="search"
label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}"> label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<parent> <parent>
<groupId>net.ihe.gazelle.maven</groupId> <groupId>net.ihe.gazelle.maven</groupId>
<artifactId>gazelle-seam</artifactId> <artifactId>gazelle-seam</artifactId>
<version>1.53</version> <version>1.54</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<cas.service>http://bento:8080/proxy/</cas.service> <cas.service>http://bento:8080/proxy/</cas.service>
<evsclient.url>http://gazelle.ihe.net/EVSClient/</evsclient.url> <evsclient.url>http://gazelle.ihe.net/EVSClient/</evsclient.url>
<dicom.storage>/tmp/DICOM</dicom.storage> <storage.dicom>/tmp/DICOM</storage.dicom>
<storage.tmp>/tmp</storage.tmp> <storage.tmp>/tmp</storage.tmp>
<!-- development mode (disable in production) --> <!-- development mode (disable in production) -->
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
<cas.service>http://gazelle.ihe.net/proxy/</cas.service> <cas.service>http://gazelle.ihe.net/proxy/</cas.service>
<evsclient.url>http://gazelle.ihe.net/EVSClient/</evsclient.url> <evsclient.url>http://gazelle.ihe.net/EVSClient/</evsclient.url>
<dicom.storage>/opt/proxy/DICOM</dicom.storage> <storage.dicom>/opt/proxy/DICOM</storage.dicom>
<storage.tmp>/opt/proxy/tmp</storage.tmp> <storage.tmp>/opt/proxy/tmp</storage.tmp>
<!-- development mode (disable in production) --> <!-- development mode (disable in production) -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment