Skip to main content

Home/ Java Development/ Group items tagged client

Rss Feed Group items tagged

anonymous

Getting Started with RequestFactory - Google Web Toolkit - Google Code - 0 views

  • Entity Proxies
    • anonymous
       
      Proxy type (on the Client) vs Entity type (on the server)
  • proxy types
  • entity types
  • ...147 more annotations...
  • methods that return service stubs
  • one RequestFactory interface for your application
  • employeeRequest();
  • @Service(Employee.class)
  • extends RequestContext
  • extends RequestFactory
  • service stub
  • RequestFactory service stubs
  • must extend RequestContext
  • The methods in a service stub do not return entities directly
  • return subclasses of com.google.gwt.requestfactory.shared.Request.
  • This allows the methods on the interface to be invoked asynchronously with
  • Request.fire()
  • fire(    new Receiver()
  • onSuccess
  • callers pass an AsyncCallback that implements onSuccess()
  • takes a Receiver which must implement onSuccess()
  • Receiver is an abstract class having a default implementation of onFailure()
  • you can extend Receiver and override onFailure()
  • onViolation()
  • any constraint violations on the server
  • The Request type returned from each method
  • parameterized with the return type of the service method.
  • Methods that have no return value should return type Request<Void>
  • BigDecimal, BigInteger, Boolean, Byte, Enum, Character, Date, Double, Float, Integer, Long, Short, String, Void
  • subclass of EntityProxy
  • List<T> or Set<T>
  • primitive types are not supported
  • methods that operate on an entity itself
  • like persist() and remove()
  • return objects of type InstanceRequest rather than Reques
  • Server Implementations
  • methods defined in an
  • entity's service interface
  • implemented in the class named
  • @Service annotation
  • in these examples, is the entity class
  • service implementations do not directly implement the RequestContext interface
  • server-side implementations use the domain entity types
  • @Entity
  • EntityManager
  • createQuery
  • getResultList();
  • entityManager()
  • createEntityManager()
  • em.persist(this);
  • em.remove(attached
  • em.close();
  • defined in the service's
  • RequestContext interface
  • even though the implementation does not formally implement the interface in Java
  • name and argument list for each method
  • same on client and server
  • Client side methods
  • return Request<T>
  • only T on the server
  • EntityProxy types become the domain entity type on the server
  • Methods that return a Request object in the client interface are implemented as static methods on the entity
  • Methods that operate on a single instance of an entity, like persist() and remove(),
  • eturn an
  • InstanceRequest
  • in the client interface
  • Instance methods do not pass the instance directly, but rather via the
  • using()
  • instance methods must be implemented as non-static methods in the entity type
  • Four special methods are required on all entities
  • as they are used by the RequestFactory servlet:
  • constructor
  • findEntity
  • An entity's getId()
  • is typically auto-generated by the persistence engine (JDO, JPA, Objectify, etc.)
  • "find by ID" method has a special naming convention
  • find()
  • "find" plus the type's simple name
  • On the server
  • getVersion() method is used by RequestFactory to infer if an entity has changed
  • backing store (JDO, JPA, etc.) is responsible for updating the version each time the object is persisted,
  • RequestFactoryServlet sends an UPDATE
  • if an entity changes as
  • Second, the client maintains a version cache of recently seen entities
  • Whenever it sees an entity whose version has changed, it fires
  • UPDATE events on the event bus
  • so that listeners can update the view
  • GWT.create
  • and initialize it with your application's EventBus
  • GWT.create
  • requestFactory.initialize
  • create a new entity on the client
  • EmployeeRequest request
  • EmployeeProxy newEmployee
  • All client-side code should use the EmployeeProxy
  • not the Employee entity itself
  • unlike GWT-RPC, where the same concrete type is used on both client and server
  • RequestFactory
  • designed to be used with an ORM layer like JDO or JPA
  • on the server
  • to build data-oriented (CRUD) apps with an ORM-like interface
  • on the client
  • easy to implement a data access layer
  • structure your server-side code in a data-centric way
  • GWT-RPC, which is service-oriented
  • On the client side, RequestFactory keeps track of objects that have been modified and sends only changes
  • lightweight network payloads
  • solid foundation for automatic batching and caching of requests in the future
  • RequestFactoryServlet
  • RequestFactory uses its own servlet
  • own protocol
  • not designed for general purpose services like GWT-RPC
  • implements its
  • It is designed specifically for implementing a persistence layer on both client and server.
  • In persistence frameworks like JDO and JPA, entities are annotated with
  • client-side representation of an entity
  • known as a
  • DTO (Data Transfer Object)
  • hook used to indicate that an object can be managed by RequestFactory
  • RequestFactory
  • EntityProxy interface
  • automatically populates bean-style properties between entities on the server and the corresponding EntityProxy on the client,
  • send only changes ("deltas") to the server
  • extends EntityProxy
  • interface
  • @ProxyFor
  • reference the server-side entity being represented
  • It is not necessary to represent every property and method from the server-side entity in the EntityProxy
  • EntityProxyId returned by this method is used throughout RequestFactory-related classes
  • while getId() is shown in this example, most client code will want to refer to
  • EntityProxy.stableId() i
  • to represent any type
  • is not required to expose an ID and version
  • often used to represent embedded object types within entities
  • @Embedded
  • Address
  • Address type
  • POJO with no persistence annotations
  • Address is represented as a ValueProxy
  • extends ValueProxy
  • interface
  • extends EntityProxy
  • interface
  • AddressProxy
  • AddressProxy
  • ValueProxy can be used to pass any type to and from the server
  • RequestFactory
  • interface between your client and server code
  • RequestContext interface
  • The server-side service
  • must implement each method
Hendy Irawan

Scout/Overview - Eclipsepedia - 0 views

  •  
    The goal of the Eclipse Scout project is making it easy to build distributed enterprise applications based on the Eclipse platform. It consists of a runtime framework providing transparent service communication between the client and backend part and is shipped with a rich set of common user interface components. The user interface is not built for a particular rendering technology but it encapsulates the core functionality into a headless model. GUI factories are available for rendering the client model into a particular target UI platform. SWT and Swing are supported out of the box and an AJAX GUI factory could be easily added. Developing Scout applications is supported by the Scout SDK, a plug-in set built on top of Eclipse PDE and Eclipse JDT. The Scout SDK works directly on the bare Java resources and assists the development task by providing an augmented view on the underlying Java code. Additionally, it comes with a rich set of wizards and operations for modifying the Scout application project just by editing the underlying Java code. There is no meta-data required. Hence a developer can switch between editing resources using Eclipse's standard editors and leveraging the features of Scout SDK at any point in time. Eclipse Scout can be used to create multi-tier client/server applications, standalone client applications or OSGi-based server applications. Basically, there are three main advantages when choosing Scout as your framework for building such applications. First, the Scout runtime is service oriented by design. Almost every functionality is provided as an OSGi service. Every OSGi bundle may make use of them. Second, Scout provides a rich set of UI elements being uncoupled from a particular GUI technology. And third, building distributed client/server applications is as easy as if both parts would run within the same local JVM.
Hendy Irawan

Chapter 6. HTTP Caching - 0 views

  •  
    HttpClient Cache provides an HTTP/1.1-compliant caching layer to be used with HttpClient--the Java equivalent of a browser cache. The implementation follows the Decorator design pattern, where the CachingHttpClient class is a drop-in replacement for a DefaultHttpClient; requests that can be satisfied entirely from the cache will not result in actual origin requests. Stale cache entries are automatically validated with the origin where possible, using conditional GETs and the If-Modified-Since and/or If-None-Match request headers. HTTP/1.1 caching in general is designed to be semantically transparent; that is, a cache should not change the meaning of the request-response exchange between client and server. As such, it should be safe to drop a CachingHttpClient into an existing compliant client-server relationship. Although the caching module is part of the client from an HTTP protocol point of view, the implementation aims to be compatible with the requirements placed on a transparent caching proxy. Finally, CachingHttpClient includes support the Cache-Control extensions specified by RFC 5861 (stale-if-error and stale-while-revalidate).
anonymous

Organize Projects - Google Web Toolkit - Google Code - 0 views

  • com.google.gwt.gears.Gears
    • anonymous
       
      Gears.gwt.xml does not define andy entry point. It can only be inherits
  • two ways to approach loading them
  • nclude each module with a separate <script> tag
  • ...118 more annotations...
  • Create a top level module XML definition
  • Compile the top level module
  • the second approach will lead to much better end-user performance
  • each module has to be downloaded separately by the end-user's browser
  • each module will contain redundant copies of GWT library
  • conflict with each other during event handling
  • Linkers are divided into three categories, PRE, POST, and PRIMARY
  • one primary linker is run for a compilation
  • everal linkers are provided by Core.gwt.xml, which is automatically inherited by User.gwt.xml.
  • monolithic JavaScript file.
  • cross-site deployment model.
  • standard iframe-based
  • <add-linker name="xs" />
  • The GWT compiler
  • packaging its output with the Linker subsystem
  • responsible for the final packaging of the JavaScript code
  • providing a pluggable bootstrap mechanism
  • re-use an existing Java API for a GWT project,
  • <super-source>
  • "re-root" a source path
  • to emulate part of the JRE not implemented by GWT
  • tells the compiler to add all subfolders of com/example/myproject/jre/
  • to the source path
  • com/google/myproject/gwt/jre/java/util/UUID.java
  • most commonly used elements in the module XML file.
  • <inherits name="
  • herits all the settings from the specified module
  • <entry-point class=
  • Entry points are all compiled into a single codebase
  • when the onModuleLoad() of your first entry point finishes, the next entry point is called immediately.
  • Any number of entry-point classes can be added
  • <source path="
  • resources get copied into the output directory during a GWT compile.
  • client subpackage is implicitly added to the source path
  • <public path="path" />
  • treated as a publicly-accessible resource.
  • resources get copied into the output directory
  • the public subpackage is implicitly added to the public
  • <servlet
  • For RPC, this element loads a servlet class
  • mounted at the specified URL path
  • path=
    • anonymous
       
      monting location
  • class="
    • anonymous
       
      Which servlet class
  • URL path should be absolute
  • @RemoteServiceRelativePath attribute
  • you must configure a WEB-INF/web.xml in your war directory to load any servlets needed.
  • n development mode,
  • <script src="
  • external JavaScrip
  • <stylesheet src="
  • Extends the set of values
  • for an existing client property
  • <replace-with-class>
  • <generate-with-class>
  • <when-property-is
  • three different types of predicates are
  • <when-type-assignable
  • <when-type-is
  • <all>
  • <any>
  • <none>
  • GWT libraries are organized into modules
  • you want to inherit at least the User module
  • contains all the core GWT functionality
  • including the EntryPoint class
  • widgets and panels
  • History feature
  • Internationalization
  • DOM programming, and more
  • Low-level HTTP
  • Use the following syntax to cause an external JavaScript file to be loaded
  • before your module entry point is called.
  • as if you had included it explicitly using the HTML <script
  • loaded before your onModuleLoad() is called.
  • all included scripts will be loaded when your application starts, in the order in which they are declared.
  • associate external CSS files with your module
  • GWT.getModuleBaseURL() + "foo.css" in client code
  • module's public path
  • useful when
  • inheritance makes resource inclusion particularly convenient.
  • If you wish to create a reusable library that relies upon particular stylesheets or JavaScript files, you can be sure that clients
  • see the documentation for FileSet for a general overview
  • <public>
  • <super-source>
  • <source>
  • includes
  • excludes
  • defaultexcludes
  • casesensitive
  • By default, the patterns listed here are excluded.
  • defaultexcludes is true
  • <script src='myApp/myApp.nocache.js'></script>
  • <script> tags always block evaluation of the page
  • <img> tags do not block page evaluation
  • two simultaneous connections
  • The body.onload() event will only fire once all external resources are fetched, including images and frames.
  • GWT selection script
  • like a normal script tag
  • but the compiled script will be fetched asynchronously.
  • Parsing is blocked until externalScriptZero.js is done fetching and evaluating.
  • myApp/myApp.nocache.js completes
  • the compiled scrip
  • (<hashname>.cache.html
  • begins fetching in a hidden IFRAME (this is non-blocking).
  • onModuleLoad() is not called yet, as we're still waiting on externalScriptOne.js
  • body.onload() fires
  • onload='alert("w00t!")
    • anonymous
       
      is the last line executed
  • put the GWT selection script as early as possible
  • because it won't block any other script requests
  • <img> tags are not guaranteed to be done loading when onModuleLoad() is called
  • <script> tags are guaranteed to be done loading when onModuleLoad() is called
  • multiple EntryPoints
  • will all be called in sequence as soon as that module (and the outer document) is ready
  • multiple GWT modules within the same page
  • each module's EntryPoint will be called as soon as both that module and the outer document is ready
  • EntryPoints are not guaranteed to fire at the same time
  • or in the same order
  • in which their selection scripts were specified in the host page
Hendy Irawan

HttpComponents - HttpComponents Overview - 0 views

  •  
    HttpClient is a HTTP/1.1 compliant HTTP agent implementation based on HttpCore. It also provides reusable components for client-side authentication, HTTP state management, and HTTP connection management. HttpComponents Client is a successor of and replacement for Commons HttpClient 3.x. Users of Commons HttpClient are strongly encouraged to upgrade.
Mark Clarke

Rich Client Platforms Compared | Your Java and Linux Experts! - 0 views

  •  
    Recently I decided to get up to speed on at least one rich client platform for a project we had. Over the years I had come across references to Eclipses RCP and Netbeans RCP so I started with those two.
Hendy Irawan

smart-util - Utility tools for wide usage - Google Project Hosting - 0 views

  •  
    This project will mainly contain utility stuff for diverse purpose. Initially it will primarily comprise of Spring Utilities which will perform the following purposes: Load a single resource properties file from pre-configured locations with priority based override. Application context registrar to make the context available to other interested components. Use Cacheable Jersey Client Use a generic RESTful WS Client OpenSearchDescriptor JAX-RS Provider based on XOM based DOM I/O Useful utilities for Atom Syndication Feed, such as pagination over entities, retrieval of resource to certain depth, etc.
Hendy Irawan

Apache Commons Daemon : Java based daemons or services - 0 views

  •  
    "Since 1994, the Java programming language evolved and became a valid tool to develop reliable and performant server applications as opposed to just applets and client applications. The major disadvantage of the Java platform is that still today the only portable way to start a Java application relies on a single point of entry: the public static void main(String[]) method. Having a single-point of entry is a valid solution for client applications, where interactively a user can command to the application to quit (which can terminate the Virtual Machine process at calling the System.exit(int) method), but in those cases where the application is not interactive (server applications) there is currently no portable way to notify the Virtual Machine of its imminent shutdown. A server application written in Java might have to perform several tasks before being able to shutdown the Virtual Machine process. For example in the case of a Servlet container, before the VM process is shut down, sessions might need to be serialized to disk, and web applications need to be destroyed. One common solution to this problem is to create (for example) a ServerSocket and wait for a particular message to be issued. When the message is received, all operations required to shut down the server applications are performed and at the end the System.exit method is called to terminate the Virtual Machine process. This method however, has several disadvantages and risks: In case of a system-wide shutdown, the Virtual Machine process may be shut down directly by the operating system without notifying the running server application. If an attacker finds out the shutdown message to send to the server and discovers a way to send this message, he can easily interrupt the server's operation, bypassing all the security restrictions implemented in the operating system. Most multi-user operating systems already have a way in which server applications are started and stopped. Under Unix based
Hendy Irawan

Arquillian - JBoss Community - 0 views

  •  
    Arquillian enables you to test your business logic in a remote or embedded container. Alternatively, it can deploy an archive to the container so the test can interact as a remote client. The mission of the Arquillian project is to provide a simple test harness that abstracts away all container lifecycle and deployment from the test logic so developers can easily produce a broad range of integration tests for their enterprise Java applications. Arquillian is part of the JBoss Testing initiative, an umbrella project focused on providing a comprehensive testing tool set for application developers. Arquillian can either execute a test case inside the container, in which case the test class is deployed by Arquillian along with the code under test, or hold back the test class so it can act as a remote client to the deployed code. All the developer has to do is write the test logic. In short... Arquillian makes integration testing a breeze!
Hendy Irawan

Apache Chemistry - OpenCMIS Overview - 0 views

  •  
    "OpenCMIS is a collection of Java libraries, frameworks and tools around the CMIS (Content Management Interoperability Services) specification. The goal of OpenCMIS is to make CMIS simple for Java client and server developers. It hides the binding details and provides APIs and SPIs on different abstraction levels. It also includes test tools for content repository developers and client application developers."
Hendy Irawan

Testing Plug-ins with Fragments « RCP Quickstart: Learn the Eclipse Rich Clie... - 0 views

  •  
    As Eclipse plug-in and Rich Client Platform developers, we face unique challenges in how we structure and execute our unit tests. In this article, I suggest an approach to unit testing based on Eclipse fragments that can help us overcome these challenges. If you find yourself frustrated with your current plug-in testing options, read on! But before going into detail on a fragment based solution, let's examine the current approaches and the pros and cons associated with each. The first approach is the one most of us start with as we learn the ropes of plug-in development: placing all code in a single plug-in.
Rinav G

Java BluePrints : Model-View-Controller- J2EE Patterns - 1 views

  •  
    By applying the Model-View-Controller (MVC) architecture to a JavaTM 2 Platform, Enterprise Edition (J2EETM) application, you separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain.
  •  
    Java BluePrints Model-View-Controller
Hendy Irawan

SQuirreL SQL Client Home Page - 0 views

  •  
    * Enhancements o New plugins provide enhanced capabilities: + Hibernate Plugin: # allows to generate SQL statements from Hibernate HQL statements # shows object tree of mapped objec
Hendy Irawan

Marc Logemann Blog: Ext GWT or SmartGWT or Vaadin - 0 views

  •  
    From a technical standpoint Ext GWT and SmartGWT are quite equal apart from the fact that Smart has more to offer on the server side. Vaadin with its complete different apprach (not from the programming style but from runtime behavior) needs to be compared in a different fashion. Things like GUI responsiveness and overall performance must be carefully checked. But on the pro side you have a very small js client with vaadin which results in fast startup in the browser. On the other hand, our product is a business product and we are planing to rewrite the AdminConsole. This is something that will be used in intranets in 95% of the time. It doesnt make much of a differnece if you load 100k or 1Mb from inside the LAN.
Hendy Irawan

Apache CXF -- Index - 0 views

  •  
    Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI. CXF includes a broad feature set, but it is primarily focused on the following areas: Web Services Standards Support: CXF supports a variety of web service standards including SOAP, the WS-I Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy, WS-SecureConverstation, and WS-Trust (partial). Frontends: CXF supports a variety of "frontend" programming models. CXF implements the JAX-WS APIs (TCK compliant). CXF JAX-WS support includes some extensions to the standard that make it significantly easier to use, compared to the reference implementation: It will automatically generate code for request and response bean classes, and does not require a WSDL for simple cases. It also includes a "simple frontend" which allows creation of clients and endpoints without annotations. CXF supports both contract first development with WSDL and code first development starting from Java. For REST, CXF also supports a JAX-RS (TCK compliant) frontend. Ease of use: CXF is designed to be intuitive and easy to use. There are simple APIs to quickly build code-first services, Maven plug-ins to make tooling integration easy, JAX-WS API support, Spring 2.x XML support to make configuration a snap, and much more. Binary and Legacy Protocol Support: CXF has been designed to provide a pluggable architecture that supports not only XML but also non-XML type bindings, such as JSON and CORBA, in combination with any type of transport. To get started using CXF, check out the downloads, the user's guide, or the mailing lists to get more information!
1 - 20 of 34 Next ›
Showing 20 items per page