You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by we...@apache.org on 2015/12/16 02:36:22 UTC

reef git commit: [REEF-1082] Create C# Attributes that Parallel Java Annotations

Repository: reef
Updated Branches:
  refs/heads/master b73c22295 -> 81090b636


[REEF-1082] Create C# Attributes that Parallel Java Annotations

This addressed the issue by:
  * Added new attributes.
  * Moved attributes from Common to Utilities.

JIRA:
  [REEF-1082](https://issues.apache.org/jira/browse/REEF-1082)

Pull Request:
  This closes #733


Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/81090b63
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/81090b63
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/81090b63

Branch: refs/heads/master
Commit: 81090b636a401c4e8c70c3da075ba2b688eabbf8
Parents: b73c222
Author: Andrew Chung <af...@gmail.com>
Authored: Tue Dec 15 11:26:52 2015 -0800
Committer: Markus Weimer <we...@apache.org>
Committed: Tue Dec 15 17:34:30 2015 -0800

----------------------------------------------------------------------
 .../Org.Apache.REEF.Client/API/IREEFClient.cs   |  2 +-
 .../API/TcpPortConfigurationModule.cs           |  2 +-
 .../Common/IJobSubmissionResult.cs              |  2 +-
 .../Org.Apache.REEF.Client/Local/LocalClient.cs |  2 +-
 .../Attributes/UnstableAttribute.cs             | 57 --------------------
 .../Files/REEFFileNames.cs                      |  2 +-
 .../Org.Apache.REEF.Common.csproj               |  1 -
 lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs |  2 +-
 .../API/IIMRUResultHandler.cs                   |  2 +-
 .../ResultHandler/DefaultResultHandler.cs       |  2 +-
 .../OnREEF/ResultHandler/WriteResultHandler.cs  |  2 +-
 .../Attributes/ClientSideAttribute.cs           | 30 +++++++++++
 .../Attributes/DriverSideAttribute.cs           | 30 +++++++++++
 .../Attributes/EvaluatorSideAttribute.cs        | 30 +++++++++++
 .../Attributes/InteropAttribute.cs              | 48 +++++++++++++++++
 .../Attributes/PrivateAttribute.cs              | 31 +++++++++++
 .../Attributes/TaskSideAttribute.cs             | 30 +++++++++++
 .../Attributes/UnstableAttribute.cs             | 57 ++++++++++++++++++++
 .../Org.Apache.Reef.Utilities.csproj            |  9 +++-
 19 files changed, 273 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Client/API/IREEFClient.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Client/API/IREEFClient.cs b/lang/cs/Org.Apache.REEF.Client/API/IREEFClient.cs
index 25211d2..010c9e2 100644
--- a/lang/cs/Org.Apache.REEF.Client/API/IREEFClient.cs
+++ b/lang/cs/Org.Apache.REEF.Client/API/IREEFClient.cs
@@ -21,7 +21,7 @@ using System;
 using System.Threading.Tasks;
 using Org.Apache.REEF.Client.Common;
 using Org.Apache.REEF.Client.YARN.RestClient.DataModel;
-using Org.Apache.REEF.Common.Attributes;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.Client.API
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Client/API/TcpPortConfigurationModule.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Client/API/TcpPortConfigurationModule.cs b/lang/cs/Org.Apache.REEF.Client/API/TcpPortConfigurationModule.cs
index affe511..46b1fd8 100644
--- a/lang/cs/Org.Apache.REEF.Client/API/TcpPortConfigurationModule.cs
+++ b/lang/cs/Org.Apache.REEF.Client/API/TcpPortConfigurationModule.cs
@@ -15,12 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using Org.Apache.REEF.Common.Attributes;
 using Org.Apache.REEF.Common.Io;
 using Org.Apache.REEF.Common.Client.Parameters;
 using Org.Apache.REEF.Tang.Formats;
 using Org.Apache.REEF.Tang.Interface;
 using Org.Apache.REEF.Tang.Util;
+using Org.Apache.REEF.Utilities.Attributes;
 using Org.Apache.REEF.Wake.Remote.Parameters;
 
 namespace Org.Apache.REEF.Client.API

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Client/Common/IJobSubmissionResult.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Client/Common/IJobSubmissionResult.cs b/lang/cs/Org.Apache.REEF.Client/Common/IJobSubmissionResult.cs
index 6ecdbb4..b6f9767 100644
--- a/lang/cs/Org.Apache.REEF.Client/Common/IJobSubmissionResult.cs
+++ b/lang/cs/Org.Apache.REEF.Client/Common/IJobSubmissionResult.cs
@@ -18,7 +18,7 @@
  */
 
 using Org.Apache.REEF.Client.YARN.RestClient.DataModel;
-using Org.Apache.REEF.Common.Attributes;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.Client.Common
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Client/Local/LocalClient.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Client/Local/LocalClient.cs b/lang/cs/Org.Apache.REEF.Client/Local/LocalClient.cs
index 2c54259..cb05e14 100644
--- a/lang/cs/Org.Apache.REEF.Client/Local/LocalClient.cs
+++ b/lang/cs/Org.Apache.REEF.Client/Local/LocalClient.cs
@@ -28,11 +28,11 @@ using Org.Apache.REEF.Client.Avro.Local;
 using Org.Apache.REEF.Client.Common;
 using Org.Apache.REEF.Client.Local.Parameters;
 using Org.Apache.REEF.Client.YARN.RestClient.DataModel;
-using Org.Apache.REEF.Common.Attributes;
 using Org.Apache.REEF.Common.Avro;
 using Org.Apache.REEF.Common.Files;
 using Org.Apache.REEF.Tang.Annotations;
 using Org.Apache.REEF.Tang.Implementations.Tang;
+using Org.Apache.REEF.Utilities.Attributes;
 using Org.Apache.REEF.Utilities.Logging;
 using Org.Apache.REEF.Wake.Remote.Parameters;
 

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Common/Attributes/UnstableAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Attributes/UnstableAttribute.cs b/lang/cs/Org.Apache.REEF.Common/Attributes/UnstableAttribute.cs
deleted file mode 100644
index bebf03c..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Attributes/UnstableAttribute.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-// 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.
-
-using System;
-
-namespace Org.Apache.REEF.Common.Attributes
-{
-    /// <summary>
-    /// Signals that the API is NOT stabilized.
-    /// </summary>
-    [AttributeUsage(AttributeTargets.All)]
-    public sealed class UnstableAttribute : Attribute
-    {
-        private readonly string _descriptionOfLikelyChange;
-        private readonly string _versionIntroduced;
-
-        /// <summary>
-        /// </summary>
-        /// <param name="versionIntroduced">The version in which this unstable API was introduced.</param>
-        /// <param name="descriptionOfLikelyChange">Description of the likely change in the future.</param>
-        public UnstableAttribute(string versionIntroduced, string descriptionOfLikelyChange = "")
-        {
-            _versionIntroduced = versionIntroduced;
-            _descriptionOfLikelyChange = descriptionOfLikelyChange;
-        }
-
-        /// <summary>
-        /// The version in which this unstable API was introduced.
-        /// </summary>
-        public string VersionIntroduced
-        {
-            get { return _versionIntroduced; }
-        }
-
-        /// <summary>
-        /// Description of the likely change in the future.
-        /// </summary>
-        public string DescriptionOfLikelyChange
-        {
-            get { return _descriptionOfLikelyChange; }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Common/Files/REEFFileNames.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Files/REEFFileNames.cs b/lang/cs/Org.Apache.REEF.Common/Files/REEFFileNames.cs
index 52bd1cc..99d69c6 100644
--- a/lang/cs/Org.Apache.REEF.Common/Files/REEFFileNames.cs
+++ b/lang/cs/Org.Apache.REEF.Common/Files/REEFFileNames.cs
@@ -19,8 +19,8 @@
 
 using System.Diagnostics.CodeAnalysis;
 using System.IO;
-using Org.Apache.REEF.Common.Attributes;
 using Org.Apache.REEF.Tang.Annotations;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.Common.Files
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
index 836a6db..30af205 100644
--- a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
+++ b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
@@ -54,7 +54,6 @@ under the License.
     <Compile Include="Api\AbstractFailure.cs" />
     <Compile Include="Api\IAbstractFailure.cs" />
     <Compile Include="Api\IFailure.cs" />
-    <Compile Include="Attributes\UnstableAttribute.cs" />
     <Compile Include="Avro\AvroDriverInfo.cs">
       <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
     </Compile>

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs b/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs
index bf8315b..5299d96 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUClient.cs
@@ -19,7 +19,7 @@
 
 using System.Collections.Generic;
 using Org.Apache.REEF.Client.Common;
-using Org.Apache.REEF.Common.Attributes;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.IMRU.API
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUResultHandler.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUResultHandler.cs b/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUResultHandler.cs
index c0276c2..55d5e18 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUResultHandler.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU/API/IIMRUResultHandler.cs
@@ -18,7 +18,7 @@
  */
 
 using System;
-using Org.Apache.REEF.Common.Attributes;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.IMRU.API
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/DefaultResultHandler.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/DefaultResultHandler.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/DefaultResultHandler.cs
index b694616..ce60b44 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/DefaultResultHandler.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/DefaultResultHandler.cs
@@ -18,9 +18,9 @@
  */
 
 using System;
-using Org.Apache.REEF.Common.Attributes;
 using Org.Apache.REEF.IMRU.API;
 using Org.Apache.REEF.Tang.Annotations;
+using Org.Apache.REEF.Utilities.Attributes;
 
 namespace Org.Apache.REEF.IMRU.OnREEF.ResultHandler
 {

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/WriteResultHandler.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/WriteResultHandler.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/WriteResultHandler.cs
index 5c48bcd..e6c4202 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/WriteResultHandler.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/ResultHandler/WriteResultHandler.cs
@@ -19,10 +19,10 @@
 
 using System;
 using System.IO;
-using Org.Apache.REEF.Common.Attributes;
 using Org.Apache.REEF.IMRU.API;
 using Org.Apache.REEF.IO.FileSystem;
 using Org.Apache.REEF.Tang.Annotations;
+using Org.Apache.REEF.Utilities.Attributes;
 using Org.Apache.REEF.Utilities.Diagnostics;
 using Org.Apache.REEF.Utilities.Logging;
 using Org.Apache.REEF.Wake.Remote.Impl;

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/ClientSideAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/ClientSideAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/ClientSideAttribute.cs
new file mode 100644
index 0000000..b82be40
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/ClientSideAttribute.cs
@@ -0,0 +1,30 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target should be used by REEF Clients.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class ClientSideAttribute : Attribute
+    {
+        // Intentionally empty.
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/DriverSideAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/DriverSideAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/DriverSideAttribute.cs
new file mode 100644
index 0000000..57099ce
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/DriverSideAttribute.cs
@@ -0,0 +1,30 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target should be used at the Job Driver.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class DriverSideAttribute : Attribute
+    {
+        // Intentionally empty.
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/EvaluatorSideAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/EvaluatorSideAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/EvaluatorSideAttribute.cs
new file mode 100644
index 0000000..65928b7
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/EvaluatorSideAttribute.cs
@@ -0,0 +1,30 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target should be used by Evaluators.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class EvaluatorSideAttribute : Attribute
+    {
+        // Intentionally empty.
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/InteropAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/InteropAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/InteropAttribute.cs
new file mode 100644
index 0000000..6fd5578
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/InteropAttribute.cs
@@ -0,0 +1,48 @@
+// 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.
+
+using System;
+using System.Collections.Generic;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target is used at the Interop layer. Should not be used
+    /// by the user, and may change at any time without a deprecation phase.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class InteropAttribute : Attribute
+    {
+        private readonly ISet<string> _cppFiles;
+
+        public InteropAttribute(ISet<string> cppFiles = null)
+        {
+            _cppFiles = cppFiles == null ? new HashSet<string>() : new HashSet<string>(cppFiles);
+        }
+
+        /// <summary>
+        /// The C++ files associated with the C# file.
+        /// </summary>
+        public ISet<string> CppFiles
+        {
+            get
+            {
+                return new HashSet<string>(_cppFiles);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/PrivateAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/PrivateAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/PrivateAttribute.cs
new file mode 100644
index 0000000..5ba0255
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/PrivateAttribute.cs
@@ -0,0 +1,31 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target should not be used by users, and may change
+    /// at any time without a deprecation phase.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class PrivateAttribute : Attribute
+    {
+        // Intentionally empty.
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/TaskSideAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/TaskSideAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/TaskSideAttribute.cs
new file mode 100644
index 0000000..4778500
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/TaskSideAttribute.cs
@@ -0,0 +1,30 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Attribute target should be used by Tasks.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class TaskSideAttribute : Attribute
+    {
+        // Intentionally empty.
+    }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Attributes/UnstableAttribute.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Attributes/UnstableAttribute.cs b/lang/cs/Org.Apache.REEF.Utilities/Attributes/UnstableAttribute.cs
new file mode 100644
index 0000000..0a4f8c5
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Utilities/Attributes/UnstableAttribute.cs
@@ -0,0 +1,57 @@
+// 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.
+
+using System;
+
+namespace Org.Apache.REEF.Utilities.Attributes
+{
+    /// <summary>
+    /// Signals that the API is NOT stabilized.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.All)]
+    public sealed class UnstableAttribute : Attribute
+    {
+        private readonly string _descriptionOfLikelyChange;
+        private readonly string _versionIntroduced;
+
+        /// <summary>
+        /// </summary>
+        /// <param name="versionIntroduced">The version in which this unstable API was introduced.</param>
+        /// <param name="descriptionOfLikelyChange">Description of the likely change in the future.</param>
+        public UnstableAttribute(string versionIntroduced, string descriptionOfLikelyChange = "")
+        {
+            _versionIntroduced = versionIntroduced;
+            _descriptionOfLikelyChange = descriptionOfLikelyChange;
+        }
+
+        /// <summary>
+        /// The version in which this unstable API was introduced.
+        /// </summary>
+        public string VersionIntroduced
+        {
+            get { return _versionIntroduced; }
+        }
+
+        /// <summary>
+        /// Description of the likely change in the future.
+        /// </summary>
+        public string DescriptionOfLikelyChange
+        {
+            get { return _descriptionOfLikelyChange; }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/81090b63/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
index d6b5f08..b251f84 100644
--- a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
+++ b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
@@ -38,6 +38,13 @@ under the License.
   </ItemGroup>
   <ItemGroup>
     <Compile Include="AsyncUtils\RemoveSynchronizationContextAwaiter.cs" />
+    <Compile Include="Attributes\ClientSideAttribute.cs" />
+    <Compile Include="Attributes\DriverSideAttribute.cs" />
+    <Compile Include="Attributes\EvaluatorSideAttribute.cs" />
+    <Compile Include="Attributes\InteropAttribute.cs" />
+    <Compile Include="Attributes\PrivateAttribute.cs" />
+    <Compile Include="Attributes\TaskSideAttribute.cs" />
+    <Compile Include="Attributes\UnstableAttribute.cs" />
     <Compile Include="AvroUtils.cs" />
     <Compile Include="ByteUtilities.cs" />
     <Compile Include="Diagnostics\DiagnosticsMessages.cs" />
@@ -67,4 +74,4 @@ under the License.
   <Target Name="AfterBuild">
   </Target>
   -->
-</Project>
+</Project>
\ No newline at end of file