Index: /ruby/trunk/lib/models/rm/common/change_control.rb
===================================================================
--- /ruby/trunk/lib/models/rm/common/change_control.rb	(revision 160)
+++ /ruby/trunk/lib/models/rm/common/change_control.rb	(revision 161)
@@ -127,5 +127,5 @@
 
         class Original_Version < Version
-          attr_reader :attestations
+          attr_reader :attestations, :other_input_version_uids
 
           def initialize(args = { })
@@ -288,4 +288,34 @@
                                                   :signature => args[:signature])
           end
+
+          def commit_original_merged_version(args = { })
+            @all_versions << Original_Version.new(:uid => args[:uid],
+                                                  :contribution => args[:contribution],
+                                              :preceding_version_uid => args[:preceding_version_uid],
+                                              :commit_audit => args[:commit_audit],
+                                              :lifecycle_state => args[:lifecycle_state],
+                                              :data => args[:data],
+                                              :attestations => args[:attestations],
+                                              :other_input_version_uids => args[:other_input_version_uids],
+                                              :signature => args[:signature])
+          end
+
+          def commit_imported_version(args = { })
+            @all_versions << Imported_Version.new(:item => args[:item],
+                                                  :contribution => args[:contribution],
+                                                  :commit_audit => args[:commit_audit])
+          end
+
+          def commit_attestation(args = { })
+            if args[:attestation].nil?
+              raise ArgumentError, 'attestation is mandatory'
+            end
+            if self.has_version_id?(args[:uid]) && self.is_original_version?(args[:uid])
+              self.version_with_id(args[:uid]).attestations << args[:attestation]
+              self.version_with_id(args[:uid]).signature = args[:signature]
+            else
+              raise ArgumentError, 'uid invalid'
+            end
+          end
         end
       end # of Change_Control
Index: /ruby/trunk/lib/models/tests/rm/test_common.rb
===================================================================
--- /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 160)
+++ /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 161)
@@ -459,4 +459,30 @@
                                                 :signature => 'testtett')}
     assert_equal 5, @versioned_object.version_count
+    assert_nothing_raised(Exception){
+      @versioned_object.commit_original_merged_version(:contribution => @original_version.contribution,
+                                                       :uid => @original_version.uid,
+                                                       :preceding_version_uid => @original_version.preceding_version_uid,
+                                                       :commit_audit => @original_version.commit_audit,
+                                                       :lifecycle_state => @original_version.lifecycle_state,
+                                                       :attestations => @original_version.attestations,
+                                                       :data => @original_version.data,
+                                                       :other_input_version_uids => @original_version.other_input_version_uids,
+                                                       :signature => @original_version.signature)}
+    assert_equal 6, @versioned_object.version_count
+    assert_nothing_raised(Exception){
+      @versioned_object.commit_imported_version(:contribution => @imported_version.contribution,
+                                                :commit_audit => @imported_version.commit_audit,
+                                                :item => @imported_version.item)}
+    assert_equal 7, @versioned_object.version_count
+    dv_date_time = DV_Date_Time.new('2009-07-07T22:11:31')
+    attestation = Attestation.new(:system_id => 'NERV2',
+                                  :committer => @version.contribution,
+                                  :time_committed => dv_date_time,
+                                  :change_type => @original_version.commit_audit.change_type,
+                                  :reason => DV_Text.new('signed'))
+    assert_nothing_raised(Exception){
+      @versioned_object.commit_attestation(:attestation => attestation,
+                                           :uid => @original_version.uid,
+                                           :signature => 'new signature')}
   end
 end
