WebCenter Portal – Access to WC Spaces Services over REST running on Oracle VM from your Mobile Application

December 18, 2013

By: Andreja Sambolec – Application Consultant

Developing ADF Mobile application – accessing WC services running on VM

If you are using the Oracle SOA Suite/BPM Suite VirtualBox Appliance (Pre-Built Developer VM for Oracle VM VirtualBox) and want to start developing an ADF Mobile application accessing WC Spaces REST services running on this VM, you have to make sure:

  • Your mobile device and local machine have access to the same wireless network
  • NAT is selected as the available network mode on your VM

portal1

  • To check Port Forwarding

potral2

Now you can access WebCenter Spaces from your mobile device or from your local machine using IP address of your local machine: http://192.168.1.33:8888/rest/api/resourceIndex

In your ADF Mobile application, create a new connection:

portal3

If you want use programmatic approach for Spaces REST Service invocation, use the following:

RestServiceAdapter restServiceAdapter = Model.createRestServiceAdapter();
restServiceAdapter.clearRequestProperties();
restServiceAdapter.setConnectionName(“WCRest”);
restServiceAdapter.setRequestType(RestServiceAdapter.REQUEST_TYPE_GET);
String theUsername = “weblogic”;
String thePassword = “welcome1”;
String userPassword = theUsername + “:” + thePassword;
String encoding = new sun.misc.BASE64Encoder().encode(userPassword.getBytes());
restServiceAdapter.addRequestProperty(“Authorization”, “Basic ” + encoding);
restServiceAdapter.addRequestProperty(“Accept”, “application/json; charset=UTF-8”);
restServiceAdapter.addRequestProperty(“Content-Type”, “application/json; charset=UTF-8”);

restServiceAdapter.setRetryLimit(0);

restServiceAdapter.setRequestURI(“/rest/api/resourceIndex”);

try {

System.out.println(restServiceAdapter.send(“”));

} catch (Exception e) {

e.printStackTrace();

}

Using ADB tool and command adb logcat, you can see the part of the response as a result of the command System.out.println(restServiceAdapter.send(“”)):

{“version”:”11.1.1.6.0″,”resourceType”:”urn:oracle:webcenter:
resourceindex”,”links”:[{“href”:”http://192.168.1.33:8888/rest/api/discussions/forums?utoken=FJnkGqA-W6YrfhjgagLvMj_AJapY_w**”,”template”:”http://192.168.1.33:8888/rest/api/discussions/forums?startIndex={startIndex}&itemsPerPage={itemsPerPage}&utoken=FJnkGqA-W6YrfhjgagLvMj_AJapY_w**”,”resourceType”:”urn:oracle:webcenter:discussions:forums”,”capabilities”:”urn:oracle:webcenter:read”},{“href”:”http://192.168.1.33:8888/rest/api/preferences/general?utoken=FJnkGqA-W6YrfhjgagLvMj_AJapY_w**”,”resourceType”:”urn:oracle:webcenter:preferences:general”,”capabilities”:”urn:oracle:webcenter:read”},{“href”:”http://192.168.1.33:8888/rest/api/spaces/siteresources?utoken=FJnkGqA-W6YrfhjgagLvMj_AJapY_w**”,”template”:”http://192.168.1.33:8888/rest/api/spaces/siteresources?projection={projection}&q={q}&utoken=FJnkGqA-W6YrfhjgagLvMj_AJapY_w**”,”resourceType”:”urn:oracle:webcenter:spaces:siteresources”,”capabilities”:”urn:oracle:webcenter:read”},{“href”:”http://192.168

After the above verification of access to WebCenter Spaces REST Services you can continue with development.

Running into trouble? Want to have a chat with members from TEAM? Contact us here.


Site Studio and Server Side IdocScript Browser Detection

August 21, 2013

By: Rick Katka – Application Consultant

downloadBrowser Detection for SiteStudio Sites

Have you ever wanted to switch subtemplates or control content based on your user’s browser?  How about lightening the load for mobile users?  Browser detection isn’t new but with more and more users moving towards viewing websites on mobile devices, web developers really need to think more about making concessions for this growing demographic.  One thing we wanted to do for a recent client was swap out the navigation and scripts for mobile users for a large site.  To do so we decided to start with an open source mobile phone detection site called:  http://detectmobilebrowsers.com/ and modified the code to work with IdocScript. Most of the complicated regex is handled for you from the scripts provided by http://detectmobilebrowsers.com/.  There are a few places we considered modifying, mostly around the iPhone, iPod and iPad logic.  I’ve bolded it in the code below.  At one point we removed iPad’s from being considered a mobile device, since they can display desktop versions of sites without really any changes required.

Our resulting subtemplate code ended up looking something like this:
<!–$ua = strLower(HTTP_USER_AGENT) –>

<!–$isMobile = “false”–>

<!–$if regexMatches(ua, “.*(android.+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino).*”)

or

regexMatches(strSubstring(ua,0,4),(“1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|e\\-|e\\/|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\\-|2|g)|yas\\-|your|zeto|zte\\-“))–>

<!–$isMobile = “true”–>

<!–$endif–>

We then call this subtemplate pretty early in the page template so that we can use the isMobile logic flag later on in the code. This will dynamically switch other subtemplates in the page to avoid loading things (such as: JS libraries, desktop navigation, content not available on mobile devices) we didn’t need for an optimized mobile experience.

As far as performance goes, it’s still up in the air in a blank test.  In Chrome, the page loaded 11.4ms faster with the browser detection subtemplate and in Firefox it loaded 67.4ms faster.  In IE 10 it actually slowed the response time by 71ms.  I ran a fairly small test of 10 pages against a vanilla WebCenter Content installation.   The real benefits come in to play when you can avoid loading extra resources that your mobile users don’t need, especially when they are connecting on some of the slower networks available.

For more information or questions, please reach out to us.


Accessing your WebCenter Content System from an iPad or iPhone

October 8, 2012

By: Raoul Miller – Enterprise Architect

Claudia Regina ©

I’ve seen a number of specialized clients for the iPhone launched recently that boast the ability to access a WebCenter Content instance from your favorite mobile device.  I haven’t explored all the features of these but it occurred to me that there’s a much simpler and standards-based way to do the same thing – via WebDAV.

The Oracle / Stellent Content Server has had WebDAV (Web Distributed Authoring and Versioning) support for many generations and it’s what I use to connect my MacBook to a WebCenter Content instance in the absence of an OS X desktop client.

There are a number of WebDAV clients out there for the iPad. I use WebDAV navigator because it’s free and it works fine and may try the paid version next to see what additional functionality it adds.  I’m sure there are plenty of options for Android and other mobile devices, too.

Setup couldn’t be easier – simply add the server name, URL, username and password (HINT – if you have the desktop client installed, these are the same values – for most servers they are http or https://<servername>/<relative web root>/idcplg/webdav/ ).

 

And you are done – now you can browse contribution folders and projects on the WebCenter Content server, download content and even upload on the run. No special client required!

UPDATE – in response to some questions internally at TEAM, here’s some more information on downloading, uploading and workflow.

Downloading is easy from within the application and will store the downloaded doc in a local storage area.  Remember, the iPad is not really designed to accommodate content storage outside of applications, but this allows you offline storage of items if required.

Uploading is more complex because of the limitation of local storage mentioned above but you can download a file to local storage, edit it with Pages and then upload it again (as a new revision). The client also allows you to upload photos directly from the camera or from the “camera roll” of stored pics – great for that snap of the whiteboard at the end of a meeting.

Workflow isn’t covered by WebDAV standards, but the Oracle system has always had great integration with email and that works just fine on the iPad.

Enjoy integrating your WebCenter Content on-the-go without a specialized app.

 


iOS 5.0 update fixes WebCenter Spaces mobile Safari issues

November 8, 2011

By: Nick Olmsted

Before the latest iOS 5.0 release the only way to view your WebCenter Spaces application without getting javascript errors was through the
Spaces native iPhone app available on iTunes. This worked great but it didn’t allow you to share that custom Spaces template you have spent so much time on. Apple must have beefed up the javascript engine within the Safari mobile browser with the latest iOS 5.0 update. With the update you should now be able to navigate to your WebCenter Spaces 11g application and be able to view it within the mobile Safari browser without any javascript errors (excluding any
customizations).  All of the Spaces functionality should now work within the mobile Safari browser such as your space’s wikis, blogs, announcements,
discussions, and viewing content. Hopefully now that Apple has updated their mobile javascript engine the other major mobile platform browsers will follow
suit.

Now that we have the mobile browser support (at least on iOS devices) the next step we will be doing in our implementation is applying some
changes to our custom template to maximize the viewing experience on an iPad. To accomplish this we will be using CSS3 media queries and adaptive design
techniques. Using CSS3 media queries we will be able to keep a single template and adjust the styles being used based on the end user’s device (i.e. Desktop,
phone, tablet). They will then get a viewing experience that will match that device and allow users to get at the functionality easily within the site independent
of the device used.

Here are some useful links on CSS3 media quires and adaptive design:

http://html5boilerplate.com/

http://code.google.com/p/css3-mediaqueries-js/

http://richardshepherd.com/css-media-queries-jquery/

http://www.alistapart.com/articles/responsive-web-design/

http://www.johnbrunswick.com/2011/09/e2-0-workbench-podcast-6-%e2%80%93-webcenter-portal-mobile-templates-using-adaptive-styles/

Here is some more information on the WebCenter Spaces 11g iPhone application

http://www.oracle.com/technetwork/middleware/webcenter/iphone-163241.html