[
https://issues.apache.org/jira/browse/YARN-528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13645991#comment-13645991
]
Robert Joseph Evans commented on YARN-528:
------------------------------------------
The approach seems OK to me, but I would rather have the impl be an even
thinner wrapper.
{code}
private ApplicationIdProto proto = null;
private ApplicationIdProto.Builder builder = null;
ApplicationIdPBImpl(ApplicationIdProto proto) {
this.proto = proto;
}
public ApplicationIdPBImpl() {
this.builder = ApplicationIdProto.newBuilder();
}
public ApplicationIdProto getProto() {
assert (proto != null);
return proto;
}
@Override
public int getId() {
assert (proto != null);
return proto.getId();
}
@Override
protected void setId(int id) {
assert (builder != null);
builder.setId((id));
}
@Override
public long getClusterTimestamp() {
assert(proto != null);
return proto.getClusterTimestamp();
}
@Override
protected void setClusterTimestamp(long clusterTimestamp) {
assert(builder != null);
builder.setClusterTimestamp((clusterTimestamp));
}
@Override
protected void build() {
assert(builder != null);
proto = builder.build();
builder = null;
}
{code}
> Make IDs read only
> ------------------
>
> Key: YARN-528
> URL: https://issues.apache.org/jira/browse/YARN-528
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Robert Joseph Evans
> Assignee: Robert Joseph Evans
> Attachments: y528_AppIdPart_01_Refactor.txt,
> y528_AppIdPart_02_AppIdChanges.txt, y528_AppIdPart_03_fixUsage.txt,
> y528_ApplicationIdComplete_WIP.txt, YARN-528.txt, YARN-528.txt
>
>
> I really would like to rip out most if not all of the abstraction layer that
> sits in-between Protocol Buffers, the RPC, and the actual user code. We have
> no plans to support any other serialization type, and the abstraction layer
> just, makes it more difficult to change protocols, makes changing them more
> error prone, and slows down the objects themselves.
> Completely doing that is a lot of work. This JIRA is a first step towards
> that. It makes the various ID objects immutable. If this patch is wel
> received I will try to go through other objects/classes of objects and update
> them in a similar way.
> This is probably the last time we will be able to make a change like this
> before 2.0 stabilizes and YARN APIs will not be able to be changed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira