Monday Jun 22, 2015

New Support for Oracle Mobile Cloud Service in OEPE

Oracle Mobile Cloud Service provides robust tool suite to design, manage, monitor, and secure the back end services required for an enterprise mobile strategy. Mobile developers can now use Oracle Enterprise Pack for Eclipse to connect to and manage their Mobile Cloud Service assets. Once you have activated your Mobile Cloud Service account, service details will show up immediately in the OEPE Oracle Cloud view.

 Use the Oracle Cloud view to browse and manage your Mobile APIs, Mobile Backends, and Connectors to external resources.


OEPE makes it easy to develop MAF applications which consume back end services defined in Mobile Cloud Service. Simply browse your API catalogs, select the back end services, and generate the REST Client code for use in the the mobile application. Use REST Service Editor to model and test the mobile APIs in Mobile Cloud Service.

To get started with OEPE, Mobile Cloud Service, and MAF check out the video below:


Tuesday Apr 21, 2015

Working with variables in the REST Service Editor

Working with Variables in the REST Service Editor

 By Preston Appel

This blog continues surveying the REST Service Editor's ability to explore an existing REST API and to describe that API. Here we look at how variables are used in the address of a request on the REST Client page. We'll also see how this is modeled on the REST API page. Finally, we’ll see how variables are translated to code with the artifact generation capability of the editor.

This blog continues work that is described in the blogs Introduction to the REST Service Editor, Part 1 and Introduction to the REST Service Editor: Generation, Part 2. We recommend reviewing these blogs before proceeding if you’re not familiar with the REST Service Editor.

Our Description of the REST API and Data Types

This blog builds on our description of the REST API and Data Types that we've compiled through the course of several blogs. To get up to speed, here is the REST API we’ve described so far, which is expressed as a tree of paths with their associated requests. The root path is "http://localhost:4545." We'll alter its child path "departments" by adding a child path and a request.
REST API model from previous work

We'll also be using the Department data type that we previously imported.
Data Types from previous work

With that background, let's introduce a variable.

Exploring a REST API Using Variables

On the REST Client page, this version of the REST Service Editor supports variables for the address URI. These variables take the form of {variable-name}. In the exposed REST API that we're exploring, we can request a single department with a URI like "http://localhost:4545/departments/dep2." In this case "dep2" indicates that we'll return the department with an id of 2. Here we'll use a variable for the id: "http://localhost:4545/departments/dep{id}." There's nothing special about the variable name we've used. We could just as easily have written "dep{identifier}." In other words, it doesn't have to match the name of the attribute of the department payload.
Address URI with variable

Now, the curly brace characters are not legal in a URI. On the REST Client page, when we send the request, the variable (including its curly braces) will be replaced by an actual value. However, while typing the variable, you will see that the curly braces cause a validation error—but only when you have only one of the curly braces. The validation recognizes when we have valid variable syntax.
Validation of illegal characters in the Address URI

We'll restore the address to "http://localhost:4545/departments/dep{id}" and click the Send Request button to see how the variable substitution occurs.
Send the request with a variable

We enter the value for the id variable in the Replace Variables dialog. If we had other variables in the address, they would also appear in this dialog.
Replace Variables dialog

Here we can see that the response contains the department with id 2.
Response returning department 2

Now let's import the REST Client information to get the path with this variable into our description.

Importing a Variable

Click on the Import the REST Client Information button to start the process.
Import the REST Client Information button

This brings up the Import REST Client Information dialog. We don't really need to import the data types because we have them from previous work we did on the description. However, to illustrate that we are working with the same data types, we'll leave this checked.
Import REST Client Information dialog

On clicking the Next button, we enter the name of our request "getDepartment." We also see that we've already imported the "http://localhost:4545" and "departments" segments as paths in our tree, so we just need to import the final segment "dep{id}."
Import Request page of dialog

Clicking the Next button again, we confirm that we already have the data types we need. We'll leave "Merge types into the existing matching domain types" checked to use our existing data types. See the Introduction to the REST Service Editor, Part 1 blog for details on how we imported the Department and Employee data types.

A few words are in order about the names of the data types. The Dep data type name comes from the last segment in the address, dep{id} with {id} dropped. The Employees1 data type name comes from the name of the employees array in the response; it is disambiguated from the existing Employees data type by adding 1 to the end. This is also covered in the Introduction to the REST Service Editor, Part 1 blog.

After we click the Finish button, we are taken to the REST API page that shows our new "getDepartment" request. It has been added under the new "dep{id}" path that was added to our tree of paths.
REST API model with new path and request

At this point we'll generate artifacts for our REST API description.

Note: Currently, the REST Service Editor does not support setting the type of the variable in the path segment. So, for example, we can't specify that the {id} in the dep{id} path is an Integer. There is more on this in the generation section below.

Artifact Generation and Variables

After saving, we click the Artifact Generation button to generate Java 8 code for our request.
Artifact Generation button

We won't go through the screens of the Artifact Generation wizard here. Instead, please refer to the Introduction to the REST Service Editor: Generation, Part 2 blog for the details. The code below shows the call on the RESTService class to get the department. Note that an id must be passed to the method.

Note: Since in the REST API model we do not yet support specifying the type of the variable in a path segment, the id parameter in the getDepartment method is generated as an Object. This becomes an issue if this code is to be used in a data control to bind to the UI. If that is the case, subclass the RESTService class (so that future regenerations of code will not replace your change) and overload the getDepartment method to take an Integer type for the id parameter.

package mobile.model.service.localConnection;

import mobile.model.datatype.DepartmentObject;

import mobile.model.restapi.LocalClientContextFactory;
import mobile.model.restapi.PathFactory;

import oracle.eclipse.tools.rest.runtime.client.ClientContext;

/**
 * Service class generated to expose requests defined on the REST Service file:
 * /ViewContent/restServiceEditorDemo.xmi (last modified: 2015-03-11 12:27:11.643)
 */
public class RESTService {
  public DepartmentObject getDepartment(Object id) throws Exception {
    try (ClientContext context = LocalClientContextFactory.INSTANCE.create(ServiceUtil.CONNECTION_NAME)) {
      return PathFactory.INSTANCE.createLocalConnectionPath(context).path(context.getConnectionPath())
        .getDepartmentsPath()
        .getDepidPath(id)
        .invoke()
        .getDepartment();
    }
  }
}

To conclude, here's the class generated for the new path: mobile.model.restapi.localConnection.departments.DepidPath. (For the sake of space, the package and imports are not shown.)

/**
 * Interface generated for the 'dep{id}' path defined on the REST Service file:
 * /ViewContent/restServiceEditorDemo.xmi (last modified: 2015-03-11 12:27:11.643)
 */
@PathValue(value="dep{id}", parameters="id")
public interface DepidPath extends PathObject {
  @RequestAccessor
  public static interface Request {
    @Action(HTTPMethod.GET)
    @Header(name="Accept", value="application/json")
    @Output(representations=@Representation(type=DepartmentObject.class))
    DepartmentObject getDepartment() throws RequestException;
  }
  
  @Override
  DepartmentsPath parent();

  /**
   * @return creates a new object that exposes the requests
   *         defined for this path
   */
  Request invoke();
}

Tuesday Apr 14, 2015

Working with secure REST Services: Basic Authentication

Working with secure REST Services: Basic Authentication

By Preston Appel

The REST Service Editor's REST Client page allows users to experiment with existing REST APIs. The blog Introduction to the REST Service Editor, Part 1 provides an example of sending a simple GET request to a server and storing a description of the request and of the received payload. That example did not require any authentication. This blog expands on that case by describing how to set up HTTP authentication to explore REST APIs that require this type of authentication. A later blog will cover OAuth 2 authentication.

Let's look at this case of a resource that requires authentication. If we enter the address of this resource and click the Send Request button, we receive back a response with status 401 Unauthorized. Note that throughout this blog, I've obscured the address URI since it is not publically available.
REST Service Editor's REST Client page showing Unauthorized response

At this point, the user will need to look up what authentication is required for the REST API they are accessing. Once this information is known, authentication is set up by clicking the Set Authentication Information button. The blue circle on the button indicates that no authentication information has been entered yet.
REST Client page's Set Authentication Information button

Clicking the button pops up the Authentication Information wizard and we select HTTP (basic, digest, universal) for our type of authentication.
Authentication Information dialog's authentication type page

Clicking the Next button, we can now enter the username and password.
Authentication Information dialog's HTTP page for username and password

Now, when we look at the Set Authentication Information button, we don't see the blue circle, indicating that we have entered the authentication information. The tooltip shows the type of authentication that was set.
Set Authentication Information button showing authentication entered

One point of clarification: the fact that the blue circle has disappeared from the Set Authentication Information button does not indicate that the authentication information is valid, only that the required fields for the particular authentication type have been entered.

The REST Service Editor fully supports undo and redo, so it is easy to reverse what we've just done. We can also click the Set Authentication Information button again and select None for the authentication type (and then click the Finish button).

Now when we click the Send Request button, we see that our request was properly validated and we now have a valid response.
REST Client page showing successfully authorized response

Remember that the REST Client page is not part of the persistent state of the REST Service Editor, so the authentication information is not saved. This authentication mechanism is provided so that a user can explore a REST API that requires authentication (and then optionally store a description of the request and of the received payload.)

Friday Apr 10, 2015

OEPE 12.1.3.5 brings new tools for Storage Cloud Service and MAF 2.1.1

Oracle Enterprise Pack for Eclipse (OEPE) 12.1.3.5 is now available from the Oracle Technology Network and includes new tools for Oracle Cloud services and Oracle MAF.

New Tools for Oracle Storage Cloud Service


Oracle Storage Cloud Service is a secure, elastic, and on-demand cloud based storage solution. Customers with Storage Cloud Service accounts will be able to interact with their service instances from within OEPE 12.1.3.5 through the Oracle Cloud view. The Storage Cloud Service design time tools support a number of actions including:
  • Create new storage containers.
  • Store and retrieve objects in the storage containers.
  • Rename the storage object and manifest object.
  • Update the container and object metadata.
  • Support transparent encryption and define access controls to containers.
  • View the properties of any container and object.

Support for Oracle Mobile Application Framework 2.1.1


OEPE MAF design-time and runtime tools have been updated to support Oracle MAF 2.1.1. All existing mobile development tools have been updated to support the new Oracle MAF release while still continuing to support past Oracle MAF versions.

New MAF 2.1.1 runtime features include:

Local Notification support - MAF 2.1.1 provides support for scheduling, cancelling and receiving local notifications via the Device Feature Data Control, as well as Java and JavaScript APIs.

Support for completely disabling logging -  MAF 2.1.1 provides support for completely disabling all logging from a MAF app. To force this behavior, add the following to the app's adf-config.xml.

Monday Mar 09, 2015

Oracle at EclipseCon 2015

Its beginning to look a lot like EclipseCon, everywhere you go.

 EclipseCon 2015 is back in the Bay Area and, once again,  Oracle is a Gold Sponsor.

 If you are attending EclipseCon this year, come by the Oracle Booth #18 and say "Hi!". Throughout the week, you will have the opportunity to see demos and chat with team members from Mobile Application Framework, Java, OEPE, Oracle Cloud, and Hudson.

Don't forget to checkout our sessions this week as well


 Date  Title  Speaker  Location
March 10 2015 @ 3:00-3:35PM
iOS Development with Eclipse and Java - Yes it is possible!
Shay Shmeltzer
Sandpebble AB
March 11 2015 @ 7:30-8:30PM
Eclipse and Cloud Hosted Development Platform
Greg Stachnick
Sandpebble AB
March 12 2015 @ 9:00-10:00AM
Keynote: Java 9 and Beyond
Mark Reinhold
Grand Peninsula DEFG

Friday Jan 10, 2014

Java 8 at EclipseCon 2014 - Oracle is Gold Sponsor


Oracle is a gold sponsor at the 2014 EclipseCon for North America, March 17-20, San Francisco!

Oracle Enterprise Pack for Eclipse (OEPE) will of course be representing. If you're going, you should definitely checkout our new mobile development capabilities.

Java 8 is also a huge deal as it planned to be GA around this time.  If you're interested, there is a dedicated track covering Java 8.  The schedule is still in the works, but you can check it out here.

Thursday Jul 11, 2013

New Oracle Enterprise Pack for Eclipse 12c (12.1.2) is Now Available!

In tandem with the new Oracle Cloud Application Foundation release today, OEPE 12.1.2 is perfectly synced with the latest release of Oracle WebLogic 12.1.2 and Oracle Coherence 12.1.2.

New and unique support for ease of design, development, configuration and deployment into Oracle Coherence:

  • Rich Deployment Descriptor editors including form based wizards and design time validators
  • Context sensitive help links directly into Coherence documentation
  • New tools for Coherence Managed Servers including project wizards for Coherence Grid Archive (GAR)
  • Packaging and deployment directly to WebLogic Server or Coherence Servers
  • Ability to deploy a GAR directly, embed as a library in other applications, or deploy as a shared library

Newly update WebLogic Server Adapter which provides unmatched access and ease of configuration for the Oracle WebLogic Server including:

  • Run/Deploy/Debug artifacts both locally and remotely
  • Detailed support for management of shared libraries
  • Ability to utilize FastSwap, which provides the ability to reload certain classes/components of an already deployed application
  • Direct access to management of WebLogic SCA tooling
  • Ability to configure and manage WLST (WebLogic Scripting Tool) artifacts
  • Tie in to the WebLogic MBean Browser

And don’t forget, this is all on top of the recent OEPE update for Java EE7!

Sign up for the official Cloud Application Foundation launch here

More info and download for Oracle Enterprise Pack for Eclipse is here

Friday Mar 29, 2013

Back from a Succcessful EclipseCon Boston

Good to be back home from a successful EclipseCon Boston. (Duke approved!) We met some good folks, learned of some interesting projects/technologies and quaffed a few delicious local beers.  After a tour down Salem street in the evening, I can definitely see why locals (and tourists), love Boston. (I still wish we could have made it into Neptune Oyster, but the wait was measured in hours - maybe next time.)   I don't follow hockey, but Bruin fans, tough loss to Montreal.  My Canadian co-workers were cheering (quietly) at the bar... as we were surrounded by Bruin fans.  And well, you know - polite and all that.  

EclipseCon 2014 - perhaps next year, it will be San Francisco?  Cheers.

Tuesday Jan 22, 2013

Join Us at EclipseCon Boston 2013

Oracle is a Gold sponsor for EclipseCon Boston 2013 March 25-28.  

If you're planning to go, stop by our booth and join our sessions. We'll have a number of sessions and events including:

  • Hudson as an effective Agile ALM Tool (Winston Prakash)
  • Large-Scale Adoption of Hudson (Jim Clark)
  • Dali Tooling for Dynamic Persistence and NoSQL (Neil Hauge)
  • EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5  (Shaun Smith)
  • A couple of presentations covering Oracle Enterprise Pack for Eclipse (Greg Stachnick)
  • Our BoF event: Oracle & Eclipse,Djava Unchained - "the 'D' is silent"

 

Tuesday Nov 06, 2012

We'll be at QCon San Francisco!

Oracle Technology Network is a Platinum sponsor at QCon San Francisco. Don’t miss these great developer focused sessions:

Shay Shmeltzer - How we simplified Web, Mobile and Cloud development for our own developers? - the Oracle Story

Over the past several years, Oracle has beendeveloping a new set of enterprise applications in what is probably one of the
largest Java based development project in the world. How do you take 3000 developers and make them productive? How do you insure the delivery of cutting edge UIs for both Mobile and Web channels? How do you enable Cloud based
development and deployment? Come and learn how we did it at Oracle, and see how the same technologies and methodologies can apply to your development efforts.

Dan Smith - Project Lambda in Java 8

Java SE 8 will include major enhancements to the Java Programming Language and its core libraries.  This suite of new features, known as Project Lambda in the OpenJDK community, includes lambda expressions, default methods, and parallel collections (and much more!).  The result will be a next-generation Java programming experience with more flexibility and better abstractions.   This talk will introduce the new Java features and offer a behind-the-scenes view of how they evolved and why they work the way that they do.

Arun Gupta - JSR 356: Building HTML5 WebSocket Applications in Java

The family of HTML5 technologies has pushed the pendulum away from rich client technologies and toward ever-more-capable Web clients running on today’s browsers. In particular, WebSocket brings new opportunities for efficient peer-to-peer communication, providing the basis for a new generation of interactive and “live” Web applications. This session examines the efforts under way to support WebSocket in the Java programming model, from its base-level integration in the Java Servlet and Java EE containers to a new, easy-to-use API and toolset that are destined to become part of the standard Java platform.

The complete conference schedule is here: http://qconsf.com/sf2012/schedule/wednesday.jsp

But wait, there’s more! At the Oracle booth, we’ll also be covering:

  • Oracle ADF Mobile
  • Oracle Developer Cloud Service
  • Oracle ADF Essentials
  • NetBeans Project Easel
Hope to see you there! 

Thursday Sep 06, 2012

OEPE and Oracle ADF at Oracle OpenWorld!

OEPE's support for Oracle ADF is really starting to cook!  

If you're going to Oracle OpenWorld 2012, check out this list that focuses on Oracle ADF.  It's long, but you can readily search for "Eclipse" to find the OEPE related sessions.  

Also here: https://oracleus.activeevents.com/connect/focusPDF.do?focusID=21149

Thursday Mar 15, 2012

Oracle is a Gold Sponsor at EclipseCon 2012, Reston, VA, March 26-29

Come see the latest news for Oracle Enterprise Pack for Eclipse (OEPE) and more!

We will also have session covering:

Stop by the Oracle booth and check out the latest on: OEPE, EclipseLink, Hudson Project and Java Mission Control (formerly JRockit) and of course, get a free t-shirt and other tchotchkes. Come early, supplies limited.

The official schedule is here: http://www.eclipsecon.org/2012/program/session-schedule

About

The focus of this blog is on Oracle Enterprise Pack for Eclipse (OEPE) and Oracle's involvement in the Eclipse community. Visit us for information on releases, tips and tricks related to Eclipse, and general Eclipse community information.

Search

Categories
Archives
« August 2015
SunMonTueWedThuFriSat
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
Today