Hi,
I’ve looked at the DemoViewsPopulater and have created a test case with two methods:
public static void main(String[] args) { // CSIGNORE
ViewLoader loader = new ViewLoader();
try {
loader.test();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
loader.close();
}
System.exit(0);
}
public void test()
{
UniqueId id = UniqueId.of(ObjectId.parse("DbPrt~1246"), portfolioName);
ViewDefinition viewDef = makeEquityViewDefinition(portfolioName, id);
ConfigDocument<ViewDefinition> configDocument = new ConfigDocument<ViewDefinition>(ViewDefinition.class);
configDocument.setName(viewDef.getName());
configDocument.setValue(viewDef);
final Object value = configDocument.getValue();
FUDGE_CONTEXT = FudgeContext.GLOBAL_DEFAULT;
FudgeMsgEnvelope env = FUDGE_CONTEXT.toFudgeMsg(value);
int test = 0;
}
first I tried the version in DemoLoader and then stripped it to a more basic
private ViewDefinition makeEquityViewDefinition(String portfolioName, UniqueId portfolioId) {
ViewDefinition equityViewDefinition = new ViewDefinition(portfolioName + " View", portfolioId, UserPrincipal.getTestUser());
equityViewDefinition.setDefaultCurrency(Currency.USD);
equityViewDefinition.setMaxFullCalculationPeriod(30000L);
equityViewDefinition.setMinFullCalculationPeriod(500L);
equityViewDefinition.setMinDeltaCalculationPeriod(500L);
equityViewDefinition.setMaxDeltaCalculationPeriod(30000L);
equityViewDefinition.addPortfolioRequirementName("Default", EquitySecurity.SECURITY_TYPE, ValueRequirementNames.PNL);
return equityViewDefinition;
}
In both cases, I get the following error
org.fudgemsg.FudgeRuntimeException: Unable to serialise EMPTY
at org.fudgemsg.mapping.JavaBeanBuilder.buildMessage(JavaBeanBuilder.java:205)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:175)
at org.fudgemsg.mapping.JavaBeanBuilder.buildMessage(JavaBeanBuilder.java:199)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:175)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:144)
at org.fudgemsg.mapping.SetBuilder.buildMessage(SetBuilder.java:58)
at org.fudgemsg.mapping.SetBuilder.buildMessage(SetBuilder.java:1)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:175)
at org.fudgemsg.mapping.JavaBeanBuilder.buildMessage(JavaBeanBuilder.java:199)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:175)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:144)
at org.fudgemsg.mapping.ListBuilder.buildMessage(ListBuilder.java:55)
at org.fudgemsg.mapping.ListBuilder.buildMessage(ListBuilder.java:1)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.mapping.FudgeSerializer.addToMessageWithClassHeaders(FudgeSerializer.java:175)
at org.fudgemsg.mapping.JavaBeanBuilder.buildMessage(JavaBeanBuilder.java:199)
at org.fudgemsg.mapping.FudgeSerializer.objectToFudgeMsg(FudgeSerializer.java:219)
at org.fudgemsg.FudgeContext.toFudgeMsg(FudgeContext.java:462)
at ViewLoader.test(ViewLoader.java:79)
at ViewLoader.main(ViewLoader.java:55)
Caused by: java.lang.IllegalAccessException: Class org.fudgemsg.mapping.JavaBeanBuilder can not access a member of class com.opengamma.engine.value.ValueProperties$EmptyPropertiesImpl with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.fudgemsg.mapping.JavaBeanBuilder.buildMessage(JavaBeanBuilder.java:200)
… 23 more
Any pointers greatly appreciated.
Thanks in advance,