mirror of https://github.com/apache/jclouds.git
Issue 77: added log4j to rackspace
git-svn-id: http://jclouds.googlecode.com/svn/trunk@1637 3d8758e0-26b5-11de-8745-db77d3ebf521
This commit is contained in:
parent
3fd5333732
commit
2d68a4e748
|
@ -32,6 +32,8 @@ import javax.xml.parsers.SAXParser;
|
||||||
import javax.xml.parsers.SAXParserFactory;
|
import javax.xml.parsers.SAXParserFactory;
|
||||||
|
|
||||||
import org.jclouds.http.functions.ParseSax;
|
import org.jclouds.http.functions.ParseSax;
|
||||||
|
import org.jclouds.util.DateService;
|
||||||
|
import org.joda.time.DateTime;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
import org.xml.sax.XMLReader;
|
import org.xml.sax.XMLReader;
|
||||||
|
|
||||||
|
@ -59,6 +61,21 @@ public class ParserModule extends AbstractModule {
|
||||||
private final static TypeLiteral<ParseSax.Factory> parseSaxFactoryLiteral = new TypeLiteral<ParseSax.Factory>() {
|
private final static TypeLiteral<ParseSax.Factory> parseSaxFactoryLiteral = new TypeLiteral<ParseSax.Factory>() {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static class DateTimeAdapter implements JsonSerializer<DateTime>, JsonDeserializer<DateTime> {
|
||||||
|
private final static DateService dateService = new DateService();
|
||||||
|
|
||||||
|
public JsonElement serialize(DateTime src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
return new JsonPrimitive(dateService.iso8601DateFormat(src));
|
||||||
|
}
|
||||||
|
|
||||||
|
public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
|
||||||
|
throws JsonParseException {
|
||||||
|
String toParse = json.getAsJsonPrimitive().getAsString();
|
||||||
|
return dateService.iso8601DateParse(toParse);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static class InetAddressAdapter implements JsonSerializer<InetAddress>,
|
static class InetAddressAdapter implements JsonSerializer<InetAddress>,
|
||||||
JsonDeserializer<InetAddress> {
|
JsonDeserializer<InetAddress> {
|
||||||
public JsonElement serialize(InetAddress src, Type typeOfSrc, JsonSerializationContext context) {
|
public JsonElement serialize(InetAddress src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
@ -98,6 +115,7 @@ public class ParserModule extends AbstractModule {
|
||||||
Gson provideGson() {
|
Gson provideGson() {
|
||||||
GsonBuilder gson = new GsonBuilder();
|
GsonBuilder gson = new GsonBuilder();
|
||||||
gson.registerTypeAdapter(InetAddress.class, new InetAddressAdapter());
|
gson.registerTypeAdapter(InetAddress.class, new InetAddressAdapter());
|
||||||
|
gson.registerTypeAdapter(DateTime.class, new DateTimeAdapter());
|
||||||
return gson.create();
|
return gson.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,11 @@ import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
||||||
import org.jclouds.rackspace.cloudservers.domain.Flavor;
|
import org.jclouds.rackspace.cloudservers.domain.Flavor;
|
||||||
import org.jclouds.rackspace.cloudservers.domain.Image;
|
import org.jclouds.rackspace.cloudservers.domain.Image;
|
||||||
import org.jclouds.rackspace.cloudservers.domain.Server;
|
import org.jclouds.rackspace.cloudservers.domain.Server;
|
||||||
|
import org.testng.annotations.BeforeGroups;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,11 +46,17 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
protected static final String sysRackspaceUser = System.getProperty(PROPERTY_RACKSPACE_USER);
|
protected static final String sysRackspaceUser = System.getProperty(PROPERTY_RACKSPACE_USER);
|
||||||
protected static final String sysRackspaceKey = System.getProperty(PROPERTY_RACKSPACE_KEY);
|
protected static final String sysRackspaceKey = System.getProperty(PROPERTY_RACKSPACE_KEY);
|
||||||
|
CloudServersConnection connection;
|
||||||
|
|
||||||
|
@BeforeGroups(groups = { "live" })
|
||||||
|
public void setupConnection() {
|
||||||
|
connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser, sysRackspaceKey)
|
||||||
|
.withModule(new Log4JLoggingModule()).withJsonDebug().buildContext().getConnection();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListServers() throws Exception {
|
public void testListServers() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Server> response = connection.listServers();
|
List<Server> response = connection.listServers();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long initialContainerCount = response.size();
|
long initialContainerCount = response.size();
|
||||||
|
@ -58,8 +66,6 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListServersDetail() throws Exception {
|
public void testListServersDetail() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Server> response = connection.listServerDetails();
|
List<Server> response = connection.listServerDetails();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long initialContainerCount = response.size();
|
long initialContainerCount = response.size();
|
||||||
|
@ -68,8 +74,6 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListFlavors() throws Exception {
|
public void testListFlavors() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Flavor> response = connection.listFlavors();
|
List<Flavor> response = connection.listFlavors();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long flavorCount = response.size();
|
long flavorCount = response.size();
|
||||||
|
@ -83,8 +87,6 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListFlavorsDetail() throws Exception {
|
public void testListFlavorsDetail() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Flavor> response = connection.listFlavorDetails();
|
List<Flavor> response = connection.listFlavorDetails();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long flavorCount = response.size();
|
long flavorCount = response.size();
|
||||||
|
@ -99,8 +101,6 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListImages() throws Exception {
|
public void testListImages() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Image> response = connection.listImages();
|
List<Image> response = connection.listImages();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long imageCount = response.size();
|
long imageCount = response.size();
|
||||||
|
@ -114,8 +114,6 @@ public class CloudServersConnectionLiveTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListImagesDetail() throws Exception {
|
public void testListImagesDetail() throws Exception {
|
||||||
CloudServersConnection connection = CloudServersContextBuilder.newBuilder(sysRackspaceUser,
|
|
||||||
sysRackspaceKey).withJsonDebug().buildContext().getConnection();
|
|
||||||
List<Image> response = connection.listImageDetails();
|
List<Image> response = connection.listImageDetails();
|
||||||
assert null != response;
|
assert null != response;
|
||||||
long imageCount = response.size();
|
long imageCount = response.size();
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (C) 2009 Global Cloud Specialists, Inc. <info@globalcloudspecialists.com>
|
||||||
|
|
||||||
|
====================================================================
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
====================================================================
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
For more configuration infromation and examples see the Apache Log4j
|
||||||
|
website: http://logging.apache.org/log4j/
|
||||||
|
-->
|
||||||
|
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
|
||||||
|
debug="false">
|
||||||
|
|
||||||
|
<!-- A time/date based rolling appender -->
|
||||||
|
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
|
||||||
|
<param name="File" value="target/test-data/jclouds.log" />
|
||||||
|
<param name="Append" value="true" />
|
||||||
|
|
||||||
|
<!-- Rollover at midnight each day -->
|
||||||
|
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
||||||
|
|
||||||
|
<param name="Threshold" value="TRACE" />
|
||||||
|
|
||||||
|
<layout class="org.apache.log4j.PatternLayout">
|
||||||
|
<!-- The default pattern: Date Priority [Category] Message\n -->
|
||||||
|
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
|
||||||
|
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x)
|
||||||
|
%m%n"/>
|
||||||
|
-->
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
|
||||||
|
<appender-ref ref="FILE" />
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- ================ -->
|
||||||
|
<!-- Limit categories -->
|
||||||
|
<!-- ================ -->
|
||||||
|
|
||||||
|
<category name="org.jclouds">
|
||||||
|
<priority value="TRACE" />
|
||||||
|
</category>
|
||||||
|
|
||||||
|
<!-- ======================= -->
|
||||||
|
<!-- Setup the Root category -->
|
||||||
|
<!-- ======================= -->
|
||||||
|
|
||||||
|
<root>
|
||||||
|
<priority value="WARN" />
|
||||||
|
<appender-ref ref="ASYNC" />
|
||||||
|
</root>
|
||||||
|
|
||||||
|
</log4j:configuration>
|
Loading…
Reference in New Issue