Combine WC Portal Assets in one Workspace

Working with WebCenter Portal 12c, you can develop your (Shared) Assets within JDeveloper. After installing the WebCenter updates, you can create an WebCenter Portal Asset Application: 

Choose a more generic application name, in my case RichardWcpAssets:

Now in step two I already know I am going to create a Page Template Asset, so I name the Project RichardPageTemplate and accept the default Project Features:

Accept the default package and location in step three and move on to step 4. In here we actually select the Page Template as Asset Type and choose a Display Name, I decided on RichardPageTemplate again and select finish:

Let JDeveloper generate the files for you, now, next to a Page Template, we would also like to define a Skin for our Portal. However, the WebCenter Portal Asset is an Application, so we have to create a totally new Application, just as we did with the Page Template. We do not care about the application name, so you can just let it be a default, like Application2 in my case:

In step 2 we know that this time we want to create a skin, so I named the project RichardSkin and select next:

Leave the defaults again in step 3 and move on to step 4, here we select Skin as Asset Type and change the Display Name to RichardSkin as well and click Finish:

Now, we have two different Application, but the good thing is all we are really interested in is inside the project structure. So we close JDeveloper and we navigate to the location of the applications on our file system. We can take the RichardSkin project folder and move it into the RichardWcpAssets application folder:

After this there is no use for the temporary Application2 anymore, so we can delete this. Now restart JDeveloper and navigate back to the initial Application, in my case ‘RichardPageTemplate’. Open the application menu and choose Open Project:

Navigate to the Skin project you just moved to the Asset application, select the .jpr file and open it:

Save your changes and you can now edit both your Page Template and your Skin from within the same JDeveloper Application.

Read more about Assets development in the following resources:

Auto Search in the Enterprise Manager through bookmarks

Since 12c when debugging or looking at flow instances in the Enterprise Manager, we have to use the search button to make the flow instances appear. By default the following text is being displayed: 'Conduct a search to display the list of message flows across SOA composites in the SOA Infrastructure'.

When you open the search bar on the right pane and click search, the instances of the last 24 hours are being displayed:

However, there is also a shortcut on this same search pane to 'Generate a bookmarkable link':

If you press this button, a pop-up will be displayed and the generated link will be selected:

Looking at the link, you can see that it holds URL parameters to open the flowInstancesTab and execute the search query. If you copy this link, and paste it in your browser, you will see that it opens the corresponding tab, and start fetching the data:

This means that if you bookmark the URL, from now on you are only one click away from going into the Enterprise Manager, navigating into the flowInstances tab and query the search results:


OOW15: Oracle Open World 2015

Just before Oracle Open World 2015, the launch of the new 12c (12.2.1) release went public. This release was a full release of the whole stack. From WebLogic Server to Business Intelligence, including product that were not on 12.1.3 yet, like WebCenter. A bit closer to Open World than expected, but this was good news, meaning we can talk freely about 12.2.1 and get all the information on it that we want.


Next to the 12.2.1 release, this Open World was about the Cloud, maybe even more than the previous years combined. The Cloud is inevitable and so is the Oracle Cloud, this year, personally I got more positive about the Cloud. A few years ago I was still skeptic, thought this was just a new hype, last year the Cloud still mostly seemed to exist on PowerPoint, but as we speak there are actually quiet some Cloud products live and ready to use.
I do think Oracle oversells the whole story that the Business user will drag and drop and create their own applications, but who knows, they might prove us wrong there as well. None the less, even if it is not for the actual business users, these products can make the lives of the programmers a lot easier as well.
A big announcement that I do want to mention again, is the Private Cloud, I think this is a huge announcement that can change the Cloud plan for a lot of companies. Here in Europe there are a lot of confusing laws and restrictions, that are different per country concerning data and the cloud. As well as there are institution who closely check what is happening with civilian data. Read more about the Private Cloud on my detailed blog post about this.
Next to that I have blogged about Application Builder Cloud Service, the SOA Suite Cloud Service, and a combined blog about microsites with the help of Sites Cloud Service & Document Cloud Service.

One of the "can't miss events" on Open World are always the keynotes, especially those from Larry. If you want to look back at the keynotes, you can find them all on the Open World page. The two quotes from Larry that stuck the most to me were these:
  • ‘Applications shouldn't only be easy to use, but also easy to learn’
  • ‘Security should always be on’
By these principles, Oracle designs there Cloud products as well. They should be easy to learn and easy to use. The line of business user should be able to use the products, not just the IT department, according to Oracle.
Larry explained how a lot of there Oracle products are shipped with good security options, but they are default turned off and you have to turn them on yourself manually. Not in the Cloud, in the Oracle Clouds, security is always on.

Next to the cloud, as a developer I focused on three area's this Open World, you can check out my related findings in the more in depth blogs about: WebCenter Portal, new features in ADF 12.2.1 and Oracle JET.


For an overview of all my Open World 2015 blogs, check this page.

OOW15: Coming soon, ABCService

One of the other cloud announcements that caught my eyes on Open World was ABCS, the Application Builder Cloud Service. A tool for the Line of Business user to create simple web and/or mobile application by drag and drop in the web browser. Simple add components out of a menu on the page, rearrange them and edit them the way you want in the WYSIWYG editor.


The tool either creates business objects from scratch in the underlying Oracle database or you can base them on a REST Service that someone has exposed. Because the application is 100% in the cloud, not only a “development tool” but it also hosts the application, there is no installation required to get you up and running. Honestly said, I was surprised by the intelligence of the tool to help the user promote their changes made in edit mode to production.

At the first publication, obviously this is no problem, but what if you create database changes? The ABCS recognizes whether the change is compatible (for example, adding a column) or non-compatible (for example, deleting a column). In the first scenario (compatible changes), the abcs will suggest two options, promote to production and keep the existing production data or promote to production and promote the stage database to production as well.
In the second scenario (non compatible changes), the abcs tool will warn you about the non compatible changes and suggest to export the production database to the staging database before promoting the staging database to production.
The scenarios might be a bit out of the comfort zone of the average business user, but with a little help from the IT department, you can go a long way.


Obviously the Application Builder Cloud Service supports the Alta UI look and feel, but a nice extra feature is that this PaaS solution is fully written in Oracle JET. Next to that it also produces Oracle JET code. So if your simple application grows out to be more complex it is possible to export the Oracle JET code and have a developer work on the code to evolve this to a more enterprise like application. In other words, you can have your Line of Business user create their own prototype, making sure “the IT guys” are able to implement the application.

The ABCS page is up and running, but the PaaS solution is not out on the market yet. Just as with the other cloud products, it will be possible to get a 30 days trial once the cloud product is launched.

Once again I am sorry for not having better screenshots of the product.


OOW15: Announcing WCP 12.2.1

It has been a long wait, but WebCenter has finally been released on 12c, WebCenter Portal 12.2.1 is out and brings you new features we have been waiting for! Just to name a few:
  • A more/better responsive design
  • a WYSIWYG editor with preview mode
  • Embedded content UI for ECM functionality
  • New Portal REST API
  • Out of the box bootstrap themes
  • A Portal Jump Start kit
  • Cloud Certification (on JCS)

However, there is also a change that might affect you. The Portal Customization Framework as we know it from 11g does not exist anymore. There now is only a Portal Server in 12c. This means you can easily upgrade from your 11g Portal Server to a 12c Portal Server, but if you run on Portal Framework, you will first have to migrate to Portal Server 11g before upgrading to Portal Server 12c.
Oracle does have a whitepaper out on how to migrate from the 11g Framework.

More cool stuff on the roadmap for WebCenter Portal, the product will be tighter integrated with the rest of the WebCenter Suite, as well as with some other Cloud products like JCS, ABCS, SCS, OSN, DCS & PCS. All the different search components will be replaces by the Elastic Search and there will be better performance as well as better performance analyzer tools.
WebCenter Portal will remain on premise for some time, however, as mentioned there is a Cloud certification for JCS, so if you wish you can run it in the Java Cloud Services.

Just as with most of the PaaS Cloud solutions Oracle now offers, you can make changes in contribute mode, they are not directly published and you can even setup an approval process before publication. You can choose whether to publish only the portal, the shared libraries, the content or also the shared assets (like page templates).

Portal still uses the Contextual Event mechanism to communicate with the ADF taskflows. As mentioned the integration with WebCenter Content is way better and you can put annotation on your documents. These annotations are stored separately in WebCenter Content and merged on the document by the viewer.


OOW15: Announcing SoaCS

The Oracle SOA Cloud Service is online and you can check it out on the Oracle SoaCS Cloud page. This SoaCS offers you all the functionality the SOA Suite offers you on premise. In the cloud, Oracle has the same red stack strategy as they have on premise. This means the SoaCS runs on Oracle hardware and the Oracle database. This forces you to have a DbCS as well.

To get the SoaCS, you follow a wizard that guides you through the steps of setting up the Cloud. In here you choose what kind of services you want, Service Bus, SOA Suite, a combination of both or the API Manager. You enter the database credentials to connect to the database in the cloud and select how much CPU and memory you want to run on. You even have control in which data center the cloud is going to be hosted. This whole wizard is based on a webservice API, so if you want you can script and automate this process. 30 to 60 minutes later your SoaCS is ready and you can start using it.


So now you got your automated provisioned & back upped SOA Cloud Service. You can connect to an on premise ldap. You can set up an ssh tunnel, not a vpn yet, although this is on the roadmap. Oracle will apply the patches for you, but you are in control whether you want them or not. There is a precheck whether the patch can be applied or not, but you cannot schedule the patch for now, you can choose to apply or to wait with it, but if you choose to apply the patch, it will be done directly.
Oracle will not force you to upgrade, however, they only support the latest and the latest minus 1 version, so you cannot keep creating older versions once newer versions have come out.

Off course one of the great benefits of the cloud is the scaling, so when needed, you can add a node manually. The elastic scaling of nodes is on the roadmap, but not yet there. This means that in the near future you can add rules like ‘If the CPU uses more than 80%, add another one’.
You will have full EM and console access to your cloud instance.

Oracle is working on a white paper with best practices, this should come out soon. But if you can not wait, you can start a 30 days free trail, you will have to go through the JCS set up for this though. Click the ‘Try It’ button on the Java Cloud page for more info.


OOW15: The Oracle Private Cloud

One of the big announcements this year was the Oracle Private Cloud, basicly, the Cloud will come to your on premise data center! Oracle provides the exact same service for the Private Cloud as they do for the Public Cloud. The given timeframe on the Private Cloud is early next calendar year.

The interesting thing here is that Inderjeet mentioned in his presentation that the Private Cloud will have the same pricing module as the Public Cloud, this includes the hardware. The Private Cloud is a new type of rack, it is similar to the ExaLogic and build by the ExaLogic group, but it is not an ExaLogic. Most likely Oracle will synchronize the release cycle between the Public and the Private Cloud, this means you will get all the same features at the same time as you would in the Public Cloud.

For now the Private Cloud only hosts JCS & ICS, but PCS & SoaCS will be add in the next release cycle:

Oracle gives you a full support, including patching and a platinum service is included. You can schedule the patches that create or need down time. You can have on premise cloud administrators who use the Enterprise Manager or oracle compute command line interface (CLI) to administrate the infrastructure:

Backup needs to be done by the cloud administrators, if you want full disaster recovery (DR) you will need to either have two cloud machines in different data centers or back up to and other (on prem) data center.

OOW15: New features in ADF 12.2.1

The whole stack of Fusion Middleware 12c  was launched just before open world. This means there is also a new, cooler and better version of Oracle Application Development Framework (ADF) out! It was not too hard to follow all the session about ADF on open world this year, there were not that many to begin with. 

So what is new? To start with, the infrastructure, we can now use JDK 8 in ADF and WebLogic Server version 12.2.1, which is also Java EE7 complaint. It also fully integrates with the Java Cloud Service (JCS) and the Developer Cloud Service (DevCS). JCS supports ADF version 12.1.3 & 11.1.1.7.1 and you can deploy to JCS directly from JDeveloper. The JDeveloper IDE also fully integrates with the GIT repository on the DevCS. You can track and update tasks and issues:

In ADF Business Components (ADF BC) there is now REST support. You can expose your Application Module as a REST service by simply following a wizard. You can also consume REST services by using the REST Data Control in JDeveloper, it can consume both REST JSON or REST XML. It has a declarative approach, as you would expect from ADF and security supports for OWSM policies.

On the view side, the Alta UI is now enabled by default, there is also a browser based theme editor application. You have a visually modification of the look and feel, create ADF skins and import the jar this application create in your application to use the skin in your ADF application. Next to the skinning, there are more, better and newer Data Visualization Components (DVTs) as well!

There is a cool new feature that allows you to call Remote Regions, this means that you can call a taskflow that is deployed in another application, possible even on a totally different server. Both the consuming as well as the publishing application need to be made aware of these feature. This means that you can reuse taskflows, without the need of consuming a library in the consuming application. The remote region will be loaded parallel (in the other application). You can pass parameters to the region, just like you are used to.

Last but not least, ADF Faces got a lot better at being responsive! They added the so called ‘Masonry Layout’, this is not a new component, but you create responsiveness by adding predefined style classes to your components. ADF now also supports the media tag, with this you can now change properties on your ADF Faces components based on the media query results.

OOW15: Cloud Bingo!

Even more than the previous years combined, this Open World was about the Cloud! The cloud is inevitable, so it seems. During my stay at Open World, I tried to find out more about the different cloud products, including their official acronyms.
To help my future self, but maybe some other people along the way, I created an overview of the clouds I met. This sure is not a full and completed list, but the once that I came across during my stay at OOW15.

ABCS : Application Builder Cloud Service
A visual development environment to create and host business applications.

CCS : Compute Cloud Service
A virtual compute environment, to run your applications on the public cloud.

DbCS : Database Cloud Service
Manage your database in the Oracle Cloud!

DCS : Document Cloud Service
Content collaborations by an Enterprise File synchonization and sharing tool in the cloud.

DevCS : Developer Cloud Service
Your automated development platform & tools in the cloud for the development lifecycle.

DVCS : Data Visualization Cloud Service
Visual analysis and self-service discovery, raw data to visual insights.

ICS : Integration Cloud Service
The platform to integrate your SaaS and on-prem applications.

IdCS : Identity Cloud Service
Manage your identities in the cloud.

IoTCS : Internet of Things Cloud Service
Connect and virtualize any device, real time predictive analytics.

JCS : Java Cloud Service
Deploy any Java application to the cloud !

MCS : Mobile Cloud Service
Easy and secure solution for mobile app development and integration with the back end.

PCS : Process Cloud Service
Design, automate and manage your business processes in the cloud.

SCS : Sites Cloud Service
Digital engagement by building rich community and marketing sites.

SNC: Social Network Cloud
A secure enterprise social network, integrates with PCS & DCS.

SoaCS : Soa Suite Cloud Service
Quickly provision a new SOA platform in the cloud, the SoaCS provides you the same power as the on-prem SOA Suite.

For all clouds and information on them, visit the Oracle Cloud site.

OOW15: Microsites with SCS on top of DCS

Most of us are familiar with or have at least heard of the concept of microservices, this year at Open World I also heard the term microsites more and more and I went on an investigation to find out more about the possibilities. I was surprised to find out I got more and more enthusiastic about this concept and the possibilities with the Oracle Cloud.
Microsites is a concept for a small temporary site. You can think of example like a page for a market campaign, an event, a product launch, etc. Oracle offers this with the help of two cloud services the Document Cloud Service (DCS) and the Sites Cloud Service (SCS).

The DocumentCloud Service is already live and ready to use, this is a tool to help you collaborate and share documents with others. It has a lot of out of the box functionalities, a mobile application and you can even get your content offline, for example to work on your ipad when disconnected.
In the concept of microsites you put all your web content, documents, images, etc in one or more folders on your machine. Use the sync master tool to synchronize these folders back to the document cloud. The DCS assets can then be used by the Sites Cloud Service.  

This is what the sync master tool looks like:


Oracle Sites Cloud Service will be coming soon, this is in terms of a couple of weeks. The documentation of SCS is already up and running, so you can check it out. Within SCS you have a WYSIWYG editor to create sites. The product is shipped with a few standard themes, but you can create your own or use an existing bootstrap theme to help you set up the basics for  the site. The layout management of the site is not done by the theme, but in the edit modus of the site.

In the left hand sidebar you can easily switch between the Documents in DCS and the Sites in SCS:

After this you can drag and drop out of the box components to create your website, add images/galleries, youtube videos, documents/folders and more. You can access any content in DCS and drag & drop it on the site. You can rearrange component on the page any way you like.

When you start editing you create an ‘update session’ in which you make several changes, this features helps with creating several changes and publish (or schedule) them as one batch to the live website. You can even work separated on different batches in different parts of the microsite. 

In the left hand side bar you see that you can drag & drop components from several menus, in the top bar you see a toggle to switch between edit and preview modus:


I am sorry the screenshots are a bit blurry and vague, but they are the best I have for now :)


OOW15: Announcing Oracle JET

This is the first blog in a series about Oracle Open World 2015 (OOW15), it focuses on the release of the Oracle JavaScript Extension Toolkit (Oracle JET). This was one of the big announcements this week in San Francisco. Oracle now has a JavaScript toolkit to create and build responsive websites.

One of the most heard questions is what is the different from Oracle JET with Oracle ADF? Will the one replace the other? Or will they coexist next to each other? All very valid questions, for now they will coexist next to each other. Oracle supports and invests in both products, focusing on a different kind of developer and a different kind of tool. You can see this in their own product as well, as a rule of thumb Oracle builds their SaaS application with the ADF and their PaaS applications with JET.

The biggest difference between the two is that ADF protects you from the underlying technology, works in a declarative way and is a server side framework. Oracle JET is more on the edge, as you would expect, from a JavaScript toolkit, more code centric and a pure client-side toolkit.

They share a lot of the same components and the Oracle DVT components work also in JET, this means the same DVT components work in Oracle ADF, MAF & JET. JET is based on libraries such as JQuery, JQuery UI & KnockOut, therefore you can use the key features (like 2 way binding) out of these libraries in JET as well. Behind the scenes Oracle has worked on this project for over 2 years, with the same development teams as the teams that work on ADF Faces & DVT’s.
JET is a modular toolkit in which you can pick ‘n mix your own JS libraries to extend more capabilities. Oracle has also build in support for internationalization & accessibility.

For now the use of Oracle JET is only for “the lucky few”, it comes with a Restrictive Use License (RUL) if you are using one of the few Cloud products (MCS, JCS, DevCS, ABCS: more on these in later blogs) Oracle offers today. However, they are looking for open source possibilities under the Apache 2.0 license. That they are working on open sourcing, but they did not give a timeframe on this yet. The release cycle of JET will be aimed at a minor release every two months and a major release every six.

So where do you start? First of all, make sure you check out the Oracle JET page for more cool stuff. Here you can find explanations, tutorials and code samples, there are cookbooks where you can check out the JET components and see the JavaScript and HTML code for these components. This tool works both ways, so you can copy and paste your JET component code in there as well to see the component it would generate!
You can use any code editor you prefer, whether this is Agnostic, NetBeans or some other IDE. They do however have build in support in the latest release of NetBeans, so it might be wise to let that be your weapon of choice.

Last but not least, Oracle Application Builder Cloud Services (ABCS) is fully build in Oracle JET, but it also produces Oracle JET code. So when you use the ABCS to create user interfaces, you can get the underlying JET code and continue working on that as a developer.


The order of the assign and transform in the Mediator

In my previous blogpost I pointed out the usage of an assign in a mediator component. This can be useful over the transform in several cases. Besides using one of the two, it is also possible to use them both in the same route. I would not advise using both the assign and the transform to manipulate the same data object, however this is possible.

If you want to do this, it is good to keep in mind in which order the mediator handles the manipulations. I used the same example from the previous blogpost and added an transformation in the mediator.

In the transform, I copy the firstname from the input, to the lastname of the output:
 

Resulting in both a transform and an assign in the mediator:
 

I deployed the service to the Enterprise Manager and will fire the following test:
 

The response already clarifies what happened here, the transform is fired first and only after the transform is done, the assign is being processed, because the input is the same as the output:
 

However, to verify this assumption, we will have a closer look at the flow trace, in the flow trace, we open the instance of the mediator:
 

In here we can clearly see that the xsl transformation is done before the assign.
Keep this in mind when you want to use both the transform as well as the assign option on the same data object in the mediator.


Use the assign instead of a transform in the Mediator

When building less complex services, your BPEL process often uses input and output that is pretty much like the request and response on the wsdl. We would still want to decouple using the mediator component, so there is an extra transformation there which is pretty straight forward.
Sometimes it can be useful, easier and faster to use a assign in the mediator instead of a transform.

Imagine an pretty straight forward xsd:


I created an example BPEL process, also pretty straight forward. The Person is both the input and the output, all the BPEL process does is copy the input to the output and reply it:
 

In the Create Web Service dialog we create a WSDL based on the same XSD, also with a Person as input and output:

As said, because of decoupling, we would still want to have a mediator between the exposed service and our bpel process. We create a mediator and wire it both to the service and to the bpel process.
However, when editing the route, we usually use a transformation to map the input to the output, in this case, we are going to use an assign:

When you click the assign button, this also pop ups and Assign Values dialog, here we can wire the input element to the output element:

This way we use an assign in the mediator instead of creating an xsl transformation for this pretty straight forward transformation.


Switch the Audit Level to Development mode

With JDeveloper 12c it is now possible to run your SOA Suite against the Integrated WLS. However, by default the Audit Level of this server is Production mode which means you do not get to see details when looking at the flow trace of your service.
If you do not change your running mode, the flow trace window will look like this:


We will switch the Audit Level of your local SOA domain to Development mode, to get more info in the flow trace. Right click on your soa-infra, go to the SOA Administration and select the Common Properties:



Change the Audit Level to Development and click Apply:



You do not need to restart your server after this. However, you do need to test your service again. Test your service and again go to the flow trace, the result should now look like this:



You can now press the ‘View Payload’ to see the payload of your transformation:




Run ADF & SOA on the IntegratedWLS in separated domains

In JDeveloper 12c, it is possible to run SOA Suite on the InternalWLS, which is a great feature. However, once you have done this, your domain will be filled with SOA extensions. Meaning the server start up time will increase drastically.
When you do both ADF & SOA development, this can be annoying when you just want to run your ADF application and the IntegratedWLS is busy starting up the SOA domain. One way to avoid this is to run two different JDeveloper instances with two different Jdev Homes configure.
In this blog I will describe you how to set this up.

First of all, I got my ‘normal’ JDeveloper for ADF development, this is installed on my C drive, under: C:\oracle\JDev1213, if you navigating to the Oracle_Home\jdeveloper\jdev\bin folder and open the jdev.boot file, you will see the variable ‘ide.user.dir.var’:


Now I recently installed a second JDeveloper 12c in a different directory, this JDeveloper is installed with the SOA extensions, I installed this on the C drive as well, but in the folder C:\oracle\JDevHomeSOA. Within this JDeveloper folder, there is also a jdev.boot file under the folder ‘\jdeveloper\jdev\bin’, however, I changed the ‘ide.user.dir.var’ to a specific _SOA variable:


Now all that is left to do is to create two new Environment Variables, pointing to different JDevHome directories:


This will create two different domains for each JDeveloper, keeping your environment clean and tidy!