Skip to content

ZO-4267: postgresql connector copy move lock #129

ZO-4267: postgresql connector copy move lock

ZO-4267: postgresql connector copy move lock #129

GitHub Actions / Test Results failed Feb 27, 2024 in 0s

7 fail, 57 skipped, 2 704 pass in 9m 4s

    2 files  ±0      2 suites  ±0   9m 4s ⏱️ +5s
2 768 tests +3  2 704 ✅ +4  57 💤 ±0  7 ❌  - 1 
2 797 runs  +3  2 733 ✅ +4  57 💤 ±0  7 ❌  - 1 

Results for commit dae2911. ± Comparison against earlier commit b5a5f05.

Annotations

Check warning on line 0 in vivi.core.src.zeit.cms.checkout.tests.test_doctests.test_suite./home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt

See this annotation in the file changed.

@github-actions github-actions / Test Results

runTest (vivi.core.src.zeit.cms.checkout.tests.test_doctests.test_suite./home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: Failed doctest test for README.txt
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 0

----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 92, in README.txt
Failed example:
    lockable.locked()
Differences (ndiff with -expected +actual):
    - True
    + False
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 94, in README.txt
Failed example:
    int(round(lockable.getLockInfo().timeout))
Exception raised:
    Traceback (most recent call last):
      File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/doctest.py", line 1350, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest README.txt[28]>", line 1, in <module>
        int(round(lockable.getLockInfo().timeout))
    AttributeError: 'NoneType' object has no attribute 'timeout'
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 106, in README.txt
Failed example:
    manager.canCheckout
Differences (ndiff with -expected +actual):
    - False
    + True
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 108, in README.txt
Failed example:
    manager.checkout()
Differences (ndiff with -expected +actual):
      Traceback (most recent call last):
    -     ...
    - CheckinCheckoutError: The content object is locked by ${name}.
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/locking.py", line 47, in setLock
    +     self.connector.lock(object.uniqueId, lock.principal_id, until)
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/mock.py", line 239, in lock
    +     raise LockingError('Resource is already locked by another principal')
    + zeit.connector.interfaces.LockingError
    + <BLANKLINE>
    + During handling of the above exception, another exception occurred:
    + <BLANKLINE>
    + Traceback (most recent call last):
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/manager.py", line 77, in checkout
    +     lockable.lock(timeout=timeout)
    +   File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.10/site-packages/zope/app/locking/adapter.py", line 76, in lock
    +     self.storage.setLock(self.context, lock)
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/locking.py", line 49, in setLock
    +     raise zope.app.locking.interfaces.LockingError(e.uniqueId, *e.args)
    + zope.app.locking.interfaces.LockingError: Resource is already locked by another principal
    + <BLANKLINE>
    + During handling of the above exception, another exception occurred:
    + <BLANKLINE>
    + Traceback (most recent call last):
    +   File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/doctest.py", line 1350, in __run
    +     exec(compile(example.source, filename, "single",
    +   File "<doctest README.txt[33]>", line 1, in <module>
    +     manager.checkout()
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/manager.py", line 82, in checkout
    +     raise zeit.cms.checkout.interfaces.CheckinCheckoutError(*e.args)
    + zeit.cms.checkout.interfaces.CheckinCheckoutError
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/doctest.py", line 2221, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for README.txt
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 0

----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 92, in README.txt
Failed example:
    lockable.locked()
Differences (ndiff with -expected +actual):
    - True
    + False
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 94, in README.txt
Failed example:
    int(round(lockable.getLockInfo().timeout))
Exception raised:
    Traceback (most recent call last):
      File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/doctest.py", line 1350, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest README.txt[28]>", line 1, in <module>
        int(round(lockable.getLockInfo().timeout))
    AttributeError: 'NoneType' object has no attribute 'timeout'
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 106, in README.txt
Failed example:
    manager.canCheckout
Differences (ndiff with -expected +actual):
    - False
    + True
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/README.txt", line 108, in README.txt
Failed example:
    manager.checkout()
Differences (ndiff with -expected +actual):
      Traceback (most recent call last):
    -     ...
    - CheckinCheckoutError: The content object is locked by ${name}.
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/locking.py", line 47, in setLock
    +     self.connector.lock(object.uniqueId, lock.principal_id, until)
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/mock.py", line 239, in lock
    +     raise LockingError('Resource is already locked by another principal')
    + zeit.connector.interfaces.LockingError
    + <BLANKLINE>
    + During handling of the above exception, another exception occurred:
    + <BLANKLINE>
    + Traceback (most recent call last):
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/manager.py", line 77, in checkout
    +     lockable.lock(timeout=timeout)
    +   File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.10/site-packages/zope/app/locking/adapter.py", line 76, in lock
    +     self.storage.setLock(self.context, lock)
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/locking.py", line 49, in setLock
    +     raise zope.app.locking.interfaces.LockingError(e.uniqueId, *e.args)
    + zope.app.locking.interfaces.LockingError: Resource is already locked by another principal
    + <BLANKLINE>
    + During handling of the above exception, another exception occurred:
    + <BLANKLINE>
    + Traceback (most recent call last):
    +   File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/doctest.py", line 1350, in __run
    +     exec(compile(example.source, filename, "single",
    +   File "<doctest README.txt[33]>", line 1, in <module>
    +     manager.checkout()
    +   File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/manager.py", line 82, in checkout
    +     raise zeit.cms.checkout.interfaces.CheckinCheckoutError(*e.args)
    + zeit.cms.checkout.interfaces.CheckinCheckoutError

Check warning on line 0 in vivi.core.src.zeit.cms.locking.browser.tests.test_doctest.test_suite./home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/browser/README.txt

See this annotation in the file changed.

@github-actions github-actions / Test Results

runTest (vivi.core.src.zeit.cms.locking.browser.tests.test_doctest.test_suite./home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/browser/README.txt) failed

deployment/work/source/report.xml [took 1s]
Raw output
AssertionError: Failed doctest test for README.txt
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/browser/README.txt", line 0

----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/browser/README.txt", line 55, in README.txt
Failed example:
    print(browser.contents)
Differences (ndiff with -expected +actual):
      <div>
    -     ...
    +   <h1>Locks</h1>
    + <BLANKLINE>
    +   <span class="nextURL">http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@view.html</span>
    + <BLANKLINE>
    +   <form id="lightbox.form" action="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@locks.html">
    + <BLANKLINE>
    + <BLANKLINE>
    + <table class="form-fields"><tbody>
    +     <tr class="field fieldname-locked fieldtype-checkbox">
    +         <td class="label">
    -         <label for="form.locked">
    +             <label for="form.locked">
    ? ++++
    -           <span>Locked</span>
    +                 <span>Locked</span>
    ? ++++++
    -         </label>
    +             </label>
    ? ++++
    -         ...<input class="checkboxType" checked="checked" ...
    -         ...
    +         </td>
    +         <td class="widget">
    +             <div class="widget"><input class="hiddenType" id="form.locked.used" name="form.locked.used" type="hidden" value="" /> <input class="checkboxType" id="form.locked" name="form.locked" type="checkbox" value="on" disabled="disabled" />
    + <span class="checkbox"></span></div>
    + <BLANKLINE>
    +         </td>
    +     </tr>
    +     <tr class="field fieldname-locker fieldtype-label">
    +         <td class="label">
    -         <label for="form.locker">
    +             <label for="form.locker">
    ? ++++
    -           <span>Locker</span>
    +                 <span>Locker</span>
    ? ++++++
    -         </label>
    +             </label>
    ? ++++
    -         ...
    +         </td>
    +         <td class="widget">
    -         <div class="widget">zope.user</div>
    ?                             ---------
    +             <div class="widget"></div>
    ? ++++
    -       ...
    + <BLANKLINE>
    +         </td>
    +     </tr>
    +     <tr class="field fieldname-locked_until fieldtype-label">
    +         <td class="label">
    +             <label for="form.locked_until">
    +                 <span>Locked until</span>
    +             </label>
    +         </td>
    +         <td class="widget">
    +             <div class="widget"></div>
    + <BLANKLINE>
    +         </td>
    +     </tr>
    + </tbody></table>
    + <BLANKLINE>
    + <div class="form-controls">
    + <BLANKLINE>
    -     <input type="submit" id="form.actions.unlock" name="form.actions.unlock" value="Unlock" class="button" />
    ?                                           --                         --             ^^^
    +     <input type="submit" id="form.actions.lock" name="form.actions.lock" value="Lock" class="button" />
    ?                                                                                 ^
    -     ...
    + <BLANKLINE>
    + </div>
    + <BLANKLINE>
    + </form>
    + <BLANKLINE>
    + </div>
    + <BLANKLINE>
----------------------------------------------------------------------
File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/locking/browser/README.txt", line 76, in README.txt
Failed example:
    print(browser.contents)
Differences (ndiff with -expected +actual):
    - <?xml ...
    + <?xml version="1.0"?>
    + <!DOCTYPE html
    +     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    +     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    +     <html xmlns="http://www.w3.org/1999/xhtml" data-vivi-version="5.117.0.dev0">
    +       <head>
    + <base href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/source.html" />
    + <BLANKLINE>
    +         <script type="text/javascript">
    +           var application_url = 'http://localhost:8080/++skin++cms';
    +           var context_url = 'http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia';
    +           var feature_toggles = {"add_content_permissions": true, "article_agencies": true, "article_image_animation": true, "author_lookup_in_hdok": true, "content_caching": true, "embed_cmp_thirdparty": true, "inlineform_alert_error": true, "breakingnews_with_channel": true, "push_new_articles_ua_author_tag": true, "reference_index": true, "tms_enrich_on_checkin": true, "video_import_images": true, "show_automatic_type_in_topicbox": true, "ard_sync_api": true, "normalize_quotes": false, "simplecast_webhook": true, "speech_webhook": true};
    +         </script>
    + <BLANKLINE>
    +         <title>
    + <BLANKLINE>
    +             Somalia –
    +             Zeit CMS
    + <BLANKLINE>
    +         </title>
    +         <link rel="icon" type="image/x-icon" href="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/favicon.png" />
    +         <link rel="shortcut icon" type="image/x-icon" href="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/favicon.png" />
    + <BLANKLINE>
    + <BLANKLINE>
    +       <link rel="stylesheet" type="text/css" href="/fanstatic/select2/:version:3.4.1/select2.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zc.datetimewidget/:version:950d84b7a2da23ad078901918adcedee/calendar-system.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.campus/:version:4b8b2c5a9d91f13bc08014aa514db265/editor.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.cms/:version:ba4181d0a0810c09d2121c9c23a46c63/:bundle:cms.css;cms_widgets.css;forms.css;lightbox.css;object_details.css;tables.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.article.recension/:version:1ad68a80938817ed1407d514ee01a21d/recension.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.author/:version:1b2d7fcce8cf64c1d35fa1ca1d577e53/author.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.link/:version:8b2b0725bb6c24731fc9c495aa6ca664/link.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.edit/:version:1f97ddc3206c341836d3b196714f504d/editor.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/cropper/:version:0.10.0.post1/cropper.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/colorpicker/:version:1.0.9.post1/jquery.colorpicker.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.cms.js/:version:342aeea57028214f34d770e3658bcd0d/jquery/jquery-ui-custom-theme/jquery-ui-1.10.4.custom.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.addcentral/:version:07b371fe4a9019e0a28cca96aa3a8bf3/addcentral.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.gallery/:version:60c44b5d3d5681a1e5fe3b315d72e9d6/gallery.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.image/:version:e1c07076067e9b353a0603ecd7129093/:bundle:imagegroup.css;variant.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.volume/:version:389855a8751c1ed7afa0643de8d3839d/toclisting.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.crop/:version:81f2f9e8c266536530a9f73752a08e92/:bundle:imp.css;ui4w.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.find/:version:cf697b0ecbde528a5ff6200358287a54/find.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.push/:version:a9c0b70f129bddd4cc8e7dbf10a19a98/push.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.workflow/:version:4d74a91de8e8ebb6c0d603e9984d1c59/workflow.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.article/:version:dd9f6e74a57191b73ad9864452a736ed/editor.css" />
    + <link rel="stylesheet" type="text/css" href="/fanstatic/zeit.content.cp/:version:d0cf9b38f9b091947f1b67d2a231f7d0/editor.css" />
    + <script type="text/javascript" src="/fanstatic/handlebars/:version:1.3.0/handlebars.js"></script>
    + <script type="text/javascript" src="/fanstatic/jquery/:version:1.8.2/jquery.js"></script>
    + <script type="text/javascript" src="/fanstatic/mochikit/:version:1.4.2.post1/:bundle:Base.js;MockDOM.js;Async.js;DOM.js;DateTime.js;Format.js;Iter.js;Logging.js;Test.js;LoggingPane.js;Selector.js;Style.js;Color.js;Position.js;Signal.js;Visual.js;DragAndDrop.js;Sortable.js"></script>
    + <script type="text/javascript" src="/fanstatic/select2/:version:3.4.1/:bundle:select2.js;select2_locale_de.js"></script>
    + <script type="text/javascript" src="/fanstatic/underscore.js/:version:1.5.2/underscore.js"></script>
    + <script type="text/javascript" src="/fanstatic/zc.datetimewidget/:version:950d84b7a2da23ad078901918adcedee/:bundle:calendar.js;calendar-setup.js"></script>
    + <script type="text/javascript" src="/fanstatic/zc.datetimewidget/:version:950d84b7a2da23ad078901918adcedee/languages/calendar-en.js"></script>
    + <script type="text/javascript" src="/fanstatic/zc.datetimewidget/:version:950d84b7a2da23ad078901918adcedee/datetimewidget.js"></script>
    + <script type="text/javascript" src="/fanstatic/zc.table/:version:bc81cab2ffb05820b7649c71e172938b/sorting.js"></script>
    + <script type="text/javascript" src="/fanstatic/backbone.js/:version:1.1.0/backbone-min.js"></script>
    + <script type="text/javascript" src="/fanstatic/cropper/:version:0.10.0.post1/cropper.js"></script>
    + <script type="text/javascript" src="/fanstatic/jqueryui/:version:1.10.3+tooltip/ui/jquery-ui.js"></script>
    + <script type="text/javascript" src="/fanstatic/colorpicker/:version:1.0.9.post1/jquery.colorpicker.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cms.js/:version:342aeea57028214f34d770e3658bcd0d/:bundle:formlib.js;namespace.js;draganddrop.js;logging.js;base.js;autocomplete.js;bullet.js;colorpicker.js;counter.js;details.js;dnd.js;filename.js;filteringtable.js;json-template.js;menu.js;object_sequence.js;objectbrowser.js;panelHandlers.js;restructuredtext.js;table.js;tooltip.js;tree.js;view.js;xeyes.js;form.js;messages.js;tab.js;lightbox.js;object_reference.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cmp/:version:4799f2d4c38981e180383d3b18434e34/cmp.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cms.clipboard/:version:27c9afd26089ff6330fe7ae2e7f32e95/clipboard.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cms.content/:version:cb8a106385d0db40390168b542da2d0a/:bundle:dropdown.js;mobile_alternative.js;teaser.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cms.tagging/:version:007ed6d0ab60b25a0057899fdd436d57/tag.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.cms.workingcopy/:version:a80c4543a9255e3593f6cd5ae7493924/workingcopy.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.gallery/:version:60c44b5d3d5681a1e5fe3b315d72e9d6/SWFUpload/swfupload.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.gallery/:version:60c44b5d3d5681a1e5fe3b315d72e9d6/:bundle:details.js;upload.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.image/:version:e1c07076067e9b353a0603ecd7129093/:bundle:drag-images.js;form.js;mdb.js;variant.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.volume/:version:389855a8751c1ed7afa0643de8d3839d/:bundle:filtertoclisting.js;volume-covers.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.crop/:version:81f2f9e8c266536530a9f73752a08e92/:bundle:ui4w.js;imp.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.find/:version:cf697b0ecbde528a5ff6200358287a54/:bundle:objectbrowser.js;find.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.push/:version:a9c0b70f129bddd4cc8e7dbf10a19a98/:bundle:mobile.js;social.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.seo/:version:9ca4db082c8a2848a4d30b35f6b276ae/counter.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.wochenmarkt/:version:a91f20919756580dcfcd0ade06acc546/recipe.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.workflow/:version:4d74a91de8e8ebb6c0d603e9984d1c59/publish.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.edit.js/:version:ac1184f7bd2906a71adcea25c4081c91/:bundle:fold.js;json.js;edit.js;context.js;inlineform.js;drop.js;lightbox.js;library.js;sortable.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.article/:version:dd9f6e74a57191b73ad9864452a736ed/:bundle:citation_comment.js;jsuri.js;strftime.js;keyword.js;replace.js;sync.js;timer.js;topicbox.js;counter.js;filename.js;editor.js;blocks.js;html.js"></script>
    + <script type="text/javascript" src="/fanstatic/zeit.content.cp/:version:d0cf9b38f9b091947f1b67d2a231f7d0/:bundle:area.js;editor.js;library.js;teaser.js"></script></head>
    +       <body class="type-unknown location-repository section-IZONSection environment-testing">
    +         <div id="visualContentSeparator" class="sidebar-expanded">
    +           </div>
    +           <div id="header" class="sidebar-expanded">
    +           <ul id="breadcrumbs">
    +             <li>
    +               <a href="http://localhost:8080/++skin++cms/repository" title="repository">repository</a>
    +               <span class="uniqueId">http://xml.zeit.de/</span>
    +               <span class="breadcrumb-separator">
    +                 →
    +               </span>
    +             </li>
    +             <li>
    +               <a href="http://localhost:8080/++skin++cms/repository/online" title="online">online</a>
    +               <span class="uniqueId">http://xml.zeit.de/online/</span>
    +               <span class="breadcrumb-separator">
    +                 →
    +               </span>
    +             </li>
    +             <li>
    +               <a href="http://localhost:8080/++skin++cms/repository/online/2007" title="2007">2007</a>
    +               <span class="uniqueId">http://xml.zeit.de/online/2007/</span>
    +               <span class="breadcrumb-separator">
    +                 →
    +               </span>
    +             </li>
    +             <li>
    +               <a href="http://localhost:8080/++skin++cms/repository/online/2007/01" title="01">01</a>
    +               <span class="uniqueId">http://xml.zeit.de/online/2007/01/</span>
    +               <span class="breadcrumb-separator">
    +                 →
    +               </span>
    +             </li>
    +             <li>
    +               <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia" title="Somalia">Somalia</a>
    +               <span class="uniqueId">http://xml.zeit.de/online/2007/01/Somalia</span>
    + <BLANKLINE>
    +             </li>
    +           </ul>
    +           <ul id="main-navigation"><li class="selected">
    +   <a href="http://localhost:8080/++skin++cms/@@index.html">
    +     <span>CMS</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <BLANKLINE>
    + </ul>
    + <BLANKLINE>
    +             <div class="GlobalInformation"><div id="messages_container">
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div id="messages_toggle" class="staticErrorText haveMessages">
    +         Notices
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div id="messages" class="haveMessages">
    +       <ul>
    -     <li class="message">"Somalia" has been locked.</li>
    +         <li class="message">"Somalia" has been locked.</li>
    ? ++++
    -     ...
    -     <img src=".../lock-closed-mylock.png" title="Locked by you"
    -         class="lock-closed-mylock" />
    -     ...
    +       </ul>
    + <BLANKLINE>
    +       <p id="messages_counter">
    +           Hides automatically
    +       </p>
    +       <div class="hideText">
    +         hide
    +       </div>
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    + </div>
    + <BLANKLINE>
    + <div id="user-information">
    +   User
    +   | <a href="http://localhost:8080/++skin++cms/@@logout.html">Logout</a>
    + </div>
    + </div>
    +         </div>
    + <BLANKLINE>
    +         <div id="sidebar" class="sidebar-expanded"><div xmlns:panel="http://namespaces.gocept.com/panel" panel:flex="1" class="panel unfolded" id="ClipboardPanel">
    + <BLANKLINE>
    +   <h1>
    +     <a href="http://localhost:8080/++skin++cms/workingcopy/zope.user/zeit.cms.clipboard.clipboard.Clipboard">
    +       Clipboard
    +     </a>
    +   </h1>
    + <BLANKLINE>
    +   <div class="PanelContent" id="ClipboardPanelContent">
    +     <div id="clipboardcontents" class="Tree">
    + <BLANKLINE>
    +   <ul>
    + <BLANKLINE>
    +       <li class="Root type-" uniqueid="">
    +         <p>
    +         <a href="http://localhost:8080/++skin++cms/workingcopy/zope.user/zeit.cms.clipboard.clipboard.Clipboard">Clipboard</a>
    +         <span class="uniqueId">None</span>
    +         <a title="Remove" class="deleteLink context-action" href="http://localhost:8080/++skin++cms/workingcopy/zope.user/zeit.cms.clipboard.clipboard.Clipboard/@@ajax-delete-entry">
    +           <img alt="Delete" src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/delete.png" />
    +           <span class="action-title">Remove</span>
    +         </a>
    +       </p>
    + <BLANKLINE>
    +       </li>
    + <BLANKLINE>
    +   </ul>
    + <BLANKLINE>
    + </div>
    +     <form action="">
    +       <p>
    +         <input type="button" value="Clip hinzufügen..." name="add-clip" id="clip-add-folder-link" />
    +       </p>
    +       <div id="clip-add-folder-box">
    +         Clipname: <input id="clip-add-folder-title" type="text" name="title" />
    +         <br />
    +         <input type="submit" name="add_clip" id="clip-add-folder-submit" value="Clip anlegen" /> oder
    +         <input type="button" name="cancel" id="clip-add-folder-cancel" value="Abrechen" />
    +       </div>
    +     </form>
    +     <script type="text/javascript">
    +         var clipboarddnd = new zeit.cms.Clipboard(
    +           'http://localhost:8080/++skin++cms/workingcopy/zope.user/zeit.cms.clipboard.clipboard.Clipboard', 'http://localhost:8080/++skin++cms/workingcopy/zope.user/zeit.cms.clipboard.clipboard.Clipboard/tree.html', 'clipboardcontents');
    +         clipboarddnd.connectDNDHandlers();
    +         clipboarddnd.enableAdding();
    +         </script>
    + <BLANKLINE>
    +   </div>
    + </div>
    + <BLANKLINE>
    + <BLANKLINE>
    + <div xmlns:panel="http://namespaces.gocept.com/panel" panel:flex="1" class="panel unfolded" id="WorkingcopyPanel">
    + <BLANKLINE>
    +   <h1>
    +     <a href="http://localhost:8080/++skin++cms/workingcopy/zope.user">
    +       Edited documents
    +     </a>
    +   </h1>
    + <BLANKLINE>
    +   <div class="PanelContent" id="WorkingcopyPanelContent">
    +     <div id="workingcopycontents">
    +       <div>
    +         No edited documents.
    +       </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +     </div>
    +   </div>
    + </div>
    + </div>
    +         <div id="sidebar-dragger" class="sidebar-expanded">
    +         </div>
    + <BLANKLINE>
    +         <script type="text/javascript">
    +           connect(window, 'onload', function(event) {
    +             var panel_handler = new zeit.cms.PanelHandler('http://localhost:8080/++skin++cms');
    +             panel_handler.registerPanelHandlers();
    +             });
    + <BLANKLINE>
    +             connect(window, 'onload', function(event) {
    +                 zeit.cms.sidebar_dragger = new SidebarDragger('http://localhost:8080/++skin++cms');
    +                 connect('sidebar-dragger', 'onclick', zeit.cms.sidebar_dragger,
    +                         'toggle');
    +             });
    +             </script>
    + <BLANKLINE>
    + <BLANKLINE>
    +           <div id="visualContentWrapper" class="sidebar-expanded">
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div class="contextViewsAndActions">
    +       <div class="context-views">
    +         <ul>
    + <BLANKLINE>
    +   <li class="view ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/view.html" title="View">View</a>
    +   </li>
    + <BLANKLINE>
    +   <li class="references ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@references.html" title="References">References</a>
    +   </li>
    + <BLANKLINE>
    + <BLANKLINE>
    +         </ul>
    + <BLANKLINE>
    +       </div>
    +       <div class="context-actions">
    +         <ul>
    + <BLANKLINE>
    + <li>
    +   <a title="Checkout ^O" accesskey="o" href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@checkout?came_from=source.html" id="menuitem.1709032256.0771964">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/checkout.png" />
    +     <span class="action-title">Checkout ^O</span>
    +   </a>
    +   <script language="javascript">
    +           new zeit.cms.ClickOnceAction('menuitem.1709032256.0771964');
    +           </script>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Manage lock" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@locks.html')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/lock-open.png" title="Not locked" class="lock-open" />
    +     <span class="action-title">Manage lock</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <BLANKLINE>
    +   <li class="preview ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@show_preview" rel="zeit.cms.follow_with_lock" target="_blank" title="Preview">
    +       <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/preview.png" alt="actionmenuicon" />
    +       <span class="action-title">Preview</span>
    + <BLANKLINE>
    +     </a>
    +   </li>
    + <BLANKLINE>
    +   <li class="live ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@show_live" rel="zeit.cms.follow_with_lock" target="_blank" title="Live">
    +       <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/live.png" alt="actionmenuicon" />
    +       <span class="action-title">Live</span>
    + <BLANKLINE>
    +     </a>
    +   </li>
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    + <li class="secondary-actions">
    +   <a title="Additional actions" href="javascript:zeit.cms.menu.toggle('Menu-zeit.cms.secondary-context-actions-1709032256.0772395')">
    +     <img alt="actionmenuicon" src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/submenu.png" />
    +   </a>
    +   <ul class="secondary-context-actions hidden" id="Menu-zeit.cms.secondary-context-actions-1709032256.0772395"><li>
    +   <a title="Rename" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@rename-box')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/rename.png" />
    +     <span class="action-title">Rename</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Reload folder" href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@refresh-cache" id="menuitem.1709032256.0793066">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/reload.png" />
    +     <span class="action-title">Reload folder</span>
    +   </a>
    +   <script language="javascript">
    +           new zeit.cms.ClickOnceAction('menuitem.1709032256.0793066');
    +           </script>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Change type" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@typechange-box')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/workflow.png" />
    +     <span class="action-title">Change type</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Delete" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@delete.html')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/delete.png" />
    +     <span class="action-title">Delete</span>
    +   </a>
    + </li>
    + </ul>
    + </li>
    + <BLANKLINE>
    +         </ul>
    +       </div>
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +             <div id="content">
    +               <div>
    +     <pre>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
    + &lt;article&gt;
    +   &lt;head&gt;
    + &lt;!-- CMS/document --&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="uuid"&gt;{urn:uuid:<GUID>}&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="text-length"&gt;1036&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="pagelabel"&gt;Online&lt;/attribute&gt;
    + &lt;!-- CMS/workflow --&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="supertitle"&gt;Spitzmarke hierher&lt;/attribute&gt;
    +     &lt;countings&gt;
    +       &lt;counting type="agof"&gt;
    +         &lt;code&gt;online&lt;/code&gt;
    +       &lt;/counting&gt;
    +     &lt;/countings&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="imagecount"&gt;0&lt;/attribute&gt;
    +     &lt;id&gt;
    +       &lt;uniqueid/&gt;
    +       &lt;originalpath/&gt;
    +     &lt;/id&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="page"&gt;-&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="ressort"&gt;Online&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="volume"&gt;04&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="year"&gt;2006&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="new_comments"&gt;1&lt;/attribute&gt;
    +     &lt;attribute name="revision" ns="http://namespaces.zeit.de/CMS/document"&gt;11&lt;/attribute&gt;
    +     &lt;references count="15"&gt;&lt;reference source="auto" type="intern" year="2006" issue="24" publication="ZEIT online" href="cms:/cms/work/online/2006/24/Mogadischu"&gt;&lt;title&gt;Spaltpilz Mogadischu&lt;/title&gt;&lt;description&gt;Nach 15 Jahren Bürgerkrieg ist Somalias Hauptstadt jetzt in der Hand von Islamisten. Für Washington ist die Chaosstadt ein Sammelbecken für al-Qaida&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="04" publication="ZEIT online" href="cms:/cms/work/online/2007/04/Somalia"&gt;&lt;title&gt;Mit Yusuf keinen Frieden&lt;/title&gt;&lt;description&gt;Äthiopien zieht erste Truppen ab, während Somalias Übergangsregierung nicht einmal die Hauptstadt Mogadischu kontrollieren kann.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="50" publication="ZEIT online" href="cms:/cms/work/online/2006/50/Somalia"&gt;&lt;title&gt;Schleichender Kriegsbeginn&lt;/title&gt;&lt;description&gt;In Somalia bahnt sich ein neuer Krieg an. Bereits jetzt sind Tausende äthiopische Soldaten im Land, um die Übergangsregierung vor Angriffen von Islamisten zu schützen.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/Somalia-Grill"&gt;&lt;title&gt;Ein zweites Afghanistan?&lt;/title&gt;&lt;description&gt;Mit einem Blitzkrieg sind die somalischen Gotteskrieger aus Somalia vertrieben worden. Doch damit ist der Konflikt noch lange nicht zu Ende, kommentiert&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/somalia-kismayu"&gt;&lt;title&gt;Jagd auf Islamisten&lt;/title&gt;&lt;description&gt;Nach dem Fall der Hafenstadt Kismayu verspricht Somalias Regierung jenen Islamisten Straffreiheit, die ihre Waffen abgeben - und verlangt, dass Kenia die Grenze schließt&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/somalia-donnerstag"&gt;&lt;title&gt;Islamisten auf dem Rückzug&lt;/title&gt;&lt;description&gt;Angesichts des erwarteten Sturms auf Mogadischu haben die islamistischen Rebellen die Stadt angeblich verlassen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="02" publication="ZEIT online" href="cms:/cms/work/online/2007/02/Somalia"&gt;&lt;title&gt;Zweifelhafter Eingriff&lt;/title&gt;&lt;description&gt;Die USA haben in Somalia einen angeblichen Stützpunkt von al-Qaida bombardiert. Fraglich ist jedoch, ob der Vormarsch der Islamisten dort zu stoppen ist. Eine Nachrichtenanalyse&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2002" issue="20" publication="ZEIT" href="cms:/cms/work/2002/20/200220_somalia_xml"&gt;&lt;title&gt;Mutmaßungen über eine Leiche&lt;/title&gt;&lt;description&gt;Somalia - das nächste Ziel der Allianz gegen den Terror? Ein Ortstermin im Herzen des Landes&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2002" issue="02" publication="ZEIT" href="cms:/cms/work/2002/02/200202_terror_somalia_xml"&gt;&lt;title&gt;Wo Gauner "Glücksstern" heißen&lt;/title&gt;&lt;description&gt;Amerika wäre schlecht beraten, im zerrissenen Somalia auf Terroristenjagd zu gehen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="52" publication="ZEIT online" href="cms:/cms/work/online/2006/52/Mogadischu"&gt;&lt;title&gt;Flughafen bombardiert&lt;/title&gt;&lt;description&gt;Äthiopien hat im Kampf gegen islamistische Milizen in Somalia den Flughafen der Hauptstadt Mogadischu bombardiert. Die EU warnt bereits davor, dass sich der Konflikt "zu einem umfassenden Krieg" in der Region ausweite.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="32" publication="ZEIT" href="cms:/cms/work/2006/32/Somalia"&gt;&lt;title&gt;Hassans Traum von Großsomalia&lt;/title&gt;&lt;description&gt;Am Horn von Afrika haben Islamisten die Macht erobert. Doch sie wollen keinen Gottestaat, sondern ein weltliches Reich&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/Somalia-Treffen"&gt;&lt;title&gt;EU bemüht sich um Frieden&lt;/title&gt;&lt;description&gt;Deutschland hat die Ratspräsidentschaft der Europäischen Union mit einer Initiative für Somalia begonnen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="52" publication="ZEIT online" href="cms:/cms/work/online/2006/52/somalia-sicherheitsrat"&gt;&lt;title&gt;Keine Einigung bei der UN&lt;/title&gt;&lt;description&gt;Der Sicherheitsrat der Vereinten Nationen konnte sich im Somalia-Konflikt nicht auf eine Erklärung einigen. Im ostafrikanischen Land kämpfen unterdessen weiter Islamisten gegen äthiopische Soldaten.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type=…href="http://localhost:8080/++skin++cms/@@global-settings.html">
    +     <span>Global settings</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li class="">
    +   <a href="http://localhost:8080/++skin++cms/templates">
    +     <span>Templates</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li class="">
    +   <a href="http://localhost:8080/++skin++cms/retractlog">
    +     <span>Retract log</span>
    +   </a>
    + </li>
    + </ul>
    + </li>
    + </ul>
    + <BLANKLINE>
    +             <div class="GlobalInformation"><div id="messages_container">
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div id="messages_toggle" class="staticErrorText">
    +         Notices
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div id="messages" class="noMessages">
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    + </div>
    + <BLANKLINE>
    + <div id="user-information">
    +   Manager
    +   | <a href="http://localhost:8080/++skin++cms/@@logout.html">Logout</a>
    + </div>
    + </div>
    +         </div>
    + <BLANKLINE>
    +         <div id="sidebar" class="sidebar-expanded"><div xmlns:panel="http://namespaces.gocept.com/panel" class="panel unfolded" id="NavtreePanel">
    + <BLANKLINE>
    +   <h1>
    +     <a href="http://localhost:8080/++skin++cms/repository">
    +         Dateiverwaltung
    +     </a>
    +   </h1>
    + <BLANKLINE>
    +   <div id="navtreecontents" class="PanelContent Tree">
    + <BLANKLINE>
    +   </div>
    +   <script type="text/javascript">
    +       var navtree = new Tree('http://localhost:8080/++skin++cms/repository/@@tree.html', 'navtreecontents');
    +       (function() {
    +         var ident = MochiKit.Signal.connect(
    +           window, 'onload', function() {
    +             navtree.loadTree();
    +             MochiKit.Signal.disconnect(ident);
    +          });
    +       })();
    +       MochiKit.Signal.connect(navtree, 'state-changed', function(event) {
    +         MochiKit.Signal.signal('sidebar', 'panel-content-changed');
    +       });
    +       </script>
    + <BLANKLINE>
    + </div>
    + <BLANKLINE>
    + <div xmlns:panel="http://namespaces.gocept.com/panel" panel:flex="1" class="panel unfolded" id="ClipboardPanel">
    + <BLANKLINE>
    +   <h1>
    +     <a href="http://localhost:8080/++skin++cms/workingcopy/zope.mgr/zeit.cms.clipboard.clipboard.Clipboard">
    +       Clipboard
    +     </a>
    +   </h1>
    + <BLANKLINE>
    +   <div class="PanelContent" id="ClipboardPanelContent">
    +     <div id="clipboardcontents" class="Tree">
    + <BLANKLINE>
    +   <ul>
    + <BLANKLINE>
    +       <li class="Root type-" uniqueid="">
    +         <p>
    +         <a href="http://localhost:8080/++skin++cms/workingcopy/zope.mgr/zeit.cms.clipboard.clipboard.Clipboard">Clipboard</a>
    +         <span class="uniqueId">None</span>
    +         <a title="Remove" class="deleteLink context-action" href="http://localhost:8080/++skin++cms/workingcopy/zope.mgr/zeit.cms.clipboard.clipboard.Clipboard/@@ajax-delete-entry">
    +           <img alt="Delete" src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/delete.png" />
    +           <span class="action-title">Remove</span>
    +         </a>
    +       </p>
    + <BLANKLINE>
    +       </li>
    + <BLANKLINE>
    +   </ul>
    + <BLANKLINE>
    + </div>
    +     <form action="">
    +       <p>
    +         <input type="button" value="Clip hinzufügen..." name="add-clip" id="clip-add-folder-link" />
    +       </p>
    +       <div id="clip-add-folder-box">
    +         Clipname: <input id="clip-add-folder-title" type="text" name="title" />
    +         <br />
    +         <input type="submit" name="add_clip" id="clip-add-folder-submit" value="Clip anlegen" /> oder
    +         <input type="button" name="cancel" id="clip-add-folder-cancel" value="Abrechen" />
    +       </div>
    +     </form>
    +     <script type="text/javascript">
    +         var clipboarddnd = new zeit.cms.Clipboard(
    +           'http://localhost:8080/++skin++cms/workingcopy/zope.mgr/zeit.cms.clipboard.clipboard.Clipboard', 'http://localhost:8080/++skin++cms/workingcopy/zope.mgr/zeit.cms.clipboard.clipboard.Clipboard/tree.html', 'clipboardcontents');
    +         clipboarddnd.connectDNDHandlers();
    +         clipboarddnd.enableAdding();
    +         </script>
    + <BLANKLINE>
    +   </div>
    + </div>
    + <BLANKLINE>
    + <BLANKLINE>
    + <div xmlns:panel="http://namespaces.gocept.com/panel" panel:flex="1" class="panel unfolded" id="WorkingcopyPanel">
    + <BLANKLINE>
    +   <h1>
    +     <a href="http://localhost:8080/++skin++cms/workingcopy/zope.mgr">
    +       Edited documents
    +     </a>
    +   </h1>
    + <BLANKLINE>
    +   <div class="PanelContent" id="WorkingcopyPanelContent">
    +     <div id="workingcopycontents">
    +       <div>
    +         No edited documents.
    +       </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +     </div>
    +   </div>
    + </div>
    + </div>
    +         <div id="sidebar-dragger" class="sidebar-expanded">
    +         </div>
    + <BLANKLINE>
    +         <script type="text/javascript">
    +           connect(window, 'onload', function(event) {
    +             var panel_handler = new zeit.cms.PanelHandler('http://localhost:8080/++skin++cms');
    +             panel_handler.registerPanelHandlers();
    +             });
    + <BLANKLINE>
    +             connect(window, 'onload', function(event) {
    +                 zeit.cms.sidebar_dragger = new SidebarDragger('http://localhost:8080/++skin++cms');
    +                 connect('sidebar-dragger', 'onclick', zeit.cms.sidebar_dragger,
    +                         'toggle');
    +             });
    +             </script>
    + <BLANKLINE>
    + <BLANKLINE>
    +           <div id="visualContentWrapper" class="sidebar-expanded">
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    +     <div class="contextViewsAndActions">
    +       <div class="context-views">
    +         <ul>
    + <BLANKLINE>
    +   <li class="dav_properties ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@properties.html" title="DAV Properties">DAV Properties</a>
    +   </li>
    + <BLANKLINE>
    +   <li class="view ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/view.html" title="View">View</a>
    +   </li>
    + <BLANKLINE>
    +   <li class="admin_menu ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@admin.html" title="Admin Menu">Admin Menu</a>
    +   </li>
    + <BLANKLINE>
    +   <li class="references ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@references.html" title="References">References</a>
    +   </li>
    + <BLANKLINE>
    + <BLANKLINE>
    +         </ul>
    + <BLANKLINE>
    +       </div>
    +       <div class="context-actions">
    +         <ul>
    + <BLANKLINE>
    + <li>
    +   <a title="Checkout ^O" accesskey="o" href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@checkout?came_from=source.html" id="menuitem.1709032256.7085342">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/checkout.png" />
    +     <span class="action-title">Checkout ^O</span>
    +   </a>
    +   <script language="javascript">
    +           new zeit.cms.ClickOnceAction('menuitem.1709032256.7085342');
    +           </script>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Manage lock" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@locks.html')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/lock-open.png" title="Not locked" class="lock-open" />
    +     <span class="action-title">Manage lock</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <BLANKLINE>
    +   <li class="preview ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@show_preview" rel="zeit.cms.follow_with_lock" target="_blank" title="Preview">
    +       <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/preview.png" alt="actionmenuicon" />
    +       <span class="action-title">Preview</span>
    + <BLANKLINE>
    +     </a>
    +   </li>
    + <BLANKLINE>
    +   <li class="live ">
    +     <a href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@show_live" rel="zeit.cms.follow_with_lock" target="_blank" title="Live">
    +       <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/live.png" alt="actionmenuicon" />
    +       <span class="action-title">Live</span>
    + <BLANKLINE>
    +     </a>
    +   </li>
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    + <BLANKLINE>
    + <li class="secondary-actions">
    +   <a title="Additional actions" href="javascript:zeit.cms.menu.toggle('Menu-zeit.cms.secondary-context-actions-1709032256.7085762')">
    +     <img alt="actionmenuicon" src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/submenu.png" />
    +   </a>
    +   <ul class="secondary-context-actions hidden" id="Menu-zeit.cms.secondary-context-actions-1709032256.7085762"><li>
    +   <a title="Rename" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@rename-box')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/rename.png" />
    +     <span class="action-title">Rename</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Move" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@move-box')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/move.png" />
    +     <span class="action-title">Move</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Reload folder" href="http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@refresh-cache" id="menuitem.1709032256.7099466">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/reload.png" />
    +     <span class="action-title">Reload folder</span>
    +   </a>
    +   <script language="javascript">
    +           new zeit.cms.ClickOnceAction('menuitem.1709032256.7099466');
    +           </script>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Change type" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@typechange-box')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/workflow.png" />
    +     <span class="action-title">Change type</span>
    +   </a>
    + </li>
    + <BLANKLINE>
    + <li>
    +   <a title="Delete" href="javascript:zeit.cms.lightbox_form('http://localhost:8080/++skin++cms/repository/online/2007/01/Somalia/@@delete.html')">
    +     <img src="http://localhost:8080/++skin++cms/fanstatic/zeit.cms/icons/delete.png" />
    +     <span class="action-title">Delete</span>
    +   </a>
    + </li>
    + </ul>
    + </li>
    + <BLANKLINE>
    +         </ul>
    +       </div>
    +     </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +             <div id="content">
    +               <div>
    +     <pre>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
    + &lt;article&gt;
    +   &lt;head&gt;
    + &lt;!-- CMS/document --&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="uuid"&gt;{urn:uuid:<GUID>}&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="text-length"&gt;1036&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="pagelabel"&gt;Online&lt;/attribute&gt;
    + &lt;!-- CMS/workflow --&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="supertitle"&gt;Spitzmarke hierher&lt;/attribute&gt;
    +     &lt;countings&gt;
    +       &lt;counting type="agof"&gt;
    +         &lt;code&gt;online&lt;/code&gt;
    +       &lt;/counting&gt;
    +     &lt;/countings&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="imagecount"&gt;0&lt;/attribute&gt;
    +     &lt;id&gt;
    +       &lt;uniqueid/&gt;
    +       &lt;originalpath/&gt;
    +     &lt;/id&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="page"&gt;-&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="ressort"&gt;Online&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="volume"&gt;04&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/QPS/attributes" name="year"&gt;2006&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="new_comments"&gt;1&lt;/attribute&gt;
    +     &lt;attribute name="revision" ns="http://namespaces.zeit.de/CMS/document"&gt;11&lt;/attribute&gt;
    +     &lt;references count="15"&gt;&lt;reference source="auto" type="intern" year="2006" issue="24" publication="ZEIT online" href="cms:/cms/work/online/2006/24/Mogadischu"&gt;&lt;title&gt;Spaltpilz Mogadischu&lt;/title&gt;&lt;description&gt;Nach 15 Jahren Bürgerkrieg ist Somalias Hauptstadt jetzt in der Hand von Islamisten. Für Washington ist die Chaosstadt ein Sammelbecken für al-Qaida&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="04" publication="ZEIT online" href="cms:/cms/work/online/2007/04/Somalia"&gt;&lt;title&gt;Mit Yusuf keinen Frieden&lt;/title&gt;&lt;description&gt;Äthiopien zieht erste Truppen ab, während Somalias Übergangsregierung nicht einmal die Hauptstadt Mogadischu kontrollieren kann.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="50" publication="ZEIT online" href="cms:/cms/work/online/2006/50/Somalia"&gt;&lt;title&gt;Schleichender Kriegsbeginn&lt;/title&gt;&lt;description&gt;In Somalia bahnt sich ein neuer Krieg an. Bereits jetzt sind Tausende äthiopische Soldaten im Land, um die Übergangsregierung vor Angriffen von Islamisten zu schützen.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/Somalia-Grill"&gt;&lt;title&gt;Ein zweites Afghanistan?&lt;/title&gt;&lt;description&gt;Mit einem Blitzkrieg sind die somalischen Gotteskrieger aus Somalia vertrieben worden. Doch damit ist der Konflikt noch lange nicht zu Ende, kommentiert&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/somalia-kismayu"&gt;&lt;title&gt;Jagd auf Islamisten&lt;/title&gt;&lt;description&gt;Nach dem Fall der Hafenstadt Kismayu verspricht Somalias Regierung jenen Islamisten Straffreiheit, die ihre Waffen abgeben - und verlangt, dass Kenia die Grenze schließt&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/somalia-donnerstag"&gt;&lt;title&gt;Islamisten auf dem Rückzug&lt;/title&gt;&lt;description&gt;Angesichts des erwarteten Sturms auf Mogadischu haben die islamistischen Rebellen die Stadt angeblich verlassen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="02" publication="ZEIT online" href="cms:/cms/work/online/2007/02/Somalia"&gt;&lt;title&gt;Zweifelhafter Eingriff&lt;/title&gt;&lt;description&gt;Die USA haben in Somalia einen angeblichen Stützpunkt von al-Qaida bombardiert. Fraglich ist jedoch, ob der Vormarsch der Islamisten dort zu stoppen ist. Eine Nachrichtenanalyse&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2002" issue="20" publication="ZEIT" href="cms:/cms/work/2002/20/200220_somalia_xml"&gt;&lt;title&gt;Mutmaßungen über eine Leiche&lt;/title&gt;&lt;description&gt;Somalia - das nächste Ziel der Allianz gegen den Terror? Ein Ortstermin im Herzen des Landes&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2002" issue="02" publication="ZEIT" href="cms:/cms/work/2002/02/200202_terror_somalia_xml"&gt;&lt;title&gt;Wo Gauner "Glücksstern" heißen&lt;/title&gt;&lt;description&gt;Amerika wäre schlecht beraten, im zerrissenen Somalia auf Terroristenjagd zu gehen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="52" publication="ZEIT online" href="cms:/cms/work/online/2006/52/Mogadischu"&gt;&lt;title&gt;Flughafen bombardiert&lt;/title&gt;&lt;description&gt;Äthiopien hat im Kampf gegen islamistische Milizen in Somalia den Flughafen der Hauptstadt Mogadischu bombardiert. Die EU warnt bereits davor, dass sich der Konflikt "zu einem umfassenden Krieg" in der Region ausweite.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="32" publication="ZEIT" href="cms:/cms/work/2006/32/Somalia"&gt;&lt;title&gt;Hassans Traum von Großsomalia&lt;/title&gt;&lt;description&gt;Am Horn von Afrika haben Islamisten die Macht erobert. Doch sie wollen keinen Gottestaat, sondern ein weltliches Reich&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2007" issue="01" publication="ZEIT online" href="cms:/cms/work/online/2007/01/Somalia-Treffen"&gt;&lt;title&gt;EU bemüht sich um Frieden&lt;/title&gt;&lt;description&gt;Deutschland hat die Ratspräsidentschaft der Europäischen Union mit einer Initiative für Somalia begonnen&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2006" issue="52" publication="ZEIT online" href="cms:/cms/work/online/2006/52/somalia-sicherheitsrat"&gt;&lt;title&gt;Keine Einigung bei der UN&lt;/title&gt;&lt;description&gt;Der Sicherheitsrat der Vereinten Nationen konnte sich im Somalia-Konflikt nicht auf eine Erklärung einigen. Im ostafrikanischen Land kämpfen unterdessen weiter Islamisten gegen äthiopische Soldaten.&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2001" issue="48" publication="ZEIT" href="cms:/cms/work/2001/48/200148_afghanistan.xml"&gt;&lt;title&gt;Das Rennen um Kabul&lt;/title&gt;&lt;description&gt;Im neuen Afghanistan verheißt nur eine lose Zentralregierung Stabilität. Die Macht muss künftig den Regionen gehören&lt;/description&gt;&lt;/reference&gt;&lt;reference source="auto" type="intern" year="2002" issue="34" publication="ZEIT" href="cms:/cms/work/2002/34/200234_afghanistan.xml"&gt;&lt;title&gt;Lehrer Atta, Big D und die Amerikaner&lt;/title&gt;&lt;description&gt;Beim Wiederaufbau Afghanistans setzen die USA vor allem auf die örtlichen Stammesfürsten - ein kolonialistischer Irrtum&lt;/description&gt;&lt;/reference&gt;&lt;/references&gt;
    +     &lt;keywordset&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Bevölkerung&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Terrorismus&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Innere Sicherheit&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Innenpolitik&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="no"&gt;Regierungen&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="no"&gt;Portraits&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="no"&gt;Länder&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Lebensstandard&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Armut&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="yes"&gt;Arbeit und Sozialstaat&lt;/keyword&gt;
    + 	&lt;keyword source="auto" intaxo="no"&gt;Staaten&lt;/keyword&gt;
    + &lt;/keywordset&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="author"&gt;Jochen Stahnke&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="author"&gt;Hans Meiser&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="banner"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="comments"&gt;1&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="copyrights"&gt;ZEIT online&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="erscheint"/&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="keywords"/&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="mostread"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="page"&gt;-&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="paragraphsperpage"&gt;6&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="ressort"&gt;International&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="serie"&gt;-&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/meta" name="type"&gt;article&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="volume"&gt;01&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="year"&gt;2007&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="in_rankings"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="show_commentthread"&gt;no&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/workflow" name="status"&gt;OK&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="topic"&gt;International&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="topic"&gt;Politik&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="title"&gt;Rückkehr der Warlords&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/workflow" name="last-modified-by"&gt;hegenscheidt&lt;/attribute&gt;
    + <BLANKLINE>
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="color_scheme"&gt;Redaktion&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="foldable"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="countings"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/document" name="is_content"&gt;yes&lt;/attribute&gt;
    +     &lt;attribute ns="http://namespaces.zeit.de/CMS/workflow" name="product-id"&gt;ZEDE&lt;/attribute&gt;
    + &lt;/head&gt;
    +   &lt;body bottommargin="15" leftmargin="10" topmargin="15" rightmargin="10"&gt;
    +     &lt;supertitle&gt;Somalia&lt;/supertitle&gt;
    +     &lt;title&gt;Rückkehr der Warlords&lt;/title&gt;
    +     &lt;subtitle&gt;Im Zuge des äthiopischen Vormarsches auf Mogadischu kriechen in Somalia auch die alten Miliz-Chefs wieder hervor.&lt;/subtitle&gt;
    +     &lt;byline&gt;Von Jochen Stahnke&lt;/byline&gt;
    +     &lt;p&gt;Kriegsherr Hussein Mohammed Aidid hat seine &amp;#8222;Villa Somalia&amp;#8220; wieder eingenommen, die er zuletzt an die islamistischen Milizen abtreten musste. Der ehemalige Präsidentenpalast thront weithin sichtbar auf einem Hügel Mogadischus und ist dennoch Sinnbild für den heutigen Zustand des Landes; eine Ruine, einst weiß getüncht. Jetzt sind nicht einmal mehr die vormals prunkvollen Treppenstufen von Schutt befreit. Von hier aus kontrollierte Aidid einige Straßenzüge im Zentrum Mogadischus. Hier erhoben seine Milizionäre Wegzoll &amp;#8211; ein lukratives Geschäft, das jetzt, nach einem halben Jahr Pause, plötzlich wieder in Gang kommt. &lt;image expires="2100-01-01" src="/cms/work/bilder/2007/01/aktuell/teaser_artikel/somalia-291206-410.jpg" width="410" align="center"&gt;&lt;bu&gt;Soldaten der somalischen Regierungstruppen in Mogadischu, 29. Dezember 2006&lt;/bu&gt;&lt;copyright&gt;© STRINGER/AFP/Getty Images&lt;/copyright&gt; BILD &lt;/image&gt;&lt;/p&gt;
    +     &lt;p&gt;Hussein Aidid, der Anzüge gern kurzärmelig trägt, ist gleichzeitig Innenminister und Vizepremier der von Äthiopien gestützten Übergangsregierung Somalias. Der Sohn des berüchtigten Mohammed Farah Aidid, der einst die UN-Intervention 1993 zum Desaster werden ließ, scheint von seinem Kabinett und mithin von Äthiopien freie Hand bekommen zu haben. Sie wolle die Übergangsregierung hier willkommen heißen, tönte Hussein Aidids Kampftruppe Somali National Alliance (SNA) gönnerhaft. Doch ob er und andere Kriegsfürsten zu Ministern ernannt sind oder nicht: Die Rückkehr der Warlords scheint eingeläutet. Denn Äthiopien habe nicht vor, ein Besatzungsregime in Mogadischu aufzubauen, erklärte Präsident Meles Zenawi kürzlich. &lt;/p&gt;
    +     &lt;p&gt;Schneller noch, als die Truppen der Union der Islamischen Gerichte (UIC) den selbst begonnenen Krieg gegen die Übergangsregierung verloren haben, kehren Somalias Islamisten Mogadischu nun kampflos den Rücken. Angeblich, um der Millionenstadt weiteres Blutvergießen zu ersparen, erklärte Scheich Scharif Achmed, ein als eher gemäßigt geltender UIC-Führer, gegenüber al-Dschasira. Die Islamisten haben sich in und um die südsomalische Stadt Kismaayo zurückgezogen. &lt;/p&gt;
    +     &lt;p&gt;&amp;#8222;Äthiopier kontrollieren die zentralen Orte der Stadt, man kann die Soldaten offen sehen, sogar einige Panzer&amp;#8220;, sagte ein von &lt;em&gt;ZEIT online&lt;/em&gt; telefonisch angefragter Bewohner in Mogadischu, der keine offenen Kämpfe beobachten konnte, allerdings bereits gemeldete Plünderungen bestätigte. Außerdem seien wieder wilde Straßensperren errichtet worden. So genannte &lt;em&gt;freelance militias&lt;/em&gt; marodieren, als ob sie nie weg gewesen wären. &lt;/p&gt;
    +     &lt;p&gt;Die Schnelligkeit des Zerfalls der meisten UIC-Milizen zeigt, wie fragil dieses Kampfbündnis letztlich ist. Schon die elf vereinigten Schariagerichte vertraten unterschiedliche politische und religiöse Ansichten. Die wenigsten Mitglieder unterstützen dabei wohl einen offenen Dschihad wie der ultraradikale Scheich Hassan Dahir Aweys, den die USA als Terrorist zur Fahndung ausgeschrieben haben, oder Scheich Adan Hashi &amp;#8218;Ayro&amp;#8217;, der &lt;em&gt;al-shabaab&lt;/em&gt; anführt, eine etwa 1500 Mann starke Elitetruppe der Schariamilizen. Deren schwarze Flagge ähnelt nicht ganz zufällig der von al-Qaida. Doch selbst bei &lt;em&gt;al-shabaab&lt;/em&gt; desertieren die zumeist jungen Kämpfer angesichts der Niederlage in Scharen und schließen sich den altbekannten Clanmilizen und Warlords an. &lt;/p&gt;
    +     &lt;p&gt;Um ihren Traum vom Kalifat Großsomalia zu verwirklichen, das auch äthiopische und kenianische Gebiete einschließt, ist Aweys und anderen Radikalen scheinbar jedes Mittel recht gewesen. Immer klarer wird nämlich, dass sich unter den mindestens 1000 Opfern der gescheiterten UIC-Offensive zum Großteil jugendliche Kämpfer befanden. Noch kurz vor der Offensive ließen die Islamisten alle Schulen in Mogadischu schließen, um mehr junge Kämpfer für die Front zu gewinnen. &lt;/p&gt;
    +     &lt;p&gt;Einige Kriegsherren Somalias haben sich mit ihrer Unterstützung der Islamisten offensichtlich verkalkuliert. So wandelte sich Yusuf Indha&amp;#8217;adde in den vergangenen Monaten zum strenggläubigen Anhänger des UIC. Vorher hatte er seine Streitmacht durch Drogenhandel finanziert und nebenher Hilfsorganisationen 15 Prozent ihres Budgets vor Ort an Steuern abgenommen. Nach unbestätigten Quellen befindet sich der zuletzt zum &amp;#8222;Verteidigungsminister&amp;#8220; des UIC aufgestiegene Indha&amp;#8217;adde nun zufällig auf Pilgerreise gen Mekka. &lt;/p&gt;
    +     &lt;p&gt;Clanzugehörigkeit ist in Somalia wichtiger als Religion. So setzen sich die Schariagerichte bis auf eines aus Mitgliedern des Hawiye-Clans zusammen. Die mächtigen Hawiye wurden bei der Kabinettsbildung der Übergangsregierung im kenianischen Exil stark vernachlässigt, zugunsten anderer Clans. So erst konnten die Schariamilizen gleichzeitig auch eine lockere Sammlungsbewegung einiger Hawiye werden. Doch auch die Hawiye sind untereinander gespalten. Hussein Aidid beispielsweise erkannte die Vorzeichen und harrte auf Seiten der Übergangsregierung aus. Der Kriegsherr Mohammed Dheere, auch Hawiye, floh gar nach Äthiopien, als Islamisten Jowhar einnahmen, die von ihm kontrollierte Stadt nördlich Mogadischus, die er vor wenigen Tagen nun mit Äthiopiens Hilfe wieder einnehmen durfte. &lt;/p&gt;
    +     &lt;p&gt;Auch Hussein Aidids Angebot, den Regierungssitz nach Mogadischu zu verlegen, soll angenommen werden. Premierminister Ghedi ist bereits per Hubschrauber zu Konsultationen eingeflogen. Es wäre das erste Mal, dass die Übergangsregierung Mogadischu beherrscht. Aber ob das in naher Zukunft geschehen wird, bleibt fraglich. Die Bundesregierung hat im Rahmen ihrer EU-Ratspräsidentschaft angekündigt, zwischen den Konfliktparteien vermitteln zu wollen. Ein schweres Unterfangen, vor allem mit bloßen Worten. Viele Faktionen versuchen, Macht zu erbeuten. Die großen Waffendepots der Islamisten sind bereits weggeschafft oder geplündert, die Preise für automatische Gewehre innerhalb von zwei Tagen rapide gesunken. &lt;/p&gt;
    +     &lt;p&gt;Es wird sich zeigen, ob der von einigen UIC-Islamisten angedrohte Guerillakrieg nun tatsächlich gestartet wird. Und ob der anders aussehen wird, als die Zustände in Somalia nicht ohnehin schon lange sind. Entscheidend ist hier auch die Zahl der vormals kaum präsenten Dschihadis aus dem arabischen Ausland. Hussein Aidids Milizen jedenfalls sind vorbereitet. Eine andere Art der Arbeit kennen ohnehin die wenigsten; seit nunmehr 16 Jahren ist Somalia eine zerfallene Staatsruine. &lt;/p&gt;
    +     &lt;p&gt;&lt;strong&gt;Zum Thema&lt;/strong&gt;&lt;br/&gt;&lt;a href="http://www.zeit.de/online/2006/50/Somalia"&gt;In Somalia bahnt sich ein neuer Krieg an&lt;/a&gt; -&lt;em&gt; Bereits jetzt sind Tausende äthiopische Soldaten im Land, um die Übergangsregierung vor Angriffen von Islamisten zu schützen »&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;
    + <BLANKLINE>
    + <BLANKLINE>
    + &lt;a href="http://www.zeit.de/online/2006/52/somalia-sicherheitsrat"&gt;Keine Einigung bei der UN&lt;/a&gt; - &lt;em&gt; Der Sicherheitsrat der Vereinten Nationen hat sich in einer Dringlichkeitssitzung über den Konflikt in Somalia nicht auf eine Erklärung einigen können »&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;
    + <BLANKLINE>
    + <BLANKLINE>
    + &lt;a href="http://www.zeit.de/2006/32/Somalia"&gt;Hassans Traum von Großsomalia&lt;/a&gt; -&lt;em&gt; Am Horn von Afrika haben Islamisten die Macht erobert »&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;
    + &lt;/p&gt;
    +     &lt;subtitle_length&gt;113&lt;/subtitle_length&gt;
    +   &lt;/body&gt;
    +   &lt;teaser&gt;
    +     &lt;title&gt;Rückkehr der Warlords&lt;/title&gt;
    +     &lt;text&gt;Im Zuge des äthiopischen Vormarsches auf Mogadischu kriechen in Somalia auch die alten Miliz-Chefs wieder hervor.&lt;/text&gt;
    +     &lt;text_length&gt;113&lt;/text_length&gt;
    +   &lt;/teaser&gt;
    +   &lt;indexteaser&gt;
    +     &lt;title&gt;Somalia&lt;/title&gt;
    +     &lt;text&gt;Rückkehr der Warlords&lt;/text&gt;
    +     &lt;text_length&gt;21&lt;/text_length&gt;
    +     &lt;title_length&gt;7&lt;/title_length&gt;
    +   &lt;/indexteaser&gt;
    + &lt;/article&gt;
    + </pre>
    +   </div>
    +             </div>
    +           </div>
    + <BLANKLINE>
    + <BLANKLINE>
    +       </body>
    +     </html>
    + <BLANKLINE>
    + <BLANKLINE>

Check warning on line 0 in vivi.core.src.zeit.cms.locking.browser.tests.test_lock.LockAPI

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_status_409_for_locked (vivi.core.src.zeit.cms.locking.browser.tests.test_lock.LockAPI) failed

deployment/work/source/report.xml [took 0s]
Raw output
AttributeError: '_AssertRaisesContext' object has no attribute 'exception'
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/cms/locking/browser/tests/test_lock.py", line 37, in test_status_409_for_locked
    self.assertEqual(409, info.exception.status)
AttributeError: '_AssertRaisesContext' object has no attribute 'exception'

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.ContractDAV

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_unlocking_non_existent_resource_raises (vivi.core.src.zeit.connector.tests.test_contract.ContractDAV) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: KeyError not raised
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 432, in delegate
    return getattr(super(type(self), self), name)()
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 319, in test_unlocking_non_existent_resource_raises
    with self.assertRaises(KeyError):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 226, in __exit__
    self._raiseFailure("{} not raised".format(exc_name))
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 163, in _raiseFailure
    raise self.test_case.failureException(msg)
AssertionError: KeyError not raised

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.ContractDAV

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_locking_already_locked_resource_by_same_user (vivi.core.src.zeit.connector.tests.test_contract.ContractDAV) failed

deployment/work/source/report.xml [took 0s]
Raw output
zeit.connector.interfaces.LockingError: http://xml.zeit.de/testing/foo is already locked.
Traceback (most recent call last):
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/connector.py", line 388, in lock
    token = self.get_connection().lock(
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/dav/davconnection.py", line 25, in lock
    r = self.get_result(
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/dav/davconnection.py", line 134, in get_result
    raise exception(response.status, response.reason, url, body, response)
zeit.connector.dav.interfaces.DAVLockedError: (423, 'Locked', 'http://localhost:40941/cms/testing/foo', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html><head>\n<title>423 Locked</title>\n</head><body>\n<h1>Locked</h1>\n<p>The requested resource is currently locked.\nThe lock must be released or proper identification\ngiven before the method can be applied.</p>\n<hr>\n<address>Apache/2.4.29 (Ubuntu) Server at localhost Port 40941</address>\n</body></html>\n', <http.client.HTTPResponse object at 0x7f9d552c6200>)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 432, in delegate
    return getattr(super(type(self), self), name)()
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 296, in test_locking_already_locked_resource_by_same_user
    second_token = self.connector.lock(
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/connector.py", line 392, in lock
    raise zeit.connector.interfaces.LockingError(id, '%s is already locked.' % id)
zeit.connector.interfaces.LockingError: http://xml.zeit.de/testing/foo is already locked.

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.ContractDAV

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_locking_non_existent_resource_raises (vivi.core.src.zeit.connector.tests.test_contract.ContractDAV) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: KeyError not raised
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 432, in delegate
    return getattr(super(type(self), self), name)()
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 323, in test_locking_non_existent_resource_raises
    with self.assertRaises(KeyError):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 226, in __exit__
    self._raiseFailure("{} not raised".format(exc_name))
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 163, in _raiseFailure
    raise self.test_case.failureException(msg)
AssertionError: KeyError not raised

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.ContractDAV

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_query_lock_status_for_non_existent_resource_raises (vivi.core.src.zeit.connector.tests.test_contract.ContractDAV) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: KeyError not raised
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 591, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 549, in _callTestMethod
    method()
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 432, in delegate
    return getattr(super(type(self), self), name)()
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 315, in test_query_lock_status_for_non_existent_resource_raises
    with self.assertRaises(KeyError):
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 226, in __exit__
    self._raiseFailure("{} not raised".format(exc_name))
  File "/home/runner/_work/_tool/Python/3.10.13/x64/lib/python3.10/unittest/case.py", line 163, in _raiseFailure
    raise self.test_case.failureException(msg)
AssertionError: KeyError not raised