Skip to Content.
Sympa Menu

perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r6440 - in trunk/perfsonar-base/messaging/src: main/java/net/geant/perfsonar/messaging main/java/net/geant/perfsonar/templates test/java/net/geant/perfsonar/messaging test/java/net/geant/perfsonar/templates

Subject: perfsonar development work

List archive

[pS-dev] [GEANT/SA2/ps-java-services] r6440 - in trunk/perfsonar-base/messaging/src: main/java/net/geant/perfsonar/messaging main/java/net/geant/perfsonar/templates test/java/net/geant/perfsonar/messaging test/java/net/geant/perfsonar/templates


Chronological Thread 
  • From:
  • To:
  • Subject: [pS-dev] [GEANT/SA2/ps-java-services] r6440 - in trunk/perfsonar-base/messaging/src: main/java/net/geant/perfsonar/messaging main/java/net/geant/perfsonar/templates test/java/net/geant/perfsonar/messaging test/java/net/geant/perfsonar/templates
  • Date: Mon, 1 Jul 2013 19:00:01 +0100 (BST)
  • Authentication-results: sfpop-ironport03.merit.edu; dkim=neutral (message not signed) header.i=none

Author: dante.delvaux
Date: 2013-07-01 19:00:01 +0100 (Mon, 01 Jul 2013)
New Revision: 6440

Modified:

trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/messaging/Method.java

trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/TemplateEngine.java

trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/VelocityEngineSingleton.java

trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodOnObjectTest.java

trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodTest.java

trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodThrowsExceptionTest.java

trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/templates/TemplateEngineTest.java
Log:
pSbase3 / messaging:
- simplifying Exception handling in TemplateEngine
- adding Unit Test on inline templates

Modified:
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/messaging/Method.java
===================================================================
---
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/messaging/Method.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/messaging/Method.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -109,6 +109,7 @@
if (Modifier.isStatic(method.getModifiers())) {
throw new IllegalStateException("Static methods are forbidden
for xpath configuration: " + method);
}
+
if (object != null) {
return object;
}

Modified:
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/TemplateEngine.java
===================================================================
---
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/TemplateEngine.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/TemplateEngine.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -1,6 +1,5 @@
package net.geant.perfsonar.templates;

-import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
@@ -38,12 +37,12 @@
/**
* Tries to read the template from the class package
*/
- private InputStreamReader getTemplate(Class<?> homeDir, String name)
throws IOException {
+ private InputStreamReader getTemplate(Class<?> homeDir, String name) {
final InputStream in = homeDir.getResourceAsStream(name);
if (in == null) {
String msg = "Template " + name + " cannot be found in " +
homeDir + ".";
logger.warn(msg);
- throw new IOException(msg);
+ throw new ResourceNotFoundException(msg);
}
logger.trace("Reading {} in {} as stream.", name, homeDir);
return new InputStreamReader(in);
@@ -61,18 +60,24 @@
} catch (MethodInvocationException e) {
throw new PerfSONARException(logger, "Velocity error when
calling invoke " + homeDir + name, e);
} catch (ResourceNotFoundException e) {
- throw new PerfSONARException(logger, "Velocity couldn't find
a resource for " + homeDir + name, e);
- } catch (IOException e) {
- throw new PerfSONARException(logger, "IOException when
trying to evaluate " + homeDir + name, e);
+ throw new PerfSONARException(logger, "Couldn't find a
resource for " + name, e);
}
}

/**
* Parses the template from the class package and returns it as a string
*/
- public String evaluate(String template) {
+ public String evaluate(String template) throws PerfSONARException {
final StringWriter out = new StringWriter();
- TEMPLATE_ENGINE.evaluate(context, out, "successMessage", template);
+ try {
+ TEMPLATE_ENGINE.evaluate(context, out, "successMessage",
template);
+ } catch (ParseErrorException e) {
+ throw new PerfSONARException(logger, "Error parsing the template
\"" + template + "\"", e);
+ } catch (MethodInvocationException e) {
+ throw new PerfSONARException(logger, "Velocity error when
calling invoke \"" + template + "\"", e);
+ } catch (ResourceNotFoundException e) {
+ throw new PerfSONARException(logger, "Couldn't find a resource
for \"" + template + "\"", e);
+ }
return out.toString();
}


Modified:
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/VelocityEngineSingleton.java
===================================================================
---
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/VelocityEngineSingleton.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/main/java/net/geant/perfsonar/templates/VelocityEngineSingleton.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -30,15 +30,15 @@
/**
* Wrapper around the original/parent VelocityEngine evaluate
*/
- public void evaluate(VelocityContext context, Writer out, String string,
InputStreamReader template) {
- templateEngine.evaluate(context, out, string, template);
+ public boolean evaluate(VelocityContext context, Writer out, String
string, InputStreamReader template) {
+ return templateEngine.evaluate(context, out, string, template);
}

/**
* Wrapper around the original/parent VelocityEngine evaluate
*/
- public void evaluate(VelocityContext context, StringWriter out, String
string, String template) {
- templateEngine.evaluate(context, out, string, template);
+ public boolean evaluate(VelocityContext context, StringWriter out,
String string, String template) {
+ return templateEngine.evaluate(context, out, string, template);
}

}

Modified:
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodOnObjectTest.java
===================================================================
---
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodOnObjectTest.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodOnObjectTest.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -8,7 +8,6 @@

import net.geant.perfsonar.mp.sshtelnet.Command;

-import org.junit.After;
import org.junit.Before;
import org.junit.Test;

@@ -26,11 +25,6 @@
method = new Method(Command.class.getMethod("setName",
String.class), null, expected);
}

- @After
- public void tearDown() throws Exception {
- method = null;
- }
-
@Test
public void shouldReturnObject() throws Exception {
assertTrue(expected == method.getInstance(instances));

Modified:
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodTest.java
===================================================================
---
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodTest.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodTest.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -45,21 +45,10 @@
whenExecutingMethods(instances);
}

- private Method createCommandMethod(String methodName, Class<?>...
params) throws NoSuchMethodException {
- return new Method(Command.class.getMethod(methodName, params),
Command.class.getMethod("getId"));
- }
-
@After
public void tearDown() throws Exception {
instances.clear();
expected.clear();
- //FIXME: Do we really need to set all this to null?
-// new RouterReference().setCurrentRouter(null);
-// this.eventTypeMethod = null;
-// this.commandNameMethod = null;
-// this.currentRouterMethod = null;
-// this.routerIdMethod = null;
-// this.routerNameMethod = null;
}

@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -79,31 +68,29 @@
}

private Router createExpectedRouter() {
- return new Router("router2", "router", null, new Command("test1",
null, null, "testing1"), new Command("test2",
- null, null, "testing2"));
+ return new Router("router2", "router", null,
+ new Command("test1", null, null, "testing1"),
+ new Command("test2", null, null, "testing2"));
}

- private void whenExecutingMethods(final Map<Class<?>, List<Object>>
instances) throws PerfSONARException {
+ private Method createCommandMethod(String methodName, Class<?>...
params) throws NoSuchMethodException {
+ return new Method(Command.class.getMethod(methodName, params),
Command.class.getMethod("getId"));
+ }

- // router.setId("router2");
+ private void whenExecutingMethods(final Map<Class<?>, List<Object>>
instances) throws PerfSONARException {
+ // We call router.setId("router2");
routerIdMethod.execute("router2", instances, logger);
-
- // router.setName("router");
+ // We call router.setName("router");
routerNameMethod.execute("router", instances, logger);
-
- // RouterReference.setCurrentRouter(getReference("router2"));
+ // We call setCurrentRouter(getReference("router2"));
currentRouterMethod.execute("router2", instances, logger);
-
- // command1.setEventType("testing1");
+ // We call command1.setEventType("testing1");
eventTypeMethod.execute("testing1", instances, logger);
-
- // command1.setName("test1");
+ // We call command1.setName("test1");
commandNameMethod.execute("test1", instances, logger);
-
- // command2.setName("test2");
+ // We call command2.setName("test2");
commandNameMethod.execute("test2", instances, logger);
-
- // command2.setEventType("testing2");
+ // We call command2.setEventType("testing2");
eventTypeMethod.execute("testing2", instances, logger);
}
}

Modified:
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodThrowsExceptionTest.java
===================================================================
---
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodThrowsExceptionTest.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/messaging/MethodThrowsExceptionTest.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -9,7 +9,6 @@

import net.geant.perfsonar.PerfSONARException;

-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
@@ -39,12 +38,6 @@
}
}

- @After
- public void tearDown() throws Exception {
- method = null;
- instances = null;
- }
-
@Test
public void shouldNotInstantiateObject() {
assertEquals(new Hashtable<Class<?>, List<Object>>(), instances);

Modified:
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/templates/TemplateEngineTest.java
===================================================================
---
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/templates/TemplateEngineTest.java
2013-07-01 16:47:42 UTC (rev 6439)
+++
trunk/perfsonar-base/messaging/src/test/java/net/geant/perfsonar/templates/TemplateEngineTest.java
2013-07-01 18:00:01 UTC (rev 6440)
@@ -26,9 +26,16 @@
private final AtomicInteger count = new AtomicInteger(0);
private static final int THREADS_COUNT = 500;

+ @Test
+ public void shouldProcessTemplate() throws PerfSONARException {
+ final TemplateEngine te = new TemplateEngine();
+ te.put("name", "John Doe");
+ assertEquals("Hello John Doe!", te.evaluate("Hello ${name}!"));
+ }
+
// This test relies on a template being present in an external jar (@see
net.geant.perfsonar.messaging.data)
@Test
- public void shouldProcessTemplateFromJar() throws Exception {
+ public void shouldProcessTemplateFromJar() throws PerfSONARException {
final StringWriter out = new StringWriter();
final TemplateEngine te = new TemplateEngine();
te.put("name", "John Doe");
@@ -57,6 +64,13 @@
} catch (PerfSONARException e) {
logger.error("Error when evaluating Hello.template:
" + e.getMessage());
}
+ // We test both the inline template
+ try {
+ assertEquals("Goodbye John Doe " + myInt + "!",
te.evaluate("Goodbye ${name}!"));
+ } catch (PerfSONARException e) {
+ logger.error("Error when evaluating inline template:
" + e.getMessage());
+ }
+ // And the file/jar template
assertEquals("Hello John Doe " + myInt + "!",
out.toString());
logger.debug("{} finished, {} thread(s) complete, {}
currently running threads.",
Thread.currentThread().getName(),
count.incrementAndGet(), Thread.activeCount());



  • [pS-dev] [GEANT/SA2/ps-java-services] r6440 - in trunk/perfsonar-base/messaging/src: main/java/net/geant/perfsonar/messaging main/java/net/geant/perfsonar/templates test/java/net/geant/perfsonar/messaging test/java/net/geant/perfsonar/templates, svn-noreply, 07/01/2013

Archive powered by MHonArc 2.6.16.

Top of Page