Thanks for the huge interest in the Fusion
Middleware & PaaS Partner Community Forum 2016! With more than 225
registrations and 180 confirmed attendees the conference is booked out! We
are in process to try to get additional budget to host more attendees. In
case you want to attend please
register online here. We will add all new registration to the waiting
list and decide after my holiday beginning of March 2016. For the lucky
ones who got a seat feel free to join
our Facebook event page here.

The conference always have been booked out.
This time it sold out in record time, we opened the registration 100 days
in advance and in less than 50 days before the conference there is no seat
available. This proofs the interest in Oracle Middleware & PaaS is huge
and our community is stronger & more active than ever before! Thanks to
all speakers and attendees who will make also the 22nd conference in
Valencia a super success!

Take this opportunity and register now for
the Oracle Fusion Middleware Partner Community Forum that will be held in
the Las Arenas in Valencia Spain on March 15th & 16th
2016 with hands-on training on March 17th & 18th
2016. Registration is free of charge, except in case of cancellation fee €
150 or no-show fee €500!

Network
within the SOA & BPM Partner Community and the WebLogic &
Mobile Partner Community

Additionally to the Fusion Middleware
Partner Community Forum, you can participate in technical hands on workshops
on March 17th
& 18th 2016 (for those attending the
workshops, it is also required to attend the Community Forum on March 15th
& 16th). You can only choose one workshop which runs for two
days. The goal of these workshops is to prepare you for customer
implementations and to become a certified implementation specialist.

The Java Cloud Service (JCS) in the Oracle
Public Cloud allows me to deploy Java EE applications such as JAX-RS and
JAX-WS REST and SOAP Web Services, Servlet | JSP | JSF Web Applications,
EJB and JMS artifacts and ADF applications to the public cloud and make
them accessible to developers, testers and end users anywhere in the world.
For components to be deployed to the JCS – I have to do nothing special (!)
during development or deployment: anything that runs on premises will run
in JCS.

In this
article, I will describe some of my initial experiences with JCS: what did
I have to do to get going the first time – from having nothing more but a
(trial) subscription to JCS to deploying and running my first Java EE
application on JCS. I thought this would be a very long article with a
large number of tips and tricks and with deeply technical steps. I felt
some reluctance to even get going – feeling a little daunted by a new world
full of new terminology. As it turned out – this is not a long article and
it certainly does not contain a lot of tips. My initial reluctance was
misplaced. JCS is just WebLogic – hosted on a different machine than my
laptop and with a different provisioning interface. The amount of cloud
terminology is limited (cloud account, identity domain, service instance is
probably the bulk of it – along with simple tooling: dashboard, service
console). JCS builds on three other Oracle Public Cloud Services that we
need to be aware of: DBaaS (Database), Compute Cloud Service and Storage
Cloud Service.

The steps (described in this tutorial) that
you need to go through in order to have your first Java EE application
running are:

(do:
5 minutes | then
wait: days up to months) Geta [Trial] Subscription to the
Oracle Java Cloud Service – for your Oracle account
(the same one you use for OTN and any other interaction with Oracle);
an Oracle Java Cloud Service trial environment or purchased
subscription comes with Oracle IaaS Public Cloud Services, which
provides you access to Storage CS and Compute CS – both of which
underpin the JCS instance; Note:
Database Cloud Service is a prerequisite of Java Cloud Service and is
priced separately. When you request provisioning of an instance of
JCS, you need to specify the DBaaS instance that it should make use
of. Read my previous article on DBaaS to get going with the
Oracle Database as a Service offering and prepare a database instance.

(do:
5 minutes) Associate
the [trial]subscription with an existing or a new Oracle Public Cloud
account (and thereby to an identity domain)

(do:
5 minutes) Generate
SSH keys (you can reuse the SSH key pair you may
already have created to get going with Oracle DBaaS)Read
the complete article here.

In the article you are currently reading, I
show you how to use this instance for deploying a Java EE application onto
– and subsequently invoking that application.

Since the same consoles are available to us
with JCS as with on premises WLS, we can perform an application deployment
in the same way from the console by uploading a WAR or EAR file as we can
do on premises. I tried my hand at a fairly large application – without any
Java EE dependencies (no EJB, JMS or JDBC data source requirements): the
ADF Faces Rich Client components Demo application – available from http://www.oracle.com/technetwork/developer-tools/adf/downloads/index.html.
The downloaded file is about 105 MB. The subsequent deployment of this file
to JCS fails: the step takes quite long – because 105 MB have to be
uploaded again, from my laptop into the Oracle Public Cloud. This console
could be extended by Oracle perhaps to also offer to upload directly from a
URL. On three attempts, after about three minutes into the upload, the
deployment process fails. Either on the JCS end or in the browser to server
communication is a problem. I am not sure what it is caused by. For now, I
will simply try my hand at a smaller WAR.

Plan B or Take Two at deploying a Java EE
application

Instead of looking around for a suitable
ready to deploy WAR file, it is probably even more rewarding to quickly
develop a Java EE application, build it as a WAR file and deploy it to my
new JCS instance. Using JDeveloper, I quickly whip up a JAX-WS application:
a simple Java Class that with some JAX-WS applications is turned to a SOAP
Web Service (by right clicking the Class and selecting the option Create
Web Service):

The functionality of this service should be
fairly obvious from the code. The WSDL that the derived service exposes can
be previewed in JDeveloper:

It is not an exaggeration to say Adam Bien
is pretty close to a "household name" in the Java world. Adam is
a long time Java enthusiast, author of quite a few popular books, Java
Community Process (JCP) expert, Oracle ACE Director, official Oracle Java
Champion and JavaOne conference Rock Star award winner. Adam most recently
won the JCP member of the year award. His
blog is amongst the most popular for Java developers.

Adam recently took WebLogic 12.2.1 for a
spin and was impressed. Being a developer (not unlike myself) he focused on
the full Java EE 7 support in WebLogic 12.2.1. He reported his findings to
Java developers on his blog. He commented on fast startup, low memory
footprint, fast deployments, excellent NetBeans integration and solid Java
EE 7 compliance. You can read Adam's full write-up here.

None of this of course is incidental.
WebLogic is a mature product with an extremely large deployment base. With
those strengths often comes the challenge of usability. Nonetheless many
folks that haven't kept up-to-date with WebLogic evolution don't realize
that usability and performance have long been a continued core focus. That
is why folks like Adam are often pleasantly surprised when they take an
objective fresh look at WebLogic. You can of course give WebLogic 12.2.1 a try
yourself here.
There is no need to pay anything just to try it out as you can use a free
OTN developer license (this is what Adam used as per the instructions on
his post). You can also use an official Docker image here.

Solid Java EE support is of course the tip
of the iceberg as to what WebLogic offers. As you are aware WebLogic offers
a depth and breadth of proven features geared towards mission-critical,
24x7 operational environments that few other servers come close to. One of
the best ways for anyone to observe this is taking a quick glance at the
latest WebLogic
documentation.

On my previous post, the first part of this
series, I've shown to you how to quickly get
started with WebLogic on Docker. You've learned how to create a base
Docker image with WebLogic and Oracle JDK installed, and then how to create
a second image that contains a configured WebLogic domain. Today's post
will break down and explain what happens behind the scenes of that process.

Note: for the
sake of history and keep this blog post useful in the future, I will refer
to the commit 7741161
from the docker-images
GitHub project, and version 12.2.1 of WebLogic.

Walking through the build
process of a WebLogic base image

A base image of WebLogic means an image
that contains only the software installed with minimum configuration, to
further be extended and customized. It may be based on a Red Hat base
Docker image, but preferably, we recommend you to use the Oracle Linux base
image.

Samples for how to build a base image are
presented in the dockerfiles
folder. Files for WebLogic versions 12.1.3 and 12.2.1 are maintained there,
as well for two kinds of distributions: Developer, and Generic. Other
versions and distributions may be added in the future.

Differences between Developer
and Generic distributions

There aren't many differences between them,
except these (extracted from the README.txt
file inside the Quick Installer for Developer):

WHAT IS NOT INCLUDED IN THE QUICK INSTALLER

Native JNI libraries for unsupported platforms

Samples, non-english console help (can be added by
using the WLS supplemental Quick Install)

Oracle Configuration Manager (OCM) is not included
in the Quick installer

SCA is not included in the Quick Installer

Also, the Quick Installer for Developers is
compressed using pack200,
an optimized compression tool for Java classes and JAR files, to reduce the
download size of the installer. Besides these differences, the two
distributions work perfectly fine for Java EE development and deployment.

On the heels of the extremely well
received FlexDeploy 3.0 release at Oracle OpenWorld in
October 2015, Flexagon today announced FlexDeploy 3.1 is now available.
With 3.0 users saw enhancements for Oracle Cloud, test automation,
E-Business Suite, and Fusion Middleware. FlexDeploy 3.1 provides additional
support for Fusion Middleware and Cloud PaaS, additional plugins for test
automation, and usability improvements. FlexDeploy
is a DevOps and Application Release Automation platform that significantly
lowers project risk and cost, while accelerating software delivery.
FlexDeploy provides a comprehensive and integrated platform for managing
the entire build, deploy, test, and release lifecycle. Users are able to
capitalize on their investments and innovate faster than ever, with extensive
automation, improved controls, and visibility to information like never
before. FlexDeploy is an open platform, which includes pre-built content
for Oracle Fusion Middleware, Oracle Applications, Oracle Cloud Services
and many non-Oracle tools and technologies.

FlexDeploy 3.1 Highlights

Fusion Middleware and Cloud PaaS Enhancements– FlexDeploy’s support for Fusion Middleware and
PaaS is unparalleled, providing out of the box Build and Deployment
features that enable full automation. FlexDeploy 3.1 makes additional
improvements, driving further automation and consistency of Fusion
Middleware and Cloud PaaS implementations.

WebLogic
Plugin: WLST Script Execution – support for execution of user defined
WLST scripts for Fusion Middleware domains. These scripts can be
written and executed for base WebLogic, SOA, WebCenter, or any other
Fusion Middleware component.

As a weblogic administrator the interaction
among the application server and the database is often strong. In fact,
according to Confio Software (2013) approximately 70% of applications’
performance problems are caused by the dataWith the development of
partitions on WebLogic, Oracle has developed an infrastructure that is
similar to containers and that takes advantage of the WebLogic server’s
capacities such as clustering, transaction management and security [1].

These are the advantages of using WebLogic
Server Multitenant [1]:

Time to market is improved.

The complexity of moving workload to the cloud and
from the cloud is reduced.

It is possible to convert monolithic applications
to smaller services.

It allows up to 3x hardware consolidation.

Reduction of OPEX by up to 25%

Since WebLogic Multitenant is based on the
concept of partitions or micro containers. It is important to remark that
these partitions allow the portability of applications reducing the time to
market and allowing the movement to the cloud or vice versa.

Multi-tenant allows group applications that
are scattered through several domains, which helps to optimize the use of
hardware, making possible the reduction of OPEX.

In addition, a partition does not have any
Operating System or JVM component. Applications and configuration artefacts
compose partitions or micro containers and each one of these micro
containers could use a managed server or a cluster.

In the following diagram, the topology
shows two partitions deployed on the same cluster, which allow them sharing
the JVMs that are part of that cluster.

With this in mind, in this post, I will
show you how to reach the topology described based on partitions. I have
created a domain with a cluster and I have an Oracle Pluggable Database
available so now these are the additional elements created in this post:

Virtual targets. According to [2] a virtual target
is the target used by a resource group at the domain level and
partition level. Virtual targets are targeted to managed servers or
clusters and they define access points to resources. Virtual targets
give a separate HTTP per each server as in the case of virtual hosts
in WebLogic Server [2]. Since virtual targets set the access to resources
and resources are group by resource groups, these require one or more
virtual targets. When a resource group has a global scope (related to
the domain) it is possible to select any virtual target that is not
assigned to a partition. On the other hand, when a resource group is
assigned to a partition, this can use only available virtual targets
in the partition [2]. Read
the complete article here.

Multi-tenancy (MT) in WebLogic Server (WLS)
provides a sharable infrastructure for use by multiple organizations. These
organizations are a conceptual grouping of your own choosing, which you can
think of as tenants.
By allowing one domain to support multiple tenants, WebLogic-MT improves
density and achieves a more efficient use of resources.

WebLogic-MT
provides resource isolation within a domain partition, an administrative and runtime
slice of a WebLogic domain that is dedicated to running application
instances and related resources for a tenant. Domain partitions achieve
greater density by allowing application instances and related resources to
share the domain, WebLogic itself, the Java virtual machine (JVM), and the
operating system, while isolating tenant-specific application data,
configuration, and runtime traffic. Read
more about WebLogic-MT here.

What is Resource Consumption
Management?

A premium feature in WebLogic-MT 12.2.1,
Resource Consumption Management (RCM) provides resource isolation and tries
to ensure that resources are allocated fairly to the partitions. It
provides a policy infrastructure to limit usage of the shared resources and
take appropriate actions when those specified limits are breached. It can
also help maximize resource utilization in consolidated deployments.

Why is RCM important?

As we saw, in WebLogic-MT there can be one
or more co-located partitions in a single JVM. When partitions are
co-located, they may consume or compete for the low-level resources offered
by the OS/JVM. Low-level resources are often limited in nature. The (over-)
consumption of these resources by one partition may (adversely) impact the
other co-located partitions. Therefore, in WLS-MT, where partitions are
co-located, it is important to isolate
these partitions and the resources consumed by these partitions.

For example: If there are 100
file-descriptors available on a particular OS running WebLogic-MT that has
2 co-located partitions, one partition may end up consuming most of the
available file-descriptors, leaving absolutely nothing for the other
partition (implying the affected partition cannot function as expected).
The affected partition has to bear the cost of being co-located with

As we can see, the Blue tenant is affected
adversely because the Red tenant consumed most of the shared resources. The
solution is to enforce policies through the RCM, so that one partition does
not end up consuming all the low-level resources. With RCM, the system
admin can define policies so the consumption of resources by one partition
does not adversely affect the other co-located partitions. Read
the complete article here.

The Oracle IoT Cloud Service
is a secure and scalable platform to help organizations quickly build and
deploy IoT applications. This new offering allows customers to gain new
data-driven insights and drive actions from IoT by connecting, analyzing
and integrating device data into business processes and applications
like remote equipment monitoring and asset tracking.

The 3 Core Elements of IoT
Cloud

Connect - Using
IoT Cloud Service, users can collect data from any device in
any market—reliably and securely. It abstracts away the technical
challenges of connecting to devices/gateways and accelerates your time
to market with an open, secure, and scalable platform.

Analyze -
Gathering IoT data is pointless if customers can’t get value from it.
IoT Cloud Service performs real-time analytics and enables big data
and predictive analytics to deliver the enriched enterprise data that
enables you to identify new services and improve customer
satisfaction.

Integrate - IoT
Cloud Service extends enterprise applications using open interfaces
and pre-integrations with Oracle’s platform-as-a-service
(PaaS), software-as-a-service (SaaS) and on-premise applications to
reduce total cost of ownership for IoT data-enriched applications and
processes.

IoT Cloud Key Features

Device Virtualization – IoT
Cloud Service exposes every connected device as a set of resources.
This abstracts any complexity associated with device connectivity and
standardizes the integration of devices with the enterprise.

Flexible Topology -
Devices can connect to the Oracle IoT Cloud Service using different
types of network topologies – using client library, gateway software or
directly using REST API. This offers customers flexibility to integrate
their devices with IoT Cloud Service.

Stream processing – IoT
Cloud Service performs real time analysis of incoming data streams
with event aggregation, filtering and correlation. With a business
friendly interface, customers can quickly identify key events and
exceptions at real-time.

Event Store – Analyzed
data streams can be sent to integrated cloud services or enterprise
applications for further processing and driving business
workflows. Customers can query and visualize massive amounts of data
with integrated Oracle Business Intelligence Cloud Service support and
enable Big Data Analysis. Read
the complete article here.

Last week I had the chance to attend a
Mobile Cloud Service 3 days workshop in Madrid. This was the first MCS
training in Spain where some partners and I were able to get a good insight
about what MCS offers and also a complete hands-on.

Although I already attended Oracle Summer Camps workshop in Lisbon, we are
in the middle of a MCS development and this workshop was a
perfect fit for mastering my MCS skills and also any question we made was
perfectly answer by Mireille Duroussaud (Senior Principal Product Manager).
We were also able to see some of the features that will bring the next
versions of Mobile Cloud Service like Mobile Application Accelerator
(Oracle MAX), and hear of others like for example a JavaScript editor for
implementing and debugging APIs right in the browser.

I was really impressed about Oracle MAX
becasue building a Mobile Application connected to Mobile Cloud Service was
just a matter of 10 minutes. Although the things you can do with Oracle MAX
are limitted, it is likely possible that we will be able to donwload the
source code of the generated application to extend it wich is a nice
feature. Read
the complete article here. Want to attend a MCS training close to you?
Visit our WebLogic & Developer Community
training calendar here (Community
membership required).

CRUD use case would not be complete without
validation logic implementation. Oracle JET allows to implement standard
and custom validators on the client. Probably most of the simple to average
complexity logic will be implemented in Oracle JET. Complex use cases can
be handled in ADF BC validation rules, data will be validated through REST
calls. When validation fails in ADF BC, error message is propagated through
REST back to Oracle JET client, where we can parse it and attach to the UI
field.

You can watch demo video, it shows how it
works. I'm trying to update a row with invalid data, rules are executed in
ADF BC and validation messages are displayed next to the UI fields in JET:

There are three rules defined in ADF BC. It
might be tricky to map UI field with error message. This is easy in case of
PATCH method, ADF BC REST returns failed attribute name together with the
message. This doesn't work in the same way with POST method, when new row
is created. For this reason, I have introduced custom indicator into each
validation message *AttributeName*. I'm parsing this value in JET, to
understand which UI field should be marked as incorrect.

One of our customers required to filter
data in a page with a tree component. Using Ashish's post I am going to show you how to
filter both parent and child nodes having just a single filter value. This
can also be applied to treeTable component.

The first thing we need is a tree component
and data structure, in this case we are going to use Oracle's hr schema
tables: Departments and Employees.

In our page we drag and drop
DepartmentsView from datacontrols palette and create a tree component.

Every ADF project could have a requirement
to handle browser close event effectively. Differently than desktop
applications where we could handle such events, browser doesn't send any
event to the server, when browser page is closed. This is especially
important for transactional data, when user locks data row and lock must be
released automatically, in case if user is closing browser without
unlocking. Besides transactional data management, it is important for
performance improvement - Web session will be closed instantly and WebLogic
resources will be released. There was no reliable solution to handle this,
now we can do it with WebLogic 12c
and WebSockets. WebLogic 12c
supports WebSockets natively, there is no need to configure anything or add
libraries.

When WebSocket channel is closed, it
delivers event to the server on browser close. We
could use this event to release locked resources, we need to logout ADF
session to force ROLLBACK. Sample application implements HTTP client
invoked by WebSocket server endpoint. This HTTP client simulates browser
activity and redirects to adfAuthentication with logout request, using
original JSESSION ID from closed browser session. This works also during
accidental client computer power off. Download sample application where I
have described all important implementation steps - ADFSessionHandlingWebSocket.zip.

Sample application is protected with ADF
Security, you can login with redsam/welcome1 user. It includes Oracle JET
libraries, one of the dashboard tiles implements JET fragment. JET is not
required for the sample to work, it is used only to implement dashboard UI.

You can observe from browser log when
WebSocket connection is opened. Connection is established on initial page
load, immediatelly after login. This opens WebSocket communication chanel,
as soon as this chanel will be closed - WebSocket server endpoint will
force logout for ADF session from closed browser. As soon as WebSocket
channel is established, ADF web session ID (JSESSIONID is retrieved from
the cookie) is sent to WebSocket server endpoint. Sample logs ID of ADF web
session: Read
the complete article here.

When using popups in ADF we suffered the
problem to close the popup after finishing the activity.

So this is the request: We have a table providing
data with an info facet holding buttons for adding, editing and deleting a
selected row. While the add and edit button open a popup with a form the
delete button opens a dialog to confirm the delete action. This is realized
with a showPopupBeavior. Of course there is a cancel button in all of these
popups closing it immediately and rolling back.

So this is an example what a popup might
look like.

As the cancel button immediately rollbacks,
the save button immediately commits the made changes.

This cancel button is just out of the box,
closing the dialog and not rolling back because there is nothing to
rollback. But delete executes this action, commits and closes the dialog.

How is this implemented?

Every button has an actionListener property
which we will use. After completing out task in the code before we will
call a closePopup method. Read
the complete article here.

In same way we can populate values in
selectOneListBox as both ADF Faces components are used for single selection
and share same structure
Here i have used a List to populate values in selectOneListBox (For
details read complete article in above link).

And to
get selected value from af:selectOneListBox/selectOneChoice
in bean- Used a String variable, created it's accessors.

I was researching ways to implement edit
functionality for dashboard created with ADF 12.2.1 masonry layout. Check
my previous post, where dashboard was implemented - ADF 12.2.1 Responsive Dashboard with Masonry Layout. I
have decided to use panel drawer component, which would bring editable
fields in the context of data displayed in the dashboard. Panel drawer icon
is displayed in the top right corner of the dashboard.

User can click on the icon and this shows
editable form for the data rendered in the dashboard:

Dashboard is implemented with masontry
layout, it makes it possible to re-arrange tiles. This proves to be useful
when editing data. I can move tile with the chart and change salary value.
Chart is synched and new value becomes visible. Two actions are done at
once - data update and change review in the chart:

One more use case - validation. While
editing salary, we can check tile with minimum and maximum salary values.
This could help to understand, what salary value can be accepted. For
example, if too low salary is set, validation error is returned. User can
cross check this in the chart with minimum and maximum values: Read
the complete article here.

Oracle DB could notify client, when table
data changes. Data could be changed by third party process or by different
client session. Notification implementation is important, when we want to
inform client about changes in the data, without manual re-query. I had a
post about ADS (Active Data Service), where notifications were received
from DB through change notification listener - Practical Example for ADF Active Data Service.

Now I would like to focus on change
notification listener, because it can be used in ADF not only with ADS, but
also with WebSockets. ADF BC
is using change notification to reload VO, when configured for auto refresh
- Auto Refresh for ADF BC Cached LOV.

Change notification is iniatilized by DB
and handled by JDBC listener. There are two important steps for such
listener - start and stop. Sample application - WebSocketReusableApp.zip,
implements servlet DBNotificationManagerImpl. I'm starting and stopping DB
change listener in servlet init and destroy methods: Read
the complete article here.

At the 23th and 24th
of February the annual devcamp of the German Oracle User Group will take
place in Bonn (devcamp.doag.org).

This event will cover hot topics like
Mobile and IoT but also other relevant subjects like project organization,
Oracle Forms, APEX, SOA and BPM. An
integrated part of the 2-day conference will be a meeting of the German ADF
community (ADF Fitness Center). Here we will have presentations and
hands-on labs about Oracle Developer Cloud Service, JET, Mobile Cloud
Service (OMCS) and ADF. We expect experts in all of these areas like Sascha
Wolter (Deutsche Telekom), Frank Nimphius, Marcel Amende, Geertjan Wielenga
(all Oracle).

The DOAG devcamp will be the ideal place to
get information, present and discuss ideas and for networking.

·VTS Replay Library: Registration for the next OTN Virtual Technology Summit will
open soon. But in the meantime you can watch replays of all the sessions
from the July 2015 and September 2015 events in the VTS Replay Library. In
addition, you can post questions and comments for the session presenters.
You'll find all of the middleware track sessions here.

·Resource Consumption Management with WebLogic Multitenant A premium feature in WebLogic Server
Multitenant 12.2.1, Resource Consumption Management (RCM) provides resource
isolation and helps to ensure that resources are allocated fairly to the
partitions. This article presents details on what RCM is, what it can do,
and how to make it work for you. Read the article.

·WebLogic Scripting for Ansible Oracle ACE Director René van Wijk, an
expert in Fusion Middleware and other technologies, offers code samples
galore in this detailed guide to writing WLST scripts for Ansible, the open
source automation tool. Read the article.

·Oracle MAF 2.2.1 New Features The latest patch for Oracle Mobile
Application Foundation 2.2.1 includes support for using XCode 7 and iOS 9
SDK for building MAF applications, an HTML-based splash screen for iOS,
plus critical bug fixes. Get the details.

·Now Available: Oracle IoT Cloud Service This new offering allows customers to gain
new data-driven insights and drive actions from IoT by connecting,
analyzing and integrating device data into business processes and
applications like remote equipment monitoring and asset tracking. Get the details.

·A New JDK 9 Version String Scheme The new convention will follow the scheme
of MAJOR.MINOR.SECURITY. JDK 9 version strings will start with ‘9’ for the
MAJOR release component.

·Latest Java 9 News Check out the new proposed schedule and the
latest features of Java 9.

·Java Books in 2015 Learn about new books about the Java
platform including Java 8, Java EE 7 and more

·Java on Raspberry Pi BlueJ and Greenfoot, two educational
programming environments for 14 year olds and up are now part of default
software package of the Raspberry Pi.

·OTN's
Virtual Technology Summit,replay Learn from
Java Champions and Oracle Product Experts, as they share their insights and
expertise through hands-on-labs, highly technical presentations, and demos.

It is time to prepare for the Fusion
Middleware & PaaS Partner Community Forum taking place in March in
Valencia. In case you got one of the few seats let us know via Facebook
or google+;
conference hashtag is #ofmForum.
As part
of the transition to a hybrid cloud business make sure you get
your trial account & become an expert in PaaS. The conference in
Valencia will be a huge step forwards. In February I will be on holiday,
time to get new ideas and ready to start for the future.

You are receiving this communication because of your current Oracle
PartnerNetwork (OPN) membership agreement. General Marketing e-mail opt-out
preferences may have been overridden to ensure that you receive this program
information. If you are a designated OPN Administrator you may not opt out of
receiving communications from Oracle PartnerNetwork; please refer to your OPN
agreement for additional information.

You can login to your Oracle
Partner Store account to sign up for OPN Solution Specific Updates or you can
opt-out of general Oracle
Marketing e-mails at any time. Please note that opting-out of Marketing
communications does not affect your receipt of important business
communications related to your current relationship with Oracle such as
Security Updates, Event Registration notices, Account Management, and
Support/Service communications.