Studiere im Artikel http://java.sun.com/security/seccodeguide.html die Guidelines 0 bis 5.
Gib für alle einzelnen Tipps ein alternatives Beispiel. (Aufgabe für 2 Wochen.)
Studiere im Artikel http://java.sun.com/security/seccodeguide.html die Guidelines 0 bis 5.
Gib für alle einzelnen Tipps ein alternatives Beispiel. (Aufgabe für 2 Wochen.)
Ant 1.7 gibt’s ja schon gefühlte ewige Zeit und bei Ant, dem make des 2.0 Zeitalters, steht ein Update ein. Nichts großes, sondern eher Detailverbesserungen:
Apache Ant 1.8.0RC1 is now available for download .
- a new top level element extension-point allows build files to be extended with custom targets more easily
- if and unless attributes will be evaluated according to the values of the properties entered if these properties evaluate to true, false, on, off
- Ant now requires Java 1.4 or later
- new task include provides an alternative to <import> that should be preferred when you don’t want to override any targets
- numerous bug fixes and improvements as documented in Bugzilla and in WHATSNEW
While in open source projects a final release date strongly depends on the free time of the volunteers/committers, the final release is expected one to two months maximum after this RC. So Ant 1.8.0 is expected between mid February and mid March 2010.
Im Quellcode auf der Seite gibt es einige Fehler durch ein falsch verarbeitet <. So steht etwa
public interface Display extends HasValue> {
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
void setData(List data);
int getClickedRow(ClickEvent event);
List getSelectedRows();
Widget asWidget();
}
statt
public interface Display {
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
void setData(List<String> data);
int getClickedRow(ClickEvent event);
List<Integer> getSelectedRows();
Widget asWidget();
}

Von http://www.netbeans.com/ gibt es eine neue Version, die insbesondere im Bereich des neuen Java EE 6 punktet. Die Neuigkeiten führt http://wiki.netbeans.org/NewAndNoteworthyNB68 auf.
Kurz nach 1.2.8 veröffentlich Google nun die Google App Engine 1.3. Von http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html:
Store and Serve – Files can be uploaded and stored as blobs, to be served later in response to user requests. Developers can build their own organizational structures and access controls on top of blobs.
Pricing and Quotas – We include blob storage and transfer under the same datastore pricing and quotas you’re already familiar with. For more information, see the App Engine quotas page.
The new Blobstore API is now available in both App Engine SDKs for local development. At this time it can only be used by applications that have enabled billing. There’s a lot more information about the API and how it works in the Blobstore documentation (Python, Java) so please check that out and post any questions to the groups.
This release also includes some performance tweaks to the Java runtime. For example, we’ve sped up many reflective operations by up to 10x resulting in improvements on the order of 10% for applications based on dynamic languages. As always, there are a few other minor changes and bug fixes in this release, so make sure to read our release notes (Python, Java).
Lies die Einträge
und skizziere kurz die Unterschiede zwischen den beiden Gui-Pattern MVC und MVP.
Skizziert http://www.c-sharpcorner.com/UploadFile/OVZh/Introducing_MVCSharp_framework03062008064516AM/Images/Untitled-2.gif den Unterschied? Was hat das allen mit Testen zu tun?
Das MVP ist weiterhin gültig, aber der Name hat sich etwas verändert. Erkläre das am Beispiel des Diagramms http://geekswithblogs.net/dchristiansen/archive/2007/12/07/microsoft-patterns-and-practices-team-release-the-model-view-presenter.aspx.
Schreibe ein Beispielprogramm.
Die Webseite http://www.jetbrains.com/idea/whatsnew/index.htm listet die wichtigsten Neuerungen auf:
Unter http://www.theserverside.com/news/thread.tss?thread_id=58858 ist heute zu lesen:
Sun has released the Java Platform Enterprise Edition 6and the GlassFish Enterprise Server v3.
Java EE 6 includes new specifications that add new functionality to the platform, like dependency injection, Bean Valiation and RESTful services, as well as improvements to the existing specifications including very significant improvements to Java Server Faces, Enterprise Java Beans, JPA, Servlets and Java Connectors. Java EE 6 also includes a Web Profile. Additional information on Java EE 6 is available from the WebSite and this Overview Article.
The GlassFish v3 Server implements the Java EE 6 specification. GlassFish v3 is Open Source and fully modular, built on an OSGi kernel and the Grizzly NIO infrastructure. GlassFish v3 is suitable for a wide range of applications, from development to deployments. The long list of additional GFv3 features includes embeddability, very fast startup, redeploy-on-save, session state persistence, dynamic language support, management and monitoring facilities, graphical, CLI and REST command interfaces, and an update center. GlassFish v3 is supported by NetBeans, Eclipse and IntelliJ IDEA.
Additional information on GlassFish v3 Server is available from the Product Page and our main Team Announcement. GFv3 can be downloaded here; the full version is 70MB and the Web Profile 50MB.
Von der http://code.google.com/p/googleappengine/ gibt’s eine neue Version. Die Neuerungen in kürze:
- Support for JAXB. JAXB is included in JDK 1.6 (and App Engine’s production servers). If you’re using JDK 1.5 with your local dev_appserver, you will need to include the JAXB libraries with your application to use it.
- New support for application pre-compilation to reduce the length of loading requests. To enable pre-compilation on your application, add this flag to your appengine-web.xml:
- <precompilation-enabled>true</precompilation-enabled>
- If you have trouble deploying your application, you should remove this flag or set it to false.
- Added Quota API (com.google.appengine.api.quota) to match Python
- Low-level Memcache API now supports incrementAll()
- HTTPResponse object now has getFinalUrl() method for 302 redirects.
- Java Dev Appserver now automatically executes tasks. If you prefer the old behavior where tasks do not automatically execute you can use the –jvm_flag=-Dtask_queue.disable_auto_task_execution flag when starting the server.
- Additional file extensions permitted when sending mail.
- Fixed issue with Java mail handler not processing multipart messages correctly
- Fixed agent code included in appengine-local-runtime.jar results in RuntimeException
- Fixed issue with sort orders defined on properties that allow multiple values
- Fixed problem with dropped query strings after requiring log-in
- Removed limitation preventing multiple parameters with the same name
- Fixed issue with local datastore incorrectly sorting results of ancestor queries
Vom Quellcode-Checker Checkstyle gibt es eine neue Version 5. Die Änderungen beschreiben die Seite http://checkstyle.sourceforge.net/releasenotes.html.
The following checks were added since release 4.4:
- AnnotationUseStyle
- MissingDeprecated
- MissingOverride
- PackageAnnotation
- SuppressWarnings
- EqualsAvoidNull
- NoClone
- NoFinalizer
- AvoidStaticImport
- JavadocPackage
- ClassTypeParameterName
- MethodTypeParameterName
- RegexpMultiline
- RegexpSingleline
- RegexpSinglelineJava
- OuterTypeNumber
- FileTabCharacter
- GenericWhitespace
Die Infos gibt es unter http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html. Die Änderungen halten sich in Grenzen:
Summary of Changes in version 4.8
Categories
From a given set of test classes, the
Categoriesrunner runs only the classes and methods that are annotated with either the category given with the@IncludeCategoryannotation, or a subtype of that category. Either classes or interfaces can be used as categories. Subtyping works, so if you say@IncludeCategory(SuperClass.class), a test marked@Category({SubClass.class})will be run.You can also exclude categories by using the
@ExcludeCategoryannotationExample:
public interface FastTests { /* category marker */ }
public interface SlowTests { /* category marker */ }
public static class A {
@Test
public void a() {
fail();
}
@Category(SlowTests.class)
@Test
public void b() {
}
}
@Category({SlowTests.class, FastTests.class})
public static class B {
@Test
public void c() {
}
}
@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public static class SlowTestSuite {
// Will run A.b and B.c, but not A.a
}
@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@ExcludeCategory(FastTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public static class SlowTestSuite {
// Will run A.b, but not A.a or B.c
}Bug fixes
- github#16: thread safety of Result counting
Die Version 2.9 verbesser der Aussehen insbesondere bei den neuen Java 6 Updates. Infos gibt http://weblogs.java.net/blog/wzberger/archive/2009/11/22/synthetica-blackeye-highlights.



![]()
![]()



Heute auf der Devoxx Konferenz gab es die Info, dass wegen der neuen Spracheigenschaften sich Java 7 von Februar auf etwa September verschieben wird. Immerhin wird es dann wohl Closures geben und das Projekt Coin wird vermutlich noch mehr aufnehmen, etwa die Aufzählung von mehreren Exceptions im catch-Block.
Infos dazu hier: http://code.google.com/p/google-web-toolkit/wiki/GWT_2_0_RC.
Major New Features in the GWT SDK
- In-Browser Development Mode
- Prior to 2.0, GWT hosted mode provided a special-purpose „hosted browser“ to debug your GWT code. In 2.0, the web page being debugged is viewed within a regular-old browser. Development mode is supported through the use of a native-code plugin called the „Google Web Toolkit Developer Plugin“ for many popular browsers. In other words, you can use development mode directly from Safari, Firefox, IE, and Chrome.
- Developer-guided Code Splitting
- Code splitting using GWT.runAsync(), along with compile reports (also known as The Story of Your Compile) allows you to chunk your GWT code into multiple fragments for faster startup. Imagine having to download a whole movie before being able to watch it. Well, that’s what you have to do with most Ajax apps these days — download the whole thing before using it. With code splitting, you can arrange to load just the minimum script needed to get the application running and the user interacting, while the rest of the app is downloaded as needed.
- Declarative User Interfaces with UiBinder
- GWT’s UiBinder now allows you to create user interfaces mostly declaratively. Previously, widgets had to be created and assembled programmatically, requiring lots of code. Now, you can use XML to declare your UI, making the code more readable, easier to maintain, and faster to develop. The Mail sample has been updated to show a practical example of using UiBinder.
- Bundling of Resources via ClientBundle
- GWT introduced ImageBundle in 1.4 to provide automatic spriting of images. ClientBundle generalizes this technique, bringing the power of combining and optimizing resources into one download to things like text files, CSS, and XML. This means fewer network round trips, which in turn can decrease application latency — especially on mobile applications.
- Simplified Unit Testing with HtmlUnit
- Using HtmlUnit for running test cases based on GWTTestCase: Prior to 2.0, GWTTestCase relied on SWT and native code versions of actual browsers to run unit tests. As a result, running unit tests required starting an actual browser. As of 2.0, GWTTestCase no longer uses SWT or native code. Instead, it uses HtmlUnit as the built-in browser. Because HtmlUnit is written entirely in the Java language, there is no longer any native code involved in typical test-driven development. Debugging GWT Tests in development mode can be done entirely in a Java debugger.
Major New Features in the Google Plugin for Eclipse
- Development Mode Launch View
- Integrates your Development Mode logs right into Eclipse, which means one less window to shuffle around
- UiBinder Support
- The UiBinder template editor provides auto-completion and formatting for editing ui.xml files (and embedded CSS blocks)
Validation of UiBinder templates and backing Java classes
New UiBinder wizard to quickly get started- ClientBundle Support
- „New ClientBundle“ wizard to bundle CSS and other resources together to minimize HTTP round-trips
As-you-type validation ensures that your app’s static resources are always in the right place- RPC Refactoring
- Automatically updates sync/async pairs of RPC interfaces and their methods
- JNSI Reference Auto-completion
- Auto-completion takes the pain out of referencing Java members from JSNI methods
Darüber berichtet Heise:
Ein Entwickler, der sein Produkt aus dem Market aus unterschiedlichen Gründen (z.B. aufgrund von Urheberrechtsverletzungen) zurückzieht, muss alle Einkünfte, die er innerhalb eines Jahres, bevor die Software entfernt wurde, an die Endverbraucher, die für das Produkt gezahlt haben, zurückerstatten.
Vielleicht ist das aber gar nicht so falsch. Wenn ich mit Nacktbildern von Angela M. richtig viel Kohle mache, dann aber wegen unsittlichen urheberrechtlich geschützten Privatfotos meine App zurückziehen muss, habe ich dann schon auf dem Rücken von Angela M. (oh, ja, welch’ Bild) viel verdient. Bin gespannt, wie sich das entwickelt.
Download gibt es unter http://download.java.net/jdk7/m5/, die Neuerungen bei http://download.java.net/jdk7/changes/jdk7-b76.html. Am Interessantesten dürfen sein:
und
Während man die Profiler TPTP und den NetBeans Profiler als Standards im Open-Source Umfeld bezeichnen kann, so ist das auf der kommerziellen Seite JProfiler und YourKit Java Profiler 8.0. Die ej-technologies GmbH stellt mit dem JProfiler nun ein Tool vor, das interessante Neuigkeiten bietet. Ein Trend ist die Zuwendung zu einem Tool welches Möglichkeiten bietet Thread-Locks zu visualisieren, was es klarer Hinweis ist, dass Entwickler um die parallele Programmierung nicht mehr rumkommen und Hilfe bei der Optimierung der (gedachten) Optimierung benötigen.

Neu ist auch die Darstellung, welche Locks wie oft angefragt werden:

Auch folgende Darstellung ist neu und von einem Klassiker inspiriert, der Dateigrößen erstmalig so darstellte. Nun ist das auf die Ausführungszeiten und Speicherverbrauch angewendet. Eine wunderbare Idee:

