{"id":22831639,"url":"https://github.com/richdouglasevans/typo","last_synced_at":"2026-05-02T13:31:52.752Z","repository":{"id":3974025,"uuid":"5069051","full_name":"richdouglasevans/typo","owner":"richdouglasevans","description":"A Mediasurface API utility library","archived":false,"fork":false,"pushed_at":"2013-02-28T09:24:31.000Z","size":164,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T01:51:16.807Z","etag":null,"topics":["alterian","cms","groovy","java","mediasurface"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"openshift/origin","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richdouglasevans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-16T15:13:31.000Z","updated_at":"2013-10-31T07:24:03.000Z","dependencies_parsed_at":"2022-09-08T06:50:18.791Z","dependency_job_id":null,"html_url":"https://github.com/richdouglasevans/typo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/richdouglasevans/typo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richdouglasevans%2Ftypo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richdouglasevans%2Ftypo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richdouglasevans%2Ftypo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richdouglasevans%2Ftypo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richdouglasevans","download_url":"https://codeload.github.com/richdouglasevans/typo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richdouglasevans%2Ftypo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32536550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alterian","cms","groovy","java","mediasurface"],"created_at":"2024-12-12T20:29:27.432Z","updated_at":"2026-05-02T13:31:52.725Z","avatar_url":"https://github.com/richdouglasevans.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"`tpyo` makes the [Alterian][0] Mediasurface 5.9.0 API easier to use. Note that since Mediasurface is a proprietary CMS technology, you'll need to provide your own Mediasurface JARs.\n\nUsage\n=====\n\nConfigure a threadsafe [MediasurfaceConfiguration](https://github.com/richdouglasevans/typo/blob/master/src/main/java/tpyo/mediasurface/MediasurfaceConfiguration.java) and use it to instantiate a [MediasurfaceTemplate](https://github.com/richdouglasevans/typo/blob/master/src/main/java/tpyo/mediasurface/MediasurfaceTemplate.java).\n````java\nMediasurfaceConfiguration newsSiteConfiguration = new MediasurfaceConfiguration.Builder()\n        .serverLocation( \"//10.115.40.139:2170\" )\n        .siteGroup( \"Foo Bar Weekly\" )\n        .host( \"news.fbw.com\" )\n        .usingDefaultAdminCredentials()\n        .build();\n\nMediasurfaceOperations newsSite = new MediasurfaceTemplate( newsSiteConfiguration );\n````\n\nMany Mediasurface API calls become one-liners.\n````java\nIItem techNews = newsSite.getItemAtPath( \"/articles/2012/june/tech\" );\n````\n\nEditing existing content is clearer: the necessary workflow calls are handled by the template.\n````java\nnewsSite.edit( techNews, new Editor\u003cIItem\u003e()\n    {\n        void edit( MediasurfaceSession session, IItem item )\n        {\n            // make changes to item...\n        }\n    }\n);\n````\n\nThe full power of the raw Mediasurface API is always available should you need it.\n````java\nnewsSite.execute( new MediasurfaceCallback\u003cIStatus\u003e()\n    {\n        IStatus execute( MediasurfaceSession session )\n        {\n            Mediasurface mediasurface = session.getMediasurface();\n            // use full API as necessary...\n            return session.getNamedStatus( \"Published\" );\n        }\n    }\n);\n````\nTests\n=====\n\nA handful of the test fixtures are marked with [@Ignore][1]. If you want to run those test fixtures, you'll need to remove the `@Ignore` annotations and configure the `mediasurface.properties` file with the details of your CAe instances.\n\nThe test suite is written in [Groovy][2] because Groovy's syntactic sugar removes a lot of Java's ceremony, leading to clearer tests that are quicker to read and write. The library code is written in Java because the team in which I was working when I wrote this library was reluctant to introduce a dependency on Groovy in production. Using Groovy just for the tests was an experiment on my part, and not a hugely successful one: the test fixtures weren't that much faster to write, and context switching between Java and Groovy was slightly annoying.\n\nLicense\n=======\n\n    Copyright 2012 Rich Douglas Evans\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\nMediasurface is copyright © [Alterian][0].\n\n[0]: http://www.alterian.com/\n[1]: http://kentbeck.github.com/junit/javadoc/latest/org/junit/Ignore.html\n[2]: http://groovy.codehaus.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichdouglasevans%2Ftypo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichdouglasevans%2Ftypo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichdouglasevans%2Ftypo/lists"}