MuleSoft.U – Anypoint Trial Account

Hi all,

It has been a while since my last post, I wanted to write this one because I keep getting a lot of questions about it and I hope this can help you to sort the problem out, in summary make sure you use the same e-mail for both accounts:

Step to verify before contacting MuleSoft:

  1. First, check if your Anypoint Platform trial account email address matches the email address you used to register for the MuleSoft.U class.
    1. If you used the SAME email address to create your Anypoint Platform trial account and to register for the MuleSoft.U class, your latest Anypoint Platform trial account will be automatically extended.
    2. If you used a DIFFERENT email address to create your Anypoint Platform trial account than you did to register for the MuleSoft.U class, you must change the email associated with your latest Anypoint Platform trial account. After changing the email address, your account should be automatically extended within 8 hours.

To check and/or change your Anypoint Platform account email address:

  1. Log in to http://anypoint.mulesoft.com.
  2. Click your initials in the upper-right corner of the page.
  3. In the drop-down menu that appears, select Profile.
  4. Locate the email associated with the account on the Profile page.
  5. If the email address is different than the one that this email was sent to, change it.

 

  1.  Second, if your Anypoint Platform trial still hasn’t been extended/certain features are missing and your Anypoint Platform trial account and MuleSoft.U class registration emails match, please follow follow the workaround detailed below to continue with your course:
  1. Create a new Anypoint Platform trial account.
  2. For CloudHub applications, download the ZIP archives and deploy them into your new Anypoint Platform trial account.
  3. For APIs, export each version of your APIs and import them into your new Anypoint Platform trial account.
  4. For detailed steps, see this forum post.

 

Advertisements

MuleSoft Useful Resources

It has been a while since my last post, since I joined MuleSoft I’ve been challenging them in terms of their documentation and enablement programs, the result: Great!

You can easily find that the company is not only about selling you a solution or having a great product, it really focus on Delivery, if you ask anyone who knows me, they will confirm this about me, Delivery is a priority to me.

I leave you some resources to help you ramp up, I recommend you to suscribe to the first 2 they are free:

  1. MuleSoft Training (https://training.mulesoft.com)
    1. Free Training (https://training.mulesoft.com/category/mulesoftu)
      1. YES!! FREE by MuleSoft
      2. BTW, you’ll get a voucher so you can take a Certification.
  2. MuleSoft Champions Program (http://champions.mulesoft.com/)
    1. This is an enablement program that helps you grow your skills through challenges. You earn rewards (points) after each challenge and you can compare your progress with other participants of the program. Amazing! 2016-08-03_1038
  3. MuleSoft Blog (http://blogs.mulesoft.com/dev/)
    1. Blog written by MuleSoft experts, you can find about anything here. Great for developers and architects.
  4. Others:
    1. DataWeave Examples (Mule v.3.8)
      * https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-examples

    2. RAML

      * RAML Basic Tutorial 

      http://raml.org/developers/raml-100-tutorial

       * RAML Advanced Tutorial (Recommended)
      http://raml.org/developers/raml-200-tutorial

    3. Mule Expression Language (MEL)

        * MEL Reference (Highly recommended)
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-reference

        *  MEL Tips
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-tips

        *  MEL Examples
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-examples

    4. Batch

      * Main Doc (Recommended)
      https://docs.mulesoft.com/mule-user-guide/v/3.8/batch-processing

      * MuleSoft Blog Search on Batch
      http://blogs.mulesoft.com/?s=batch

    5. Update Sites

      https://docs.mulesoft.com/mule-user-guide/v/3.8/studio-update-sites

MuleSoft – Anypoint Platform – API-led Connectivity

API Led Connectivity

I need to introduce this concept in order to jump to the technical part. Lets start with Bimodal IT:

  1. IT needs to be stable, mature and secure, we can see this as a traditional IT model, in here you run your Enterprise Applications with your traditional vendors.
  2. IT needs to be Agile in order to keep up with the business and current IT demands (New interfaces, integrations, partnerships, devices, etc.)

For more information please have a look to this document:
API-led Connectivity

In other words, the market is changing at a faster speed than before and IT needs to be agile in order to help the business to be align with this demand, but they also need IT to keep things stable. Does this sound familiar?

We also find these two common scenarios:

  • Central IT controls everything and its goal is to provide and support IT solutions to the rest of the company, this commonly leads to frustration and a lot of pressure for IT and the business generating an anti-agile pattern.
  • Central IT tries to control everything but the rest of the company departments have their own budget for IT solutions, this in paper makes the company “Agile” but not standard, generating in the long run an anti-agile pattern.

Consequences:

Before we had a problem where things were not Digital so we had no data and companies had to buy specialized systems (HR, Finance, ERPs, CRMs, Portals,etc.), but now we have lots of IT systems, data, transactions, etc.

  • How do I get them talking together?
  • How to I apply governance?
  • Should I let people query my data?
  • How should I handled my security?

How did companies solve this?

  • Point to Point: Applications talking to each other with a customized and personalized solution.
    • Main PRO: Faster for a single interface (Web App, Mobile, SaaS, etc.)
    • Main CON: Only works for a specific interface (Not reusable)
  • SOA: Applications talking to each other through services in a standard format.
    • Main PRO: Canonical Data model, orchestration and service decoupling.
    • Main CON: Time to Market.

How are we solving this issue?

  1. Expose and open internal systems through APIs
    1. Composable Enterprise
  2. Enabling different Lines of Business
    1. Divide and Conquer
  3. Let the front-line drive based on the consumer needs.
    1. The business shouldn’t be driven by IT but it should be responsive to the market needs.

API: Application Programming Interface

“Is a set of routines, protocols, and tools for building software and applications. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer.”

All of this leads us to a 3 layer model or architecture. Some time ago I heard this analogy that I would like to share with you:

Use Case:

  1. House owner calls an emergency number and gives the following information “My house is on fire I live in {Address}”.
  2. The operator calls the police and provides this information ” A house in this Address is on fire”
  3. The operator calls the fire department and provides the same information ” A house in this Address is on fire” and it does the same to the local hospital.
  4. The police operator triggers a code 027282728 and sends police elements to the address provided.
  5. The fire department triggers a code ab12334 and sends a fire truck to the address.

I believe this is how the New Enterprise should behave:

  1. Consumer only interacting with what they need and that can improve its experience. (UX Layer)
  2. Line of business defining and managing the services exposed.
    (Process Layer)
  3. Central IT and Middleware specialist opening the data to the rest of the layers through APIs.
    (System Layer)

This whole concept fits perfect in MuleSoft as it’s not only a concept that they drive is also a concept they can deliver through the Anypoint Platform that I’ll be covering in following posts.

2016-02-04_2332

 

Oracle WebCenter Portal – Dynamic Page Styles

Ok so… Moving to MuleSoft doesn’t mean I’ll stop writing about Oracle, at least not for now.

This post should help some of you that still have nightmares when you hear the word Page Style in WebCenter Portal.

The problem?

They are not difficult to build, as they can be considered like “Templates” but once they get assigned to a Page, if using a common approach, you can’t change modify a Page Style and reflect the change to an existing page, unless you RECREATE the page.

THIS IS NOT COMPLETELY TRUE

Solution

Build dynamic Page Styles, one of the most easiest ways of doing this is using “Declarative Components“.

 

If you want to know more about Declarative Components please have a look here:

v. 11.1.1.9

https://docs.oracle.com/middleware/11119/adf/tag-reference-faces/tagdoc/af_declarativeComponent.html

I’ll describe this solution for both, WebCenter Portal Framework and WebCenter Portal.

WebCenter Portal Framework

  1. Create your portal Application
  2. Create a Declarative Component
  3. Create a Page Style
  4. Reference the Declarative Component in your Page Style
  5. Create a Page based on the Page Style
  6. Modify the Declarative Component and test.

Panel Splitter

 

2015-11-22_0245

 

Panel Tab

 

delcarativecomponentsPS2015-11-22_0246

 

For now I’m just going to give you an example of how a Declarative Component might look like:

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
  <af:componentDef var="attrs" componentVar="component">
    <af:panelTabbed position="above" id="dc_pt1" styleClass="AFStretchWidth" dimensionsFrom="auto">
      <af:showDetailItem id="Left" text="Tab Label 1" disclosed="true">
        <af:panelGroupLayout id="dc_pgl2">
          <af:facetRef facetName="facetLeft"/>
        </af:panelGroupLayout>
      </af:showDetailItem>
      <af:showDetailItem id="Center" text="Tab Label 2">
        <af:panelGroupLayout layout="scroll" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" id="dc_pgl1">
          <af:facetRef facetName="facetCenter"/>
        </af:panelGroupLayout>
      </af:showDetailItem>
    </af:panelTabbed>
    <!--af:panelSplitter id="dc_ps1" styleClass="AFStretchWidth">
      <f:facet name="first"/>
      <f:facet name="second"/>
    </af:panelSplitter-->
    <af:xmlContent>
      <component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
        <display-name>declarativePageStyle2Layouts</display-name>
        <facet>
          <description>Left Facet</description>
          <facet-name>facetLeft</facet-name>
        </facet>
        <facet>
          <description>Center Facet</description>
          <facet-name>facetCenter</facet-name>
        </facet>
        <facet>
          <description>Right Facet</description>
          <facet-name>facetRight</facet-name>
        </facet>
        <component-extension>
          <component-tag-namespace>org.mauro.webcenter.components</component-tag-namespace>
          <component-taglib-uri>/pageStyleLib</component-taglib-uri>
        </component-extension>
      </component>
    </af:xmlContent>
  </af:componentDef>
</jsp:root>

Let’s check the important parts:

  • Facets are important as there I will hold Composer components.
  • In the code shown, I have commented a pannelSplitter and I display a pannelTab instead.
    • The example is mainly to show you that the Page Style can be modified from a pannelSplitter to a pannelTab without recreating the whole page.

Now the Page Style:


<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor">
  <jsp:directive.page contentType="text/html;charset=UTF-8"/>
  <f:view>
    <af:document id="d1">
      <af:form id="f1">
        <af:panelGroupLayout id="pgl1" styleClass="AFStretchWidth" layout="vertical">
          <pe:pageCustomizable id="hm_pgc1" inlineStyle="width:100%;">
            <cust:panelCustomizable id="hm_pnc1" layout="scroll">
              <af:panelGroupLayout id="panelGroupLayout1" layout="vertical" styleClass="AFStretchWidth">
                <af:declarativeComponent id="decps" viewId="/components/psLayoutComponent.jsff">
                  <f:facet name="facetLeft">
                    <cust:panelCustomizable id="a_pnc1" layout="scroll" showTabAction="true">
                      <af:outputText value="I'm Facet One" id="ot1"/>
                    </cust:panelCustomizable>
                  </f:facet>
                  <f:facet name="facetCenter">
                    <cust:panelCustomizable id="a_pnc2" layout="scroll" showTabAction="true">
                      <af:outputText value="I'm Facet Two" id="ot2"/>
                      <af:calendar id="c1"/>
                    </cust:panelCustomizable>
                  </f:facet>
                </af:declarativeComponent>
              </af:panelGroupLayout>
            </cust:panelCustomizable>
            <f:facet name="editor">
              <pe:pageEditorPanel id="pep1"/>
            </f:facet>
          </pe:pageCustomizable>
        </af:panelGroupLayout>
      </af:form>
    </af:document>
  </f:view>
</jsp:root>

What the Page Style does, is to reference the Declarative Component and inside the facets it includes the panelCustomizable component for Composer.

Create the Portal Resource for the Page Style and run your application, create a new page using the new Page Style, add something in run time using Composer, then just change the Declarative Component and test it again, your modification should be directly reflected to your page without rebuilding the whole thing, IMPORTANT, remember to leave the reference to the facets.

What’s different for WebCenter Portal?

Just how you publish this change:

  1. You can use a shared library
  2. You can use wlst (importMetadata)

This will import any change done to the Declarative Component.

If you want more information regarding importMetadata:

WebCenter Specific

http://docs.oracle.com/cd/E28280_01/webcenter.1111/e12405/wcadm_app_config_files.htm#WCADM5018

Generic

http://docs.oracle.com/cd/E28271_01/web.1111/e13813/custom_mds.htm#CHDHDCAI

Thanks Infomentum

Just wanted to make public my gratitude with Infomentum  for letting me be part of that amazing company and to the Directors for their mentorship, it was great to see the company grow and to have the opportunity to meet awesome and talented people.

I start a new chapter in my professional career and have to press pause to Oracle and open space to MuleSoft where I’ll be facing new challenges and gaining some new skills to keep advancing in my professional career.

I need to say that Infomentum is one of the best Oracle Middleware Partners in UK, and if you don’t believe me, just have a look to their brilliant projects and to the people’s profile.

Note: I left a goodbye present, they are the first Oracle partner to have a proper Docker Container for Oracle WebCenter Portal 12c, not a jsk in a container a proper container. I’ll explain in a following post.

Thanks!!!

Infomentum

What a great day…. WebCenter Portal 12c is out

I couldn’t wait to share this news, after some years waiting for this version and after being part of the Beta Program is great to announce that the official release of Oracle WebCenter Portal 12c (12.2.1) is out:

http://www.oracle.com/technetwork/middleware/webcenter/portal/downloads/index.html

2015-10-24_0431

Why is this so important?:

  • This version is based on ADF12c meaning: JSF2, Jersey 2, Oracle REST.
  • Performance was improved, average response time: 1s
  • Page Draft Mode!!!!!!!!!!!!!!!
  • New Content Task flows.
  • Alta mobile UI
  • Native HTML5 tag support
  • REST APIs

http://www.oracle.com/technetwork/middleware/webcenter/portal/documentation/wcp-release-notes-2686521.html

More to come in following posts.

Windows 10 and my development tools

Just wanted to do a quick report of my experience so far with Windows 10 and what I normally use for work and for fun.

This test was done in an Alienware 17 and is not an intensive or official test:

Windows 10 + Oracle JDeveloper 11g (11.1.1.8 and 11.1.1.9)

Everything working fine so far, running and deploying ADF and Portal applications working as usual.

Windows 10 + Oracle JDeveloper 12c (12.1.3)

Not good so far, the IDE feels a bit slow and starting the embedded WebLogic takes ages. Once this is running deployment works fine with average performance. I’ll keep running some tests. If someone has the same experience please let me know.

I only ran this test with JDveloper Studio for SOA and BPM 12c.

Windows 10 + Anypoint Studio + Mule 3.7

This was not affected at all, although I just used this version with Windows 8 for a couple of days, being this said, performance and functionality both look great in this version.

Windows 10 + Anypoint Studio + Mule 3.6

Everything working fine so far

Windows 10 + VMWare Player

Not affected, so far.

Windows 10 + Virtual Box

Not affected, so far.

Windows 10 + Boot2Docker

Working fine, performance and functionality both seem to be ok.

So as a conclusion the only product affected so far has been Oracle JDeveloper 12c

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: