You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/05/10 13:05:21 UTC
svn commit: r655045 - in /incubator/shindig/trunk/java:
gadgets/src/main/java/org/apache/shindig/common/
gadgets/src/main/java/org/apache/shindig/common/crypto/
gadgets/src/main/java/org/apache/shindig/common/util/
gadgets/src/main/java/org/apache/shin...
Author: etnu
Date: Sat May 10 04:05:19 2008
New Revision: 655045
URL: http://svn.apache.org/viewvc?rev=655045&view=rev
Log:
Continued migrating code from "gadgets" to "common". This patch moves various utility code into the common package and breaks down components into sub-packages as appropriate.
Added:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypterException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobExpiredException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/Crypto.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Base32.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Base32.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Check.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Check.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/HashUtil.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/HashUtil.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/InputStreamConsumer.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/InputStreamConsumer.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/ResourceLoader.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/ResourceLoader.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/StringEncoding.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/StringEncoding.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/TimeSource.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/TimeSource.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlException.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlUtil.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlUtil.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/BlobCrypterTest.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/BlobCrypterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/CryptoTest.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CryptoTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/CheckTest.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CheckTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/FakeTimeSource.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/FakeTimeSource.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/StringEncodingTest.java
- copied, changed from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/StringEncodingTest.java
Removed:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Base32.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/BasicBlobCrypter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/BlobCrypter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/BlobCrypterException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/BlobExpiredException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Check.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Crypto.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/HashUtil.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/InputStreamConsumer.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/ResourceLoader.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/StringEncoding.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/TimeSource.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlUtil.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/BlobCrypterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CheckTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CryptoTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/FakeTimeSource.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/StringEncodingTest.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityToken.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicRemoteContentFetcher.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/ProxyHandler.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/RpcServlet.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/UrlGenerator.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Icon.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/LocaleSpec.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/UserPref.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/View.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentRequestTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/FeatureTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/IconTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/LocaleSpecTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/UserPrefTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ViewTest.java
incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JettyServer.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityToken.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityToken.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityToken.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityToken.java Sat May 10 04:05:19 2008
@@ -18,9 +18,9 @@
*/
package org.apache.shindig.common;
-import org.apache.shindig.util.BasicBlobCrypter;
-import org.apache.shindig.util.BlobCrypter;
-import org.apache.shindig.util.BlobCrypterException;
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypterException;
import java.util.HashMap;
import java.util.Map;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java Sat May 10 04:05:19 2008
@@ -18,7 +18,7 @@
*/
package org.apache.shindig.common;
-import org.apache.shindig.util.BlobCrypterException;
+import org.apache.shindig.common.crypto.BlobCrypterException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java?rev=655045&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java Sat May 10 04:05:19 2008
@@ -0,0 +1,188 @@
+/*
+ * 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.
+ */
+package org.apache.shindig.common.crypto;
+
+import org.apache.shindig.common.util.TimeSource;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.security.GeneralSecurityException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Simple implementation of BlobCrypter.
+ */
+public class BasicBlobCrypter implements BlobCrypter {
+
+ // Labels for key derivation
+ private static final byte CIPHER_KEY_LABEL = 0;
+ private static final byte HMAC_KEY_LABEL = 1;
+
+ /** Key used for time stamp (in seconds) of data */
+ public static final String TIMESTAMP_KEY = "t";
+
+ /** minimum length of master key */
+ public static final int MASTER_KEY_MIN_LEN = 16;
+
+ /** allow three minutes for clock skew */
+ private static final long CLOCK_SKEW_ALLOWANCE = 180;
+
+ private static final String UTF8 = "UTF-8";
+
+ public TimeSource timeSource = new TimeSource();
+ private byte[] cipherKey;
+ private byte[] hmacKey;
+
+ /**
+ * Builds a BlobCrypter from the specified master key
+ *
+ * @param masterKey
+ */
+ public BasicBlobCrypter(byte[] masterKey) {
+ if (masterKey.length < MASTER_KEY_MIN_LEN) {
+ throw new IllegalArgumentException("Master key needs at least " +
+ MASTER_KEY_MIN_LEN + " bytes");
+ }
+ cipherKey = deriveKey(CIPHER_KEY_LABEL, masterKey, Crypto.CIPHER_KEY_LEN);
+ hmacKey = deriveKey(HMAC_KEY_LABEL, masterKey, 0);
+ }
+
+ /**
+ * Generates unique keys from a master key.
+ *
+ * @param label type of key to derive
+ * @param masterKey master key
+ * @param len length of key needed, less than 20 bytes. 20 bytes are
+ * returned if len is 0.
+ *
+ * @return a derived key of the specified length
+ */
+ private byte[] deriveKey(byte label, byte[] masterKey, int len) {
+ byte[] base = Crypto.concat(new byte[] { label }, masterKey);
+ byte[] hash = DigestUtils.sha(base);
+ if (len == 0) {
+ return hash;
+ }
+ byte[] out = new byte[len];
+ System.arraycopy(hash, 0, out, 0, out.length);
+ return out;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.shindig.util.BlobCrypter#wrap(java.util.Map)
+ */
+ public String wrap(Map<String, String> in)
+ throws BlobCrypterException {
+ if (in.containsKey(TIMESTAMP_KEY)) {
+ throw new IllegalArgumentException("No 't' keys allowed for BlobCrypter");
+ }
+ try {
+ byte[] encoded = serializeAndTimestamp(in);
+ byte[] cipherText = Crypto.aes128cbcEncrypt(cipherKey, encoded);
+ byte[] hmac = Crypto.hmacSha1(hmacKey, cipherText);
+ byte[] b64 = Base64.encodeBase64(Crypto.concat(cipherText, hmac));
+ return new String(b64, UTF8);
+ } catch (UnsupportedEncodingException e) {
+ throw new BlobCrypterException(e);
+ } catch (GeneralSecurityException e) {
+ throw new BlobCrypterException(e);
+ }
+ }
+
+ /**
+ * Encode the input for transfer. We use something a lot like HTML form
+ * encodings. The time stamp is in seconds since the epoch.
+ */
+ private byte[] serializeAndTimestamp(Map<String, String> in)
+ throws UnsupportedEncodingException {
+ StringBuilder sb = new StringBuilder();
+
+ for (Map.Entry<String, String> stringStringEntry : in.entrySet()) {
+ Map.Entry<String, String> val = stringStringEntry;
+ sb.append(URLEncoder.encode(val.getKey(), UTF8));
+ sb.append('=');
+ sb.append(URLEncoder.encode(val.getValue(), UTF8));
+ sb.append('&');
+ }
+ sb.append(TIMESTAMP_KEY);
+ sb.append('=');
+ sb.append(timeSource.currentTimeMillis()/1000);
+ return sb.toString().getBytes(UTF8);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.shindig.util.BlobCrypter#unwrap(java.lang.String, int)
+ */
+ public Map<String, String> unwrap(String in, int maxAgeSec)
+ throws BlobCrypterException {
+ try {
+ byte[] bin = Base64.decodeBase64(in.getBytes());
+ byte[] hmac = new byte[Crypto.HMAC_SHA1_LEN];
+ byte[] cipherText = new byte[bin.length-Crypto.HMAC_SHA1_LEN];
+ System.arraycopy(bin, 0, cipherText, 0, cipherText.length);
+ System.arraycopy(bin, cipherText.length, hmac, 0, hmac.length);
+ Crypto.hmacSha1Verify(hmacKey, cipherText, hmac);
+ byte[] plain = Crypto.aes128cbcDecrypt(cipherKey, cipherText);
+ Map<String, String> out = deserialize(plain);
+ checkTimestamp(out, maxAgeSec);
+ return out;
+ } catch (GeneralSecurityException e) {
+ throw new BlobCrypterException("Invalid token signature", e);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ throw new BlobCrypterException("Invalid token format", e);
+ } catch (UnsupportedEncodingException e) {
+ throw new BlobCrypterException(e);
+ }
+
+ }
+
+ private Map<String, String> deserialize(byte[] plain)
+ throws UnsupportedEncodingException {
+ String base = new String(plain, UTF8);
+ String[] items = base.split("[&=]");
+ Map<String, String> map = new HashMap<String, String>();
+ for (int i=0; i < items.length; ) {
+ String key = URLDecoder.decode(items[i++], UTF8);
+ String val = URLDecoder.decode(items[i++], UTF8);
+ map.put(key, val);
+ }
+ return map;
+ }
+
+ /**
+ * We allow a few minutes on either side of the validity window to account
+ * for clock skew.
+ */
+ private void checkTimestamp(Map<String, String> out, int maxAge)
+ throws BlobExpiredException {
+ long origin = Long.parseLong(out.get(TIMESTAMP_KEY));
+ long minTime = origin - CLOCK_SKEW_ALLOWANCE;
+ long maxTime = origin + maxAge + CLOCK_SKEW_ALLOWANCE;
+ long now = timeSource.currentTimeMillis()/1000;
+ if (!(minTime < now && now < maxTime)) {
+ throw new BlobExpiredException(minTime, now, maxTime);
+ }
+ }
+
+}
Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypter.java?rev=655045&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypter.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypter.java Sat May 10 04:05:19 2008
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+package org.apache.shindig.common.crypto;
+
+import java.util.Map;
+
+/**
+ * Utility interface for managing signed, encrypted, and time stamped blobs.
+ * Blobs are made up of name/value pairs. Time stamps are automatically
+ * included and checked.
+ *
+ * Thread safe.
+ */
+public interface BlobCrypter {
+
+ /**
+ * Time stamps, encrypts, and signs a blob.
+ *
+ * @param in name/value pairs to encrypt
+ * @return a base64 encoded blob
+ *
+ * @throws BlobCrypterException
+ */
+ public String wrap(Map<String, String> in) throws BlobCrypterException;
+
+ /**
+ * Unwraps a blob.
+ *
+ * @param in blob
+ * @param maxAgeSec maximum age for the blob
+ * @return the name/value pairs, including the origin timestamp.
+ *
+ * @throws BlobExpiredException if the blob is too old to be accepted.
+ * @throws BlobCrypterException if the blob can't be decoded.
+ */
+ public Map<String, String> unwrap(String in, int maxAgeSec)
+ throws BlobCrypterException;
+
+}
Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypterException.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypterException.java?rev=655045&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypterException.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobCrypterException.java Sat May 10 04:05:19 2008
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+package org.apache.shindig.common.crypto;
+
+/**
+ * For all exceptions thrown by BlobCrypter
+ */
+public class BlobCrypterException extends Exception {
+ public BlobCrypterException(Throwable cause) {
+ super(cause);
+ }
+
+ public BlobCrypterException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+
+ protected BlobCrypterException(String msg) {
+ super(msg);
+ }
+}
Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobExpiredException.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobExpiredException.java?rev=655045&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobExpiredException.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/BlobExpiredException.java Sat May 10 04:05:19 2008
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+package org.apache.shindig.common.crypto;
+
+import java.util.Date;
+
+/**
+ * Thrown when a blob has expired.
+ */
+public class BlobExpiredException extends BlobCrypterException {
+
+ public final Date minDate;
+ public final Date used;
+ public final Date maxDate;
+
+ public BlobExpiredException(long minTime, long now, long maxTime) {
+ this(new Date(minTime*1000), new Date(now*1000), new Date(maxTime*1000));
+ }
+
+ public BlobExpiredException(Date minTime, Date now, Date maxTime) {
+ super("Blob expired, was valid from " + minTime + " to " + maxTime
+ + ", attempted use at " + now);
+ this.minDate = minTime;
+ this.used = now;
+ this.maxDate = maxTime;
+ }
+
+}
Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/Crypto.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/Crypto.java?rev=655045&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/Crypto.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/crypto/Crypto.java Sat May 10 04:05:19 2008
@@ -0,0 +1,215 @@
+/*
+ * 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.
+ */
+package org.apache.shindig.common.crypto;
+
+import org.apache.commons.codec.binary.Hex;
+
+import java.security.GeneralSecurityException;
+import java.security.Key;
+import java.security.SecureRandom;
+
+import javax.crypto.Cipher;
+import javax.crypto.Mac;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * Cryptographic utility functions.
+ */
+public class Crypto {
+
+ /**
+ * Use this random number generator instead of creating your own. This is
+ * thread-safe.
+ */
+ public static SecureRandom rand = new SecureRandom();
+
+ /**
+ * HMAC algorithm to use
+ */
+ private final static String HMAC_TYPE = "HMACSHA1";
+
+ /**
+ * minimum safe length for hmac keys (this is good practice, but not
+ * actually a requirement of the algorithm
+ */
+ private final static int MIN_HMAC_KEY_LEN = 8;
+
+ /**
+ * Encryption algorithm to use
+ */
+ private final static String CIPHER_TYPE = "AES/CBC/PKCS5Padding";
+
+ private final static String CIPHER_KEY_TYPE = "AES";
+
+ /**
+ * Use keys of this length for encryption operations
+ */
+ public final static int CIPHER_KEY_LEN = 16;
+
+ private static int CIPHER_BLOCK_SIZE = 16;
+
+ /**
+ * Length of HMAC SHA1 output
+ */
+ public final static int HMAC_SHA1_LEN = 20;
+
+ // everything is static, no instantiating this class
+ private Crypto() {
+ }
+
+ /**
+ * Gets a hex encoded random string.
+ *
+ * @param numBytes number of bytes of randomness.
+ */
+ public static String getRandomString(int numBytes) {
+ return new String(Hex.encodeHex(getRandomBytes(numBytes)));
+ }
+
+ /**
+ * Returns strong random bytes.
+ *
+ * @param numBytes number of bytes of randomness
+ */
+ public static byte[] getRandomBytes(int numBytes) {
+ byte[] out = new byte[numBytes];
+ rand.nextBytes(out);
+ return out;
+ }
+
+ /**
+ * HMAC sha1
+ *
+ * @param key the key must be at least 8 bytes in length.
+ * @param in byte array to HMAC.
+ * @return the hash
+ *
+ * @throws GeneralSecurityException
+ */
+ public static byte[] hmacSha1(byte[] key, byte[] in) throws GeneralSecurityException {
+ if (key.length < MIN_HMAC_KEY_LEN) {
+ throw new GeneralSecurityException("HMAC key should be at least "
+ + MIN_HMAC_KEY_LEN + " bytes.");
+ }
+ Mac hmac = Mac.getInstance(HMAC_TYPE);
+ Key hmacKey = new SecretKeySpec(key, HMAC_TYPE);
+ hmac.init(hmacKey);
+ hmac.update(in);
+ return hmac.doFinal();
+ }
+
+ /**
+ * Verifies an HMAC SHA1 hash. Throws if the verification fails.
+ *
+ * @param key
+ * @param in
+ * @param expected
+ * @throws GeneralSecurityException
+ */
+ public static void hmacSha1Verify(byte[] key, byte[] in, byte[] expected)
+ throws GeneralSecurityException {
+ Mac hmac = Mac.getInstance(HMAC_TYPE);
+ Key hmacKey = new SecretKeySpec(key, HMAC_TYPE);
+ hmac.init(hmacKey);
+ hmac.update(in);
+ byte actual[] = hmac.doFinal();
+ if (actual.length != expected.length) {
+ throw new GeneralSecurityException("HMAC verification failure");
+ }
+ for (int i=0; i < actual.length; i++) {
+ if (actual[i] != expected[i]) {
+ throw new GeneralSecurityException("HMAC verification failure");
+ }
+ }
+ }
+
+ /**
+ * AES-128-CBC encryption. The IV is returned as the first 16 bytes
+ * of the cipher text.
+ *
+ * @param key
+ * @param plain
+ *
+ * @return the IV and cipher text
+ *
+ * @throws GeneralSecurityException
+ */
+ public static byte[] aes128cbcEncrypt(byte[] key, byte[] plain)
+ throws GeneralSecurityException {
+ Cipher cipher = Cipher.getInstance(CIPHER_TYPE);
+ Key cipherKey = new SecretKeySpec(key, CIPHER_KEY_TYPE);
+ byte iv[] = getRandomBytes(cipher.getBlockSize());
+ IvParameterSpec ivSpec = new IvParameterSpec(iv);
+ cipher.init(Cipher.ENCRYPT_MODE, cipherKey, ivSpec);
+ byte[] cipherText = cipher.doFinal(plain);
+ return concat(iv, cipherText);
+ }
+
+ /**
+ * AES-128-CBC decryption. The IV is assumed to be the first 16 bytes
+ * of the cipher text.
+ *
+ * @param key
+ * @param cipherText
+ *
+ * @return the plain text
+ *
+ * @throws GeneralSecurityException
+ */
+ public static byte[] aes128cbcDecrypt(byte[] key, byte[] cipherText)
+ throws GeneralSecurityException {
+ byte iv[] = new byte[CIPHER_BLOCK_SIZE];
+ System.arraycopy(cipherText, 0, iv, 0, iv.length);
+ return aes128cbcDecryptWithIv(key, iv, cipherText, iv.length);
+ }
+
+ /**
+ * AES-128-CBC decryption with a particular IV.
+ *
+ * @param key decryption key
+ * @param iv initial vector for decryption
+ * @param cipherText cipher text to decrypt
+ * @param offset offset into cipher text to begin decryption
+ *
+ * @return the plain text
+ *
+ * @throws GeneralSecurityException
+ */
+ public static byte[] aes128cbcDecryptWithIv(byte[] key, byte[] iv,
+ byte[] cipherText, int offset) throws GeneralSecurityException {
+ Cipher cipher = Cipher.getInstance(CIPHER_TYPE);
+ Key cipherKey = new SecretKeySpec(key, CIPHER_KEY_TYPE);
+ IvParameterSpec ivSpec = new IvParameterSpec(iv);
+ cipher.init(Cipher.DECRYPT_MODE, cipherKey, ivSpec);
+ return cipher.doFinal(cipherText, offset, cipherText.length-offset);
+ }
+
+ /**
+ * Concatenate two byte arrays.
+ */
+ public static byte[] concat(byte[] a, byte[] b) {
+ byte[] out = new byte[a.length + b.length];
+ int cursor = 0;
+ System.arraycopy(a, 0, out, cursor, a.length);
+ cursor += a.length;
+ System.arraycopy(b, 0, out, cursor, b.length);
+ return out;
+ }
+}
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Base32.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Base32.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Base32.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Base32.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Base32.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Base32.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Base32.java Sat May 10 04:05:19 2008
@@ -5,16 +5,16 @@
* 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.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import org.apache.commons.codec.BinaryDecoder;
import org.apache.commons.codec.BinaryEncoder;
@@ -22,7 +22,11 @@
import org.apache.commons.codec.EncoderException;
/**
- * Implements Base32 encoding.
+ * Implements Base32 encoding using 0-9a-v, with no padding for partial bytes.
+ *
+ * This is suitable for base32 encoding any binary data that needs to be passed
+ * in a web-safe context, but it differs from base32 implementations used in
+ * other contexts.
*/
public class Base32 implements BinaryDecoder, BinaryEncoder {
@@ -30,13 +34,13 @@
new StringEncoding("0123456789abcdefghijklmnopqrstuv".toCharArray());
public static byte[] encodeBase32(byte[] arg0) {
- return ENCODER.encode(arg0).getBytes();
+ return ENCODER.encode(arg0).getBytes();
}
-
+
public static byte[] decodeBase32(byte[] arg0) {
- return ENCODER.decode(new String(arg0));
+ return ENCODER.decode(new String(arg0));
}
-
+
@SuppressWarnings("unused")
public byte[] decode(byte[] arg0) throws DecoderException {
return decodeBase32(arg0);
@@ -58,7 +62,7 @@
public Object encode(Object object) throws EncoderException {
if (!(object instanceof byte[])) {
throw new EncoderException(
- "Parameter supplied to Base64 encode is not a byte[]");
+ "Parameter supplied to Base32 encode is not a byte[]");
}
return encodeBase32((byte[]) object);
}
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Check.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Check.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Check.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Check.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Check.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/Check.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/Check.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/HashUtil.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/HashUtil.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/HashUtil.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/HashUtil.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/HashUtil.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/HashUtil.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/HashUtil.java Sat May 10 04:05:19 2008
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/InputStreamConsumer.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/InputStreamConsumer.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/InputStreamConsumer.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/InputStreamConsumer.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/InputStreamConsumer.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/InputStreamConsumer.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/InputStreamConsumer.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/ResourceLoader.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/ResourceLoader.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/ResourceLoader.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/ResourceLoader.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/ResourceLoader.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/ResourceLoader.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/ResourceLoader.java Sat May 10 04:05:19 2008
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import java.io.File;
import java.io.FileInputStream;
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/StringEncoding.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/StringEncoding.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/StringEncoding.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/StringEncoding.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/StringEncoding.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/StringEncoding.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/StringEncoding.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import java.util.Arrays;
import java.util.TreeSet;
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/TimeSource.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/TimeSource.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/TimeSource.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/TimeSource.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/TimeSource.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/TimeSource.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/util/TimeSource.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
/**
* Simple source of current time to use for dependency injection.
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlException.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlException.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlException.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlException.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlException.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlException.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlException.java Sat May 10 04:05:19 2008
@@ -15,7 +15,7 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.xml;
public class XmlException extends Exception {
public XmlException(String message, Exception cause) {
Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlUtil.java (from r655042, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlUtil.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlUtil.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlUtil.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlUtil.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/util/XmlUtil.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/common/xml/XmlUtil.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.xml;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicRemoteContentFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicRemoteContentFetcher.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicRemoteContentFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicRemoteContentFetcher.java Sat May 10 04:05:19 2008
@@ -17,7 +17,7 @@
*/
package org.apache.shindig.gadgets;
-import org.apache.shindig.util.InputStreamConsumer;
+import org.apache.shindig.common.util.InputStreamConsumer;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java Sat May 10 04:05:19 2008
@@ -19,7 +19,7 @@
package org.apache.shindig.gadgets;
-import org.apache.shindig.util.ResourceLoader;
+import org.apache.shindig.common.util.ResourceLoader;
import com.google.inject.Inject;
import com.google.inject.name.Named;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java Sat May 10 04:05:19 2008
@@ -18,8 +18,8 @@
*/
package org.apache.shindig.gadgets;
+import org.apache.shindig.common.util.ResourceLoader;
import org.apache.shindig.gadgets.oauth.OAuthFetcherFactory;
-import org.apache.shindig.util.ResourceLoader;
import com.google.inject.AbstractModule;
import com.google.inject.CreationException;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java Sat May 10 04:05:19 2008
@@ -18,8 +18,9 @@
package org.apache.shindig.gadgets;
import org.apache.commons.codec.digest.DigestUtils;
+
+import org.apache.shindig.common.util.Base32;
import org.apache.shindig.gadgets.spec.Feature;
-import org.apache.shindig.util.Base32;
import com.google.inject.Inject;
import com.google.inject.name.Named;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java Sat May 10 04:05:19 2008
@@ -17,9 +17,10 @@
*/
package org.apache.shindig.gadgets;
-import org.apache.shindig.util.ResourceLoader;
-import org.apache.shindig.util.XmlException;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.util.ResourceLoader;
+import org.apache.shindig.common.xml.XmlException;
+import org.apache.shindig.common.xml.XmlUtil;
+
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsLibrary.java Sat May 10 04:05:19 2008
@@ -17,7 +17,7 @@
*/
package org.apache.shindig.gadgets;
-import org.apache.shindig.util.ResourceLoader;
+import org.apache.shindig.common.util.ResourceLoader;
import java.io.File;
import java.io.IOException;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java Sat May 10 04:05:19 2008
@@ -15,8 +15,8 @@
package org.apache.shindig.gadgets;
import org.apache.shindig.common.SecurityToken;
-import org.apache.shindig.util.Crypto;
-import org.apache.shindig.util.TimeSource;
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.common.util.TimeSource;
import net.oauth.OAuth;
import net.oauth.OAuth.Parameter;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java Sat May 10 04:05:19 2008
@@ -19,8 +19,8 @@
package org.apache.shindig.gadgets;
import org.apache.shindig.common.SecurityToken;
-import org.apache.shindig.util.InputStreamConsumer;
-import org.apache.shindig.util.ResourceLoader;
+import org.apache.shindig.common.util.InputStreamConsumer;
+import org.apache.shindig.common.util.ResourceLoader;
import com.google.inject.Inject;
import com.google.inject.name.Named;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/ProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/ProxyHandler.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/ProxyHandler.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/ProxyHandler.java Sat May 10 04:05:19 2008
@@ -21,6 +21,7 @@
import org.apache.shindig.common.SecurityToken;
import org.apache.shindig.common.SecurityTokenDecoder;
import org.apache.shindig.common.SecurityTokenException;
+import org.apache.shindig.common.util.InputStreamConsumer;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.ContentFetcherFactory;
import org.apache.shindig.gadgets.GadgetException;
@@ -30,7 +31,6 @@
import org.apache.shindig.gadgets.oauth.OAuthRequestParams;
import org.apache.shindig.gadgets.spec.Auth;
import org.apache.shindig.gadgets.spec.Preload;
-import org.apache.shindig.util.InputStreamConsumer;
import com.google.inject.Inject;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/RpcServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/RpcServlet.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/RpcServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/RpcServlet.java Sat May 10 04:05:19 2008
@@ -20,7 +20,7 @@
package org.apache.shindig.gadgets.http;
import org.apache.shindig.common.servlet.InjectedServlet;
-import org.apache.shindig.util.InputStreamConsumer;
+import org.apache.shindig.common.util.InputStreamConsumer;
import com.google.inject.Inject;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/UrlGenerator.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/UrlGenerator.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/UrlGenerator.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/UrlGenerator.java Sat May 10 04:05:19 2008
@@ -18,6 +18,7 @@
*/
package org.apache.shindig.gadgets.http;
+import org.apache.shindig.common.util.HashUtil;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.GadgetFeature;
@@ -29,7 +30,6 @@
import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.apache.shindig.gadgets.spec.UserPref;
import org.apache.shindig.gadgets.spec.View;
-import org.apache.shindig.util.HashUtil;
import com.google.inject.Inject;
import com.google.inject.name.Named;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java Sat May 10 04:05:19 2008
@@ -18,12 +18,12 @@
*/
package org.apache.shindig.gadgets.oauth;
+import org.apache.shindig.common.util.ResourceLoader;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RemoteContent;
import org.apache.shindig.gadgets.RemoteContentRequest;
import org.apache.shindig.gadgets.spec.GadgetSpec;
-import org.apache.shindig.util.ResourceLoader;
import org.json.JSONException;
import org.json.JSONObject;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java Sat May 10 04:05:19 2008
@@ -17,14 +17,14 @@
package org.apache.shindig.gadgets.oauth;
import org.apache.shindig.common.SecurityToken;
+import org.apache.shindig.common.crypto.BlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypterException;
import org.apache.shindig.gadgets.ChainedContentFetcher;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RemoteContent;
import org.apache.shindig.gadgets.RemoteContentRequest;
import org.apache.shindig.gadgets.RemoteContentRequest.Options;
-import org.apache.shindig.util.BlobCrypter;
-import org.apache.shindig.util.BlobCrypterException;
import net.oauth.OAuth;
import net.oauth.OAuthAccessor;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java Sat May 10 04:05:19 2008
@@ -19,11 +19,11 @@
package org.apache.shindig.gadgets.oauth;
import org.apache.shindig.common.SecurityToken;
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypter;
+import org.apache.shindig.common.crypto.Crypto;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.util.BasicBlobCrypter;
-import org.apache.shindig.util.BlobCrypter;
-import org.apache.shindig.util.Crypto;
import com.google.inject.BindingAnnotation;
import com.google.inject.Inject;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.xml.XmlUtil;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java Sat May 10 04:05:19 2008
@@ -17,10 +17,10 @@
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.util.HashUtil;
+import org.apache.shindig.common.xml.XmlException;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.HashUtil;
-import org.apache.shindig.util.XmlException;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Icon.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Icon.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Icon.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Icon.java Sat May 10 04:05:19 2008
@@ -16,8 +16,8 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/LocaleSpec.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/LocaleSpec.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/LocaleSpec.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/LocaleSpec.java Sat May 10 04:05:19 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.xml.XmlUtil;
import org.w3c.dom.Element;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java Sat May 10 04:05:19 2008
@@ -17,8 +17,8 @@
*/
package org.apache.shindig.gadgets.spec;
-import org.apache.shindig.util.XmlException;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.xml.XmlException;
+import org.apache.shindig.common.xml.XmlUtil;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java Sat May 10 04:05:19 2008
@@ -16,8 +16,8 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java Sat May 10 04:05:19 2008
@@ -17,8 +17,8 @@
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
import java.net.URI;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java Sat May 10 04:05:19 2008
@@ -17,8 +17,8 @@
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlException;
import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.util.XmlException;
/**
* Exceptions for Gadget Spec parsing.
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/UserPref.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/UserPref.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/UserPref.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/UserPref.java Sat May 10 04:05:19 2008
@@ -16,8 +16,8 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/View.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/View.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/View.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/View.java Sat May 10 04:05:19 2008
@@ -16,8 +16,8 @@
* specific language governing permissions and limitations under the License.
*/
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import org.w3c.dom.Element;
Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/BlobCrypterTest.java (from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/BlobCrypterTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/BlobCrypterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/BlobCrypterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/BlobCrypterTest.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/BlobCrypterTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/BlobCrypterTest.java Sat May 10 04:05:19 2008
@@ -16,7 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.crypto;
+
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypterException;
+import org.apache.shindig.common.crypto.BlobExpiredException;
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.common.util.FakeTimeSource;
import junit.framework.JUnit4TestAdapter;
Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/CryptoTest.java (from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CryptoTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/CryptoTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/CryptoTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CryptoTest.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CryptoTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/crypto/CryptoTest.java Sat May 10 04:05:19 2008
@@ -16,10 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.crypto;
import static org.junit.Assert.*;
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.common.util.FakeTimeSource;
+
import junit.framework.JUnit4TestAdapter;
import org.junit.Test;
Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/CheckTest.java (from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CheckTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/CheckTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/CheckTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CheckTest.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/CheckTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/CheckTest.java Sat May 10 04:05:19 2008
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
+
+import org.apache.shindig.common.util.Check;
import junit.framework.JUnit4TestAdapter;
import static org.hamcrest.Matchers.equalTo;
Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/FakeTimeSource.java (from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/FakeTimeSource.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/FakeTimeSource.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/FakeTimeSource.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/FakeTimeSource.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/FakeTimeSource.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/FakeTimeSource.java Sat May 10 04:05:19 2008
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
+
+import org.apache.shindig.common.util.TimeSource;
/**
* Fake time source for dependency injection.
Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/StringEncodingTest.java (from r655042, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/StringEncodingTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/StringEncodingTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/StringEncodingTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/StringEncodingTest.java&r1=655042&r2=655045&rev=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/util/StringEncodingTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/common/util/StringEncodingTest.java Sat May 10 04:05:19 2008
@@ -16,10 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.shindig.util;
+package org.apache.shindig.common.util;
import static org.junit.Assert.*;
+import org.apache.shindig.common.crypto.Crypto;
+import org.apache.shindig.common.util.StringEncoding;
+
import junit.framework.JUnit4TestAdapter;
import org.junit.Test;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetServerTest.java Sat May 10 04:05:19 2008
@@ -19,8 +19,8 @@
import org.apache.shindig.common.BasicSecurityToken;
import org.apache.shindig.common.SecurityToken;
+import org.apache.shindig.common.crypto.BlobCrypterException;
import org.apache.shindig.gadgets.spec.GadgetSpec;
-import org.apache.shindig.util.BlobCrypterException;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentRequestTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentRequestTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentRequestTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentRequestTest.java Sat May 10 04:05:19 2008
@@ -19,7 +19,7 @@
package org.apache.shindig.gadgets;
-import org.apache.shindig.util.InputStreamConsumer;
+import org.apache.shindig.common.util.InputStreamConsumer;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/RemoteContentTest.java Sat May 10 04:05:19 2008
@@ -20,7 +20,7 @@
import junit.framework.TestCase;
-import org.apache.shindig.util.InputStreamConsumer;
+import org.apache.shindig.common.util.InputStreamConsumer;
import java.util.Arrays;
import java.util.HashMap;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/FakeOAuthServiceProvider.java Sat May 10 04:05:19 2008
@@ -25,11 +25,11 @@
import net.oauth.OAuthValidator;
import net.oauth.SimpleOAuthValidator;
+import org.apache.shindig.common.crypto.Crypto;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RemoteContent;
import org.apache.shindig.gadgets.RemoteContentRequest;
-import org.apache.shindig.util.Crypto;
import java.util.ArrayList;
import java.util.HashMap;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java Sat May 10 04:05:19 2008
@@ -23,6 +23,8 @@
import org.apache.shindig.common.BasicSecurityToken;
import org.apache.shindig.common.SecurityToken;
+import org.apache.shindig.common.crypto.BasicBlobCrypter;
+import org.apache.shindig.common.crypto.BlobCrypter;
import org.apache.shindig.gadgets.ContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RemoteContent;
@@ -30,8 +32,6 @@
import org.apache.shindig.gadgets.oauth.OAuthStore.HttpMethod;
import org.apache.shindig.gadgets.oauth.OAuthStore.OAuthParamLocation;
import org.apache.shindig.gadgets.oauth.OAuthStore.SignatureType;
-import org.apache.shindig.util.BasicBlobCrypter;
-import org.apache.shindig.util.BlobCrypter;
import java.net.URI;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/FeatureTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/FeatureTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/FeatureTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/FeatureTest.java Sat May 10 04:05:19 2008
@@ -19,7 +19,7 @@
package org.apache.shindig.gadgets.spec;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.xml.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/IconTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/IconTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/IconTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/IconTest.java Sat May 10 04:05:19 2008
@@ -19,8 +19,8 @@
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/LocaleSpecTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/LocaleSpecTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/LocaleSpecTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/LocaleSpecTest.java Sat May 10 04:05:19 2008
@@ -19,7 +19,7 @@
package org.apache.shindig.gadgets.spec;
-import org.apache.shindig.util.XmlUtil;
+import org.apache.shindig.common.xml.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java Sat May 10 04:05:19 2008
@@ -19,8 +19,8 @@
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/UserPrefTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/UserPrefTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/UserPrefTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/UserPrefTest.java Sat May 10 04:05:19 2008
@@ -19,8 +19,8 @@
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
-import org.apache.shindig.util.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ViewTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ViewTest.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ViewTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ViewTest.java Sat May 10 04:05:19 2008
@@ -19,9 +19,9 @@
package org.apache.shindig.gadgets.spec;
+import org.apache.shindig.common.xml.XmlUtil;
import org.apache.shindig.gadgets.Substitutions;
import org.apache.shindig.gadgets.Substitutions.Type;
-import org.apache.shindig.util.XmlUtil;
import junit.framework.TestCase;
Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JettyServer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JettyServer.java?rev=655045&r1=655044&r2=655045&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JettyServer.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/JettyServer.java Sat May 10 04:05:19 2008
@@ -22,7 +22,6 @@
import org.apache.abdera.protocol.server.Provider;
import org.apache.abdera.protocol.server.ServiceManager;
import org.apache.abdera.protocol.server.servlet.AbderaServlet;
-
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;