Repository: incubator-reef Updated Branches: refs/heads/master 5b65c73e9 -> 70331278f
[REEF-897] Interop Annotation in Java This addressed the issue by * Added an Interop annotation. * Fixed up Java classes to be final. * Add Private annotations to Bridge Java classes. JIRA: [REEF-897](https://issues.apache.org/jira/browse/REEF-897) Pull Request: This closes #608 Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/70331278 Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/70331278 Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/70331278 Branch: refs/heads/master Commit: 70331278ff71dcba5442bb4b9e5026a536bc8238 Parents: 5b65c73 Author: Andrew Chung <afchun...@gmail.com> Authored: Sun Nov 1 11:26:04 2015 -0800 Committer: Markus Weimer <wei...@apache.org> Committed: Tue Nov 3 17:11:10 2015 -0800 ---------------------------------------------------------------------- .../reef/annotations/audience/Interop.java | 39 ++++++++++++++++++++ .../reef/javabridge/ActiveContextBridge.java | 6 +++ .../javabridge/AllocatedEvaluatorBridge.java | 6 +++ .../reef/javabridge/BridgeHandlerManager.java | 2 + .../reef/javabridge/ClosedContextBridge.java | 8 +++- .../javabridge/CompletedEvaluatorBridge.java | 8 +++- .../reef/javabridge/CompletedTaskBridge.java | 4 ++ .../reef/javabridge/ContextMessageBridge.java | 8 +++- .../reef/javabridge/DriverRestartedBridge.java | 4 ++ .../javabridge/EvaluatorRequestorBridge.java | 6 +++ .../reef/javabridge/FailedContextBridge.java | 6 +++ .../reef/javabridge/FailedEvaluatorBridge.java | 6 ++- .../reef/javabridge/FailedTaskBridge.java | 6 +++ .../reef/javabridge/HttpServerEventBridge.java | 7 ++++ .../apache/reef/javabridge/InteropLogger.java | 7 +++- .../reef/javabridge/InteropReturnInfo.java | 7 +++- .../org/apache/reef/javabridge/JavaBridge.java | 5 +++ .../apache/reef/javabridge/NativeBridge.java | 3 ++ .../apache/reef/javabridge/NativeInterop.java | 4 ++ .../reef/javabridge/RunningTaskBridge.java | 6 +++ .../reef/javabridge/SuspendedTaskBridge.java | 6 +++ .../reef/javabridge/TaskMessageBridge.java | 8 +++- .../org/apache/reef/javabridge/Utilities.java | 4 ++ 23 files changed, 159 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-annotations/src/main/java/org/apache/reef/annotations/audience/Interop.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-annotations/src/main/java/org/apache/reef/annotations/audience/Interop.java b/lang/java/reef-annotations/src/main/java/org/apache/reef/annotations/audience/Interop.java new file mode 100644 index 0000000..e26911d --- /dev/null +++ b/lang/java/reef-annotations/src/main/java/org/apache/reef/annotations/audience/Interop.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.reef.annotations.audience; + +/** + * Indicates that a class, function, or instance variable is used + * at the Interop layer, and should not be modified or removed without + * testing, knowing its consequences, and making corresponding changes + * in C# and C++ code. + */ +public @interface Interop { + /** + * @return The C++ files related to the Interop class/function/instance variable. + * Note that the coverage may not be absolute. + */ + String[] CppFiles() default ""; + + /** + * @return The C# files related to the interop class/function/instance variable. + * Note that the coverage may not be absolute. + */ + String[] CsFiles() default ""; +} http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java index 2c036d2..9558547 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.context.ActiveContext; import org.apache.reef.io.naming.Identifiable; import org.apache.reef.runtime.common.driver.context.EvaluatorContext; @@ -28,6 +30,10 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.context.ActiveContext}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "ActiveContextClr2Java.cpp" }, + CsFiles = { "IActiveContextClr2Java.cs", "ActiveContext.cs" }) public final class ActiveContextBridge extends NativeBridge implements Identifiable { private static final Logger LOG = Logger.getLogger(ActiveContextBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java index f393666..9ac01f5 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/AllocatedEvaluatorBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.io.naming.Identifiable; import org.apache.reef.runtime.common.driver.evaluator.AllocatedEvaluatorImpl; import org.apache.reef.driver.evaluator.AllocatedEvaluator; @@ -28,6 +30,10 @@ import java.util.logging.Logger; /** * The AllocatedEvaluatorBridge object to bridge operations between REEF .NET and Java allocated evaluator operations. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "AllocatedEvaluatorClr2Java.cpp" }, + CsFiles = { "IAllocatedEvaluatorClr2Java.cs", "AllocatedEvaluator.cs" }) public final class AllocatedEvaluatorBridge extends NativeBridge implements Identifiable { private static final Logger LOG = Logger.getLogger(AllocatedEvaluatorBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/BridgeHandlerManager.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/BridgeHandlerManager.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/BridgeHandlerManager.java index 1684e26..aa37b42 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/BridgeHandlerManager.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/BridgeHandlerManager.java @@ -18,6 +18,7 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; import org.apache.reef.annotations.audience.Private; /** @@ -26,6 +27,7 @@ import org.apache.reef.annotations.audience.Private; * UNLESS YOU KNOW WHAT YOU ARE DOING! */ @Private +@Interop(CppFiles = { "JavaClrBridge.cpp" }, CsFiles = { "BridgeHandlerManager.cs" }) public final class BridgeHandlerManager { private long allocatedEvaluatorHandler = 0; private long activeContextHandler = 0; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ClosedContextBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ClosedContextBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ClosedContextBridge.java index c82c7a1..17f638c 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ClosedContextBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ClosedContextBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.context.ActiveContext; import org.apache.reef.driver.context.ClosedContext; import org.apache.reef.driver.evaluator.EvaluatorDescriptor; @@ -29,7 +31,11 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.context.ClosedContext}. */ -public class ClosedContextBridge extends NativeBridge implements ClosedContext { +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "ClosedContextClr2Java.cpp" }, + CsFiles = { "IClosedContextClr2Java.cs", "ClosedContext.cs" }) +public final class ClosedContextBridge extends NativeBridge implements ClosedContext { private static final Logger LOG = Logger.getLogger(ClosedContextBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedEvaluatorBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedEvaluatorBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedEvaluatorBridge.java index 34cc569..9c5e1a1 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedEvaluatorBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedEvaluatorBridge.java @@ -18,13 +18,19 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.evaluator.CompletedEvaluator; import org.apache.reef.io.naming.Identifiable; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.evaluator.CompletedEvaluator}. */ -public class CompletedEvaluatorBridge extends NativeBridge implements Identifiable { +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "CompletedEvaluatorClr2Java.cpp" }, + CsFiles = { "ICompletedEvaluatorClr2Java.cs", "CompletedEvaluator.cs" }) +public final class CompletedEvaluatorBridge extends NativeBridge implements Identifiable { private final CompletedEvaluator jcompletedEvaluator; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java index c0680f9..c0578a8 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/CompletedTaskBridge.java @@ -18,6 +18,7 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.task.CompletedTask; import org.apache.reef.io.Message; @@ -26,6 +27,9 @@ import org.apache.reef.io.Message; * The Java-CLR bridge object for {@link org.apache.reef.driver.task.CompletedTask}. */ @Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "CompletedTaskClr2Java.cpp" }, + CsFiles = { "ICompletedTaskClr2Java.cs", "CompletedTask.cs" }) public final class CompletedTaskBridge extends NativeBridge implements Message { /** http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ContextMessageBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ContextMessageBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ContextMessageBridge.java index 8b6ceb3..9cbdc86 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ContextMessageBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ContextMessageBridge.java @@ -18,12 +18,18 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.context.ContextMessage; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.context.ContextMessage}. */ -public class ContextMessageBridge extends NativeBridge implements ContextMessage { +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "ContextMessageClr2Java.cpp" }, + CsFiles = { "IContextMessageClr2Java.cs", "ContextMessage.cs" }) +public final class ContextMessageBridge extends NativeBridge implements ContextMessage { private ContextMessage jcontextMessage; private String contextMessageId; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java index 5739a3e..7bdc526 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/DriverRestartedBridge.java @@ -20,6 +20,7 @@ package org.apache.reef.javabridge; import org.apache.reef.annotations.Unstable; import org.apache.reef.annotations.audience.DriverSide; +import org.apache.reef.annotations.audience.Interop; import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.restart.DriverRestarted; @@ -31,6 +32,9 @@ import java.util.Set; @Private @DriverSide @Unstable +@Interop( + CppFiles = { "Clr2JavaImpl.h", "DriverRestartedClr2Java.cpp" }, + CsFiles = { "IDriverRestartedClr2Java.cs", "DriverRestarted.cs" }) public final class DriverRestartedBridge extends NativeBridge { // Used by bridge to extract field. Please take this into consideration when changing the name of the field. private final String[] expectedEvaluatorIds; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/EvaluatorRequestorBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/EvaluatorRequestorBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/EvaluatorRequestorBridge.java index 34c3fbf..a046090 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/EvaluatorRequestorBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/EvaluatorRequestorBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.evaluator.EvaluatorRequest; import org.apache.reef.driver.evaluator.EvaluatorRequestor; import org.apache.reef.util.logging.LoggingScope; @@ -29,6 +31,10 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.evaluator.EvaluatorRequestor}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "EvaluatorRequestorClr2Java.cpp" }, + CsFiles = { "IEvaluatorRequestorClr2Java.cs", "EvaluatorRequestor.cs" }) public final class EvaluatorRequestorBridge extends NativeBridge { private static final Logger LOG = Logger.getLogger(EvaluatorRequestorBridge.class.getName()); private final boolean isBlocked; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java index f05c06a..e607a7a 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedContextBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.context.ActiveContext; import org.apache.reef.driver.context.ContextBase; import org.apache.reef.driver.context.FailedContext; @@ -30,6 +32,10 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.context.FailedContext}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "FailedContextClr2Java.cpp" }, + CsFiles = { "IFailedContextClr2Java.cs", "FailedContext.cs" }) public final class FailedContextBridge extends NativeBridge implements ContextBase { private static final Logger LOG = Logger.getLogger(FailedContextBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java index cb567c5..778964f 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedEvaluatorBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.evaluator.EvaluatorRequestor; import org.apache.reef.driver.evaluator.FailedEvaluator; import org.apache.reef.util.logging.LoggingScopeFactory; @@ -27,7 +29,9 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.evaluator.FailedEvaluator}. */ -public class FailedEvaluatorBridge extends NativeBridge { +@Private +@Interop(CppFiles = { "FailedEvaluatorClr2Java.cpp" }, CsFiles = { "IFailedEvaluatorClr2Java", "FailedEvaluator" }) +public final class FailedEvaluatorBridge extends NativeBridge { private static final Logger LOG = Logger.getLogger(FailedEvaluatorBridge.class.getName()); private FailedEvaluator jfailedEvaluator; private EvaluatorRequestorBridge evaluatorRequestorBridge; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java index 21443a5..b31612a 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/FailedTaskBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.task.FailedTask; import java.nio.charset.StandardCharsets; @@ -27,6 +29,10 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.task.FailedTask}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "FailedTaskClr2Java.cpp" }, + CsFiles = { "IFailedTaskClr2Java.cs", "FailedTask.cs" }) public final class FailedTaskBridge extends NativeBridge { private static final Logger LOG = Logger.getLogger(FailedTaskBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/HttpServerEventBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/HttpServerEventBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/HttpServerEventBridge.java index 7e21085..4752d81 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/HttpServerEventBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/HttpServerEventBridge.java @@ -18,9 +18,16 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; + /** * The Java-CLR bridge object for http server events. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "HttpServerClr2Java.cpp"}, + CsFiles = { "IHttpServerBridgeClr2Java.cs", "HttpMessage.cs" }) public final class HttpServerEventBridge extends NativeBridge { private String queryString; private byte[] queryRequestData; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropLogger.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropLogger.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropLogger.java index 68be034..8ad33ef 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropLogger.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropLogger.java @@ -18,6 +18,9 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; + import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -25,7 +28,9 @@ import java.util.logging.Logger; /** * Logger called from CLR code. */ -public class InteropLogger { +@Private +@Interop(CppFiles = { "JavaClrBridge.cpp", "InteropLogger.h", "InteropLogger.cpp" }) +public final class InteropLogger { private static final Logger LOG = Logger.getLogger("InteropLogger"); private HashMap<Integer, Level> levelHashMap; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropReturnInfo.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropReturnInfo.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropReturnInfo.java index de69b19..dc1baef 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropReturnInfo.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/InteropReturnInfo.java @@ -18,12 +18,17 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; + import java.util.ArrayList; /** * Information about return codes/exceptions coming from bridge. */ -public class InteropReturnInfo { +@Private +@Interop(CppFiles = { "InteropReturnInfo.cpp", "InteropReturnInfo.cs"}, CsFiles = { "IInteropReturnInfo.cs" }) +public final class InteropReturnInfo { private int returnCode; private ArrayList<String> exceptionList = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/JavaBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/JavaBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/JavaBridge.java index 4fb0b84..65c0a13 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/JavaBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/JavaBridge.java @@ -18,9 +18,14 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; + /** * TODO[JIRA REEF-383] Document/Refactor JavaBridge. */ +@Private +@Interop(CppFiles = "JavaClrBridge.cs") public class JavaBridge { private static final String CPP_BRIDGE = "JavaClrBridge"; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeBridge.java index 2046fd3..2cc0cf8 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeBridge.java @@ -18,12 +18,15 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Private; + import java.util.logging.Level; import java.util.logging.Logger; /** * Abstract bridge class. */ +@Private public abstract class NativeBridge implements AutoCloseable { private static final Logger LOG = Logger.getLogger(NativeBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeInterop.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeInterop.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeInterop.java index 32b10d0..6de53ef 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeInterop.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/NativeInterop.java @@ -18,12 +18,16 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.javabridge.generic.DriverRestartCompletedBridge; /** * Java interfaces of CLR/Java bridge. * Implementations of the methods can be found at lang/cs/Org.Apache.REEF.Bridge/JavaClrBridge.cpp. */ +@Private +@Interop(CppFiles = { "JavaClrBridge.h", "JavaClrBridge.cpp" }) public final class NativeInterop { public static final String GLOBAL_LIBRARIES_FILENAME = "userSuppliedGlobalLibraries.txt"; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java index aef8dc8..ed64ff9 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/RunningTaskBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.task.RunningTask; import java.util.logging.Logger; @@ -25,6 +27,10 @@ import java.util.logging.Logger; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.task.RunningTask}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "RunningTaskClr2Java.cpp" }, + CsFiles = { "IRunningTaskClr2Java.cs", "RunningTask.cs" }) public final class RunningTaskBridge extends NativeBridge { private static final Logger LOG = Logger.getLogger(RunningTaskBridge.class.getName()); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/SuspendedTaskBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/SuspendedTaskBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/SuspendedTaskBridge.java index 2360cf6..d585244 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/SuspendedTaskBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/SuspendedTaskBridge.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.task.SuspendedTask; import org.apache.reef.io.Message; import org.apache.reef.io.naming.Identifiable; @@ -25,6 +27,10 @@ import org.apache.reef.io.naming.Identifiable; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.task.SuspendedTask}. */ +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "SuspendedTaskClr2Java.cpp" }, + CsFiles = { "ISuspendedTaskClr2Java.cs", "SuspendedTask.cs" }) public final class SuspendedTaskBridge extends NativeBridge implements Identifiable, Message { private final SuspendedTask jsuspendedTask; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java index db23ee2..d6b1cdb 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/TaskMessageBridge.java @@ -18,12 +18,18 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.task.TaskMessage; /** * The Java-CLR bridge object for {@link org.apache.reef.driver.task.TaskMessage}. */ -public class TaskMessageBridge extends NativeBridge { +@Private +@Interop( + CppFiles = { "Clr2JavaImpl.h", "TaskMessageClr2Java.cpp" }, + CsFiles = { "ITaskMessageClr2Java.cs", "TaskMessage.cs" }) +public final class TaskMessageBridge extends NativeBridge { private TaskMessage jtaskMessage; private String taskId; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/70331278/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java index 2399101..1bfda31 100644 --- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java +++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java @@ -18,6 +18,8 @@ */ package org.apache.reef.javabridge; +import org.apache.reef.annotations.audience.Interop; +import org.apache.reef.annotations.audience.Private; import org.apache.reef.driver.evaluator.EvaluatorDescriptor; import org.apache.reef.tang.ClassHierarchy; import org.apache.reef.tang.implementation.protobuf.ProtocolBufferClassHierarchy; @@ -34,6 +36,8 @@ import java.nio.file.Paths; /** * CLR/Java bridge utilities. */ +@Private +@Interop public final class Utilities { public static ClassHierarchy loadClassHierarchy(final String classHierarchyFile) { // TODO[JIRA REEF-400] The file should be created via AvroClassHierarchySerializer