You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/03/06 15:41:25 UTC
git commit: [OLINGO-189] Enables getMessage() for
ODataMessageException
Repository: incubator-olingo-odata2
Updated Branches:
refs/heads/master 3fbf0682e -> 6f75e0034
[OLINGO-189] Enables getMessage() for ODataMessageException
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/commit/6f75e003
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/tree/6f75e003
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/diff/6f75e003
Branch: refs/heads/master
Commit: 6f75e00346d41dc44a2c5c1b36bc305a1b12dd6f
Parents: 3fbf068
Author: Michael Bolz <mi...@apache.org>
Authored: Thu Mar 6 15:02:42 2014 +0100
Committer: Michael Bolz <mi...@apache.org>
Committed: Thu Mar 6 15:19:27 2014 +0100
----------------------------------------------------------------------
.../api/exception/ODataMessageException.java | 19 +++++++++++++++++++
.../olingo/odata2/api/rt/RuntimeDelegate.java | 18 ++++++++++++++++++
.../odata2/core/exception/MessageService.java | 8 ++++----
.../odata2/core/rt/RuntimeDelegateImpl.java | 9 +++++++++
.../core/exception/MessageServiceTest.java | 2 +-
5 files changed, 51 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/6f75e003/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/exception/ODataMessageException.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/exception/ODataMessageException.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/exception/ODataMessageException.java
index d3f7355..bdc2156 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/exception/ODataMessageException.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/exception/ODataMessageException.java
@@ -18,6 +18,8 @@
******************************************************************************/
package org.apache.olingo.odata2.api.exception;
+import org.apache.olingo.odata2.api.rt.RuntimeDelegate;
+
/**
* <p>DO NOT EXTEND THIS EXCEPTION</p>
* APPLICATION DEVELOPERS: please use {@link ODataApplicationException} o throw custom exceptions.
@@ -112,4 +114,21 @@ public abstract class ODataMessageException extends ODataException {
public String getErrorCode() {
return errorCode;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getMessage() {
+ if(messageReference == null) {
+ return "No message reference given. Inherit message is = '" + super.getMessage() + "'";
+ }
+
+ String message = RuntimeDelegate.extractExceptionMessage(this);
+ if(message == null) {
+ return "Message Reference key = '" + messageReference.getKey() +
+ "' and inherit message = '" + super.getMessage() + "'";
+ }
+ return message;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/6f75e003/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java
index f0c1fc3..051270a 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java
@@ -32,6 +32,7 @@ import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
import org.apache.olingo.odata2.api.edm.provider.EdmProvider;
import org.apache.olingo.odata2.api.ep.EntityProvider.EntityProviderInterface;
import org.apache.olingo.odata2.api.ep.EntityProviderException;
+import org.apache.olingo.odata2.api.exception.ODataMessageException;
import org.apache.olingo.odata2.api.processor.ODataRequest.ODataRequestBuilder;
import org.apache.olingo.odata2.api.processor.ODataResponse.ODataResponseBuilder;
import org.apache.olingo.odata2.api.processor.ODataSingleProcessor;
@@ -110,6 +111,13 @@ public abstract class RuntimeDelegate {
public abstract ExpandSelectTreeNodeBuilder createExpandSelectTreeNodeBuilder();
+ /**
+ * Extract message of {@link ODataMessageException} and return it as a string.
+ *
+ * @param exception which contains the message references.
+ * @return the message of the {@link ODataMessageException}
+ */
+ public abstract String extractExceptionMessage(ODataMessageException exception);
}
/**
@@ -217,4 +225,14 @@ public abstract class RuntimeDelegate {
public static ExpandSelectTreeNodeBuilder createExpandSelectTreeNodeBuilder() {
return RuntimeDelegate.getInstance().createExpandSelectTreeNodeBuilder();
}
+
+ /**
+ * Extract message of {@link ODataMessageException} and return it as a string.
+ *
+ * @param exception which contains the message references.
+ * @return the message of the {@link ODataMessageException}
+ */
+ public static String extractExceptionMessage(ODataMessageException exception) {
+ return RuntimeDelegate.getInstance().extractExceptionMessage(exception);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/6f75e003/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/exception/MessageService.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/exception/MessageService.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/exception/MessageService.java
index bd87eff..0ad019e 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/exception/MessageService.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/exception/MessageService.java
@@ -194,13 +194,13 @@ public class MessageService {
* @return the message
*/
private Message getMessage(final String key, final Object... replacements) {
- String value = null;
+ String message = null;
try {
- value = resourceBundle.getString(key);
+ message = resourceBundle.getString(key);
StringBuilder builder = new StringBuilder();
Formatter f = new Formatter(builder, requestedLocale);
- f.format(value, replacements);
+ f.format(message, replacements);
f.close();
return new Message(getLocale(), builder.toString());
@@ -208,7 +208,7 @@ public class MessageService {
} catch (MissingResourceException e) {
return new Message(Locale.ENGLISH, "Missing message for key '" + key + "'!");
} catch (MissingFormatArgumentException e) {
- return new Message(Locale.ENGLISH, "Missing replacement for place holder in value '" + value +
+ return new Message(Locale.ENGLISH, "Missing replacement for place holder in message '" + message +
"' for following arguments '" + Arrays.toString(replacements) + "'!");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/6f75e003/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rt/RuntimeDelegateImpl.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rt/RuntimeDelegateImpl.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rt/RuntimeDelegateImpl.java
index f37b590..d3a974c 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rt/RuntimeDelegateImpl.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rt/RuntimeDelegateImpl.java
@@ -19,6 +19,7 @@
package org.apache.olingo.odata2.core.rt;
import java.io.InputStream;
+import java.util.Locale;
import org.apache.olingo.odata2.api.ODataService;
import org.apache.olingo.odata2.api.batch.BatchResponsePart.BatchResponsePartBuilder;
@@ -32,6 +33,7 @@ import org.apache.olingo.odata2.api.edm.EdmSimpleTypeKind;
import org.apache.olingo.odata2.api.edm.provider.EdmProvider;
import org.apache.olingo.odata2.api.ep.EntityProvider.EntityProviderInterface;
import org.apache.olingo.odata2.api.ep.EntityProviderException;
+import org.apache.olingo.odata2.api.exception.ODataMessageException;
import org.apache.olingo.odata2.api.processor.ODataRequest.ODataRequestBuilder;
import org.apache.olingo.odata2.api.processor.ODataResponse.ODataResponseBuilder;
import org.apache.olingo.odata2.api.processor.ODataSingleProcessor;
@@ -48,6 +50,8 @@ import org.apache.olingo.odata2.core.edm.EdmSimpleTypeFacadeImpl;
import org.apache.olingo.odata2.core.edm.provider.EdmImplProv;
import org.apache.olingo.odata2.core.edm.provider.EdmxProvider;
import org.apache.olingo.odata2.core.ep.ProviderFacadeImpl;
+import org.apache.olingo.odata2.core.exception.MessageService;
+import org.apache.olingo.odata2.core.exception.MessageService.Message;
import org.apache.olingo.odata2.core.processor.ODataSingleProcessorService;
import org.apache.olingo.odata2.core.uri.ExpandSelectTreeNodeImpl;
import org.apache.olingo.odata2.core.uri.UriParserImpl;
@@ -137,4 +141,9 @@ public class RuntimeDelegateImpl extends RuntimeDelegateInstance {
return expandSelectTreeNode.new ExpandSelectTreeNodeBuilderImpl();
}
+ @Override
+ public String extractExceptionMessage(ODataMessageException exception) {
+ Message msg = MessageService.getMessage(Locale.ENGLISH, exception.getMessageReference());
+ return msg.getText();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/6f75e003/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/exception/MessageServiceTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/exception/MessageServiceTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/exception/MessageServiceTest.java
index 6c0f7ab..fe39fc0 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/exception/MessageServiceTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/exception/MessageServiceTest.java
@@ -70,7 +70,7 @@ public class MessageServiceTest extends BaseTest {
Message ms = MessageService.getMessage(DEFAULT_LANGUAGE, context);
assertEquals(
- "Missing replacement for place holder in value 'First was [%1$s] and second was [%2$s]!' " +
+ "Missing replacement for place holder in message 'First was [%1$s] and second was [%2$s]!' " +
"for following arguments '[first]'!",
ms.getText());
}