Accessing global custom attributes in WebCenter Portal 12c

Global Attributes can be declared to share variables and information between all the Portals.

Out of the box, one of the attributes is the wcSessionTimeoutPeriod responsible for the session timeout. My friend Daniel already blogged about
accessing this on his blog entry.http://blog.vassit.co.uk/knowledge/access-global-custom-attributes

Way of accessing in EL is still working as following

HOW CAN BE ACCESSED USING EL EXPRESSIONS?

#{WCAppContext.application.applicationConfig.customAttributes[‘wcSessionTimeoutPeriod’]}

If you want to use Java API, one way to use

ADFUtils.evaluateEL("#{WCAppContext.application.applicationConfig.customAttributes['wcSessionTimeoutPeriod']}")

But if you are concern about performance, it’s not best practices to use evaluate EL in the java class. It is better to use OOTB API to access this. in 12c you can use following way

WCApplicationContext wcAppCtx = WCApplicationContext.getCurrentInstance();
WCApplication wcApp = wcAppCtx.getApplication();
WebCenterType wcMeta = wcApp.getApplicationConfig();
CustomAttributes customAttr = wcMeta.getCustomAttributes();
...

This will work in 12c.

Happy learning

DevOps with Oracle Developer Service – Deploy SpringBoot application to Oracle ACCS

Developer need to follow agile way in developing application. DevOps is new way of Software development. Developers need to setup some support service before starting new project. This can be as follows-

  • Wiki  for document authoring and collaboration with your team members
  • Version Control
  • Automated build.
  • Code Reviews
  • Issues Tracking.

Many organization follows these standard for their development practice. But in Oracle Development stack, Some of things are quite new. And reading this article further will be more interesting for them.

Developer Cloud Service is answer for all support service you require. It comes with other cloud development services i.e.

  • Java Cloud Services.
  • Database Cloud Service
  • Java Cloud Service-SaaS Extension
  • Messaging Cloud Service
  • Mobile Cloud Service
  • SOA Cloud Service and 
  • Application Container Cloud

 

The DevCS is a complete development platform provided as a service to enable an agile development process and to automate DevOps & delivery. It covers most of the DevOps cycle including Continuous Integration, Continuous Delivery and Collaboration. 

 

Oracle Developer Cloud Service is a collection of similar software and services hosted on Oracle Cloud. Oracle Developer Cloud Service helps you to manage the application development life cycle effectively through integration with Hudson, Git, Maven, issues, and wikis. Using Oracle Developer Cloud Service, you can commit your application source code to the Git repository on the Oracle Cloud, track assigned issues and defects online, share information using wiki pages, peer review the source code, and monitor project builds. After successful testing, you can deploy the project to Oracle Java Cloud Service – SaaS Extension, publicly available Oracle Java Cloud Service instances, Oracle Application Container Cloud Service instances, or to an on-premise production environment.

 

Following are components in DevCs

  • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, Command line
  • Continuous Integration – Hudson
  • Issue Tracking
  • Code review
  • Deployment automation
  • Agile process management
  • Wiki
  • Version Management – Git
  • Build Automation
  • Activity Stream 

     

    You can link DevCs with NetBeans and Jdeveloper very easily and work with it quite effectively. If your code is in external GitHub account, it can also map that and make it work for you. Looking at Oracle Development methodologies, DevOps is quite new terms and many organization is not ready with it. This can be great service for them . Specially Customer with Oracle Forms, Pl/Sql, Apex, ADF stack, this can be quite useful and you can set up whole environment in couple of hours. So definitely, it is worth for a give a try .

     

    Use CaseAn organization wants to setup DevOps practice with Oracle public cloud for Dev & test. However production still remains on premise. In such case Oracle Developer cloud service can deploy artifacts(e.g. JAR file) to JCS (Java cloud Service) or ACCS (Application container Cloud service). For making deployment in production, We will make artifact ready for deployment to Production and place in separate Git Hub location.

     


     

    I have spring boot application in Netbeans. Create connection from NetBeans to developer cloud service. Click on Team- Team Server- Add new server.

     


     

    Provide credentials and url of DevCs.

     


     

    After making connection to DevCs, create new project in Developer Cloud service or open project , if project exist in DevCs.

     


     


     


     

    Navigate to DevCs server to see whether project created in console.Open DevCs console, new project will created successfully.

     


     

     

    You can also create project in DevCs console as well. Select Security as private or shared.

     


     

    • Choose template for new project. There are multiple template available


     

     

    If you have existing local github account. You can also import from there as well . Click on Finish.

     


     

    After that , you will see something like

     


     

    Alright , now project is created in DevCs , which we created from Netbeans. Now we will start code uploaded in Code section.

     


     

    Now go to build section to create a build job. Here I have created a Job named “Master Build“. Go to the configure section of Master build. And click on Source Control tab. Here you need to configure repository info where code is checked-in.

     


     

    Now click on Build steps. Add build step “Invoke Maven 3”. And define appropriate goals configured in your maven.xml

     


     

    And then add maven goals and select pom.xml and provide profile.

     


     

    Go to post build section and select option to archive artifact. If you have Junit test cases select option to publish Junit test cases as well. It will show test results on Developer CS console. You can do configuration like

    Publish Javadoc,configure to build other jobs. Click on Save.

     


     

    You can set trigger point of these build using schedule.

     


     

    Now click on Build now. It will run that job for building the repository and show you status of that job. You Can also see Git Logs, Audit , Junit test result. It will take a while and show you progress of build.

    You can also configure notification for successful and failed build.

     

     

    See generated archive in artifacts of Last Successful build tab , under target. Expand and see that

     

     

    Click on Console to see build console

     

    Now, we have generated artifact successfully. Now we can configure deployment to Oracle ACCS. Click on ‘Deploy’ menu option configure & Deploy application in your ACCS account.

     

    Now Click on New configuration.Provide Configuration name, application name. Select Deployment target as Application Container cloud

     

    You can select different deployment target as below

    Select ACCS properties as follow and click save and Deploy.

    Now, you can see deployment status and artifact is deployed successfully to Oracle ACCS. Similarly, you can deploy application to Java cloud Service and Java cloud Service- SaaS Extension.

     

    You can stop, redeploy and change configuration easily.

     

    Now, if place artifact to separate GitHub location, we can also write another build job for that. It will move artifact from DevCs to GIT Hub. Navigate to Build and Click on New Job.

    In build steps configure build steps as Execute shell

     

    You can some command to copy archive to remote GitHub Location and push. Its normal command. That’s it. If you see, you can follow whole DevOps in Oracle Cloud easily and it will provide lots of features out of box. You can also configure on premise Jenkins with Developer Cloud Service using hook up. Read this Article.

     

    Keep looking this space for more article about Developer Cloud service in depth. Happy Learning Oracle Cloud.

     

Deploy to Application Container Cloud Service from Oracle Storage Cloud via REST API

As mentioned in my previous post about Application container cloud. We can use two options to upload application archive to ACSS

  • UI console (Already covered in previous post)
  • From Stroge cloud service via REST API

In this post, we will talk about upload archive via storage cloud Service using REST API. There is two steps for that

  1. Store archive to Storage Cloud service.
  2. Deploy Archive to ACCS.

tttttt

Information credentials for cloud account should be handy as identity, domain, password for using in REST API. Using cURL scripts to upload your application to the storage service.

 

Note :  cURL is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.

 

Store archive to Storage Cloud service

 

Before uploading in Storage cloud, We need to build container in Storage Cloud Service. Either you can via Storage cloud UI console. Building using UI console is pretty easy and straightforward.

 



 

We will create container via curl command.

  1. Below Script will create storage container.    
# CREATE STORAGE CONTAINER
curl -i -X PUT \ -u User-Name:Password \ https://hostname/v1/Storage-Identity-Domain/App-Name

 

  1. Now upload your application archive to the storage container.
# PUT ARCHIVE IN STORAGE CONTAINER
curl -i -X PUT \-u User-Name:Password \ https://hostname/v1/Storage-Identity-Domain/App-Name/Archive-File-Name -T Path-to-local-file/Archive-File-Name

For example use following script to upload it

curl -i -X PUT \ -u sampleUserName:samplePassword \ https://storage.oraclecloud.com/v1/Storagecontainer/DeveloperSkillsApp/SpringBootJpaDev-1.0-dist.zip -T target/SpringBootJpaDev-1.0-dist.zip

After running these script, it is uploaded to Storage cloud container.

 


 

Deploy Archive to ACCS –

After uploading archive to Storage cloud servicee, ACC’s deployment procedure can be invoked. We need to provide standard set of information while deploying. Sample schema of script should be as follows

# Mock Deployment Script
url -i -X POST  \
  -u User-Name:Password \
  -H "X-ID-TENANT-NAME:Identity-Domain" \
  -H "Content-Type: multipart/form-data" \
  -F "name=App-Name" \
  -F "runtime=java" \
  -F "subscription=Monthly" \
  -F "[email protected]" \
  -F "archiveURL=App-name/Archive-File-Name" \
  -F "notes=Your Notes here" \
  https://hostname/paas/service/apaas/api/v1.1/apps/Identity-Domain

Trying to upload with following script –

curl -v -u "USERNAME:PASSWORD” -X POST -H "X-ID-TENANT-NAME: IDENTITY_DOMAIN" -H "Content-Type: multipart/form-data" -F "name=Developer-skills-service" -F "runtime=java" -F "subscription=Monthly" -F "archiveURL= Storagecontainer/SpringBootJpaDev-1.0-dist.zip " -F "notes=Developer Skills Service Deployment" https://apaas.REGION.oraclecloud.com/paas/service/apaas/api/v1.1/apps/IDENTITY_DOMAIN

 

When you deploy your application, you can reference a deployment.json file. Information about deployment like memory , instances etc. can be pass via deployment.json.

 

You can automate these two process using maven. You can also configured this by maven plugin in Oracle Developer cloud services.

 

 

That’s all for now. Happy Oracle Cloud learning.