You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/09/02 14:10:53 UTC
[31/51] [partial] incubator-juneau git commit: Add project
hierarchies, part 1
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/IfVarTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/IfVarTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/IfVarTest.java
new file mode 100755
index 0000000..41f67b7
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/IfVarTest.java
@@ -0,0 +1,46 @@
+// ***************************************************************************************************************************
+// * 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.juneau.svl.vars;
+
+import static org.junit.Assert.*;
+
+import org.apache.juneau.svl.*;
+import org.junit.*;
+
+@SuppressWarnings("javadoc")
+public class IfVarTest {
+
+ //====================================================================================================
+ // test - Basic tests
+ //====================================================================================================
+ @Test
+ public void test() throws Exception {
+ VarResolver vr = new VarResolverBuilder().vars(IfVar.class, SystemPropertiesVar.class).build();
+
+ for (String test : new String[]{"","0","false","FALSE","f","F","foobar"}) {
+ System.setProperty("IfVarTest.test", test);
+ assertEquals("NO", vr.resolve("$IF{$S{IfVarTest.test},YES,NO}"));
+ assertEquals("x NO x", vr.resolve("x $IF{ $S{ IfVarTest.test } , YES , NO } x"));
+ assertEquals("", vr.resolve("$IF{$S{IfVarTest.test},YES}"));
+ assertEquals("x x", vr.resolve("x $IF{ $S{ IfVarTest.test } , YES } x"));
+ }
+
+ for (String test : new String[]{"1","true","TRUE","t","T"}) {
+ System.setProperty("IfVarTest.test", test);
+ assertEquals("YES", vr.resolve("$IF{$S{IfVarTest.test},YES,NO}"));
+ assertEquals("YES", vr.resolve("$IF{$S{IfVarTest.test},YES}"));
+ assertEquals("x YES x", vr.resolve("x $IF{ $S{ IfVarTest.test } , YES , NO } x"));
+ assertEquals("x YES x", vr.resolve("x $IF{ $S{ IfVarTest.test } , YES } x"));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/SwitchVarTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/SwitchVarTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/SwitchVarTest.java
new file mode 100644
index 0000000..62167dc
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/svl/vars/SwitchVarTest.java
@@ -0,0 +1,53 @@
+// ***************************************************************************************************************************
+// * 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.juneau.svl.vars;
+
+import static org.junit.Assert.*;
+
+import org.apache.juneau.svl.*;
+import org.junit.*;
+
+@SuppressWarnings("javadoc")
+public class SwitchVarTest {
+
+ //====================================================================================================
+ // test - Basic tests
+ //====================================================================================================
+ @Test
+ public void test() throws Exception {
+ VarResolver vr = new VarResolverBuilder().vars(SwitchVar.class, SystemPropertiesVar.class).build();
+
+ System.setProperty("SwitchVarTest.test", "foobar");
+
+ assertEquals("YES", vr.resolve("$SW{$S{SwitchVarTest.test},foobar,YES}"));
+ assertEquals("YES", vr.resolve("$SW{ $S{ SwitchVarTest.test } , foobar , YES }"));
+ assertEquals("", vr.resolve("$SW{$S{SwitchVarTest.test},foobar2,YES}"));
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},foobar2,YES,NO}"));
+ assertEquals("NO", vr.resolve("$SW{ $S{ SwitchVarTest.test } , foobar2 , YES , NO }"));
+
+ assertEquals("YES", vr.resolve("$SW{$S{SwitchVarTest.test},foo*,YES,NO}"));
+ assertEquals("YES", vr.resolve("$SW{$S{SwitchVarTest.test},*bar,YES,NO}"));
+ assertEquals("YES", vr.resolve("$SW{$S{SwitchVarTest.test},*,YES,NO}"));
+ assertEquals("YES", vr.resolve("$SW{$S{SwitchVarTest.test},??????,YES,NO}"));
+
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},foox*,YES,NO}"));
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},*xbar,YES,NO}"));
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},?????,YES,NO}"));
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},???????,YES,NO}"));
+
+ assertEquals("YES2", vr.resolve("$SW{$S{SwitchVarTest.test},foox*,YES1,foo*,YES2}"));
+ assertEquals("YES2", vr.resolve("$SW{$S{SwitchVarTest.test},foox*,YES1,foo*,YES2,NO}"));
+
+ assertEquals("NO", vr.resolve("$SW{$S{SwitchVarTest.test},foox*,YES1,fooy*,YES2,NO}"));
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ABean.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ABean.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ABean.java
new file mode 100644
index 0000000..aa6a724
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ABean.java
@@ -0,0 +1,24 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+public class ABean {
+ public int a;
+ public String b;
+
+ public ABean init() {
+ this.a = 1;
+ this.b = "foo";
+ return this;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/Constants.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/Constants.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/Constants.java
new file mode 100644
index 0000000..ccfef31
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/Constants.java
@@ -0,0 +1,25 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+/**
+ * Description.
+ * <p>
+ *
+ * @author James Bognar (james.bognar@salesforce.com)
+ */
+public class Constants {
+
+ public static final String SWAP = "swap-~!@#$%^&*()_+`-={}[]|:;\"<,>.?/";
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ImplicitSwappedPojo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ImplicitSwappedPojo.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ImplicitSwappedPojo.java
new file mode 100644
index 0000000..cd1bc0d
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/ImplicitSwappedPojo.java
@@ -0,0 +1,35 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+import static org.apache.juneau.test.pojos.Constants.*;
+
+import org.apache.juneau.annotation.*;
+
+@BeanIgnore
+public class ImplicitSwappedPojo {
+ public boolean wasUnswapped;
+
+ @Override
+ public String toString() {
+ return SWAP;
+ }
+
+ public ImplicitSwappedPojo() {}
+
+
+ public ImplicitSwappedPojo(String fromString) {
+ if (fromString.equals(SWAP))
+ wasUnswapped = true;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojo.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojo.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojo.java
new file mode 100644
index 0000000..605fd25
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojo.java
@@ -0,0 +1,20 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+import org.apache.juneau.annotation.*;
+
+@Pojo(swap=SwappedPojoSwap.class)
+public class SwappedPojo {
+ public boolean wasUnswapped;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojoSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojoSwap.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojoSwap.java
new file mode 100644
index 0000000..950b754
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/SwappedPojoSwap.java
@@ -0,0 +1,35 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+import static org.apache.juneau.test.pojos.Constants.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.transform.*;
+
+public class SwappedPojoSwap extends PojoSwap<SwappedPojo,String> {
+ @Override
+ public String swap(BeanSession session, SwappedPojo c) throws SerializeException {
+ return SWAP;
+ }
+
+ @Override
+ public SwappedPojo unswap(BeanSession session, String f, ClassMeta<?> hint) throws ParseException {
+ SwappedPojo c = new SwappedPojo();
+ if (f.equals(SWAP))
+ c.wasUnswapped = true;
+ return c;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TestEnum.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TestEnum.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TestEnum.java
new file mode 100644
index 0000000..63368a4
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TestEnum.java
@@ -0,0 +1,17 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+public enum TestEnum {
+ ONE,TWO,THREE
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBean.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBean.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBean.java
new file mode 100644
index 0000000..2a50d98
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBean.java
@@ -0,0 +1,17 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+@org.apache.juneau.annotation.Bean(beanDictionary={TypedBeanImpl.class})
+public interface TypedBean {
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBeanImpl.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBeanImpl.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBeanImpl.java
new file mode 100644
index 0000000..7b00644
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/test/pojos/TypedBeanImpl.java
@@ -0,0 +1,25 @@
+// ***************************************************************************************************************************
+// * 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.juneau.test.pojos;
+
+@org.apache.juneau.annotation.Bean(typeName="TypedBeanImpl", sort=true)
+public class TypedBeanImpl implements TypedBean {
+ public int a;
+ public String b;
+
+ public TypedBeanImpl init() {
+ this.a = 1;
+ this.b = "foo";
+ return this;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveAtomicObjectsBean.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveAtomicObjectsBean.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveAtomicObjectsBean.java
new file mode 100755
index 0000000..324a44f
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveAtomicObjectsBean.java
@@ -0,0 +1,74 @@
+// ***************************************************************************************************************************
+// * 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.juneau.testbeans;
+
+import java.util.*;
+import java.util.concurrent.atomic.*;
+
+import org.apache.juneau.utils.*;
+
+/**
+ * Test bean fields of type AtomicInteger and AtomicLong.
+ * Note that Jena parsers cannot handle these types, so we only test non-Jena parsers.
+ */
+@SuppressWarnings({"javadoc"})
+public class PrimitiveAtomicObjectsBean {
+
+ // primitive objects
+ public AtomicInteger poAtomicInteger;
+ public AtomicLong poAtomicLong;
+
+ // uninitialized primitive objects
+ public AtomicInteger pouAtomicInteger;
+ public AtomicLong pouAtomicLong;
+
+ // primitive object arrays
+ public AtomicInteger[][] poaAtomicInteger;
+ public AtomicLong[][] poaAtomicLong;
+
+ // primitive object arrays
+ public AtomicInteger[][] poauAtomicInteger;
+ public AtomicLong[][] poauAtomicLong;
+
+ // Anonymous list of primitives (types not erased on objects
+ public List<AtomicInteger[]> poalAtomicInteger;
+ public List<AtomicLong[]> poalAtomicLong;
+
+ // Regular list of primitives (types erased on objects)
+ public List<AtomicInteger[]> polAtomicInteger;
+ public List<AtomicLong[]> polAtomicLong;
+
+ public PrimitiveAtomicObjectsBean init() {
+ // primitive objects
+ poAtomicInteger = new AtomicInteger(1);
+ poAtomicLong = new AtomicLong(2);
+
+ // primitive object arrays
+ poaAtomicInteger = new AtomicInteger[][]{{new AtomicInteger(1)}, {new AtomicInteger(2)}, null};
+ poaAtomicLong = new AtomicLong[][]{{new AtomicLong(1)}, {new AtomicLong(2)}, null};
+
+ // Anonymous list of primitives
+ poalAtomicInteger = new AList<AtomicInteger[]>().append(new AtomicInteger[]{new AtomicInteger(1)}).append(null);
+ poalAtomicLong = new AList<AtomicLong[]>().append(new AtomicLong[]{new AtomicLong(1)}).append(null);
+
+ // Regular list of primitives
+ polAtomicInteger = new ArrayList<AtomicInteger[]>();
+ polAtomicInteger.add(new AtomicInteger[]{new AtomicInteger(1)});
+ polAtomicInteger.add(null);
+ polAtomicLong = new ArrayList<AtomicLong[]>();
+ polAtomicLong.add(new AtomicLong[]{new AtomicLong(1)});
+ polAtomicLong.add(null);
+
+ return this;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveObjectsBean.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveObjectsBean.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveObjectsBean.java
new file mode 100755
index 0000000..9eacaa6
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/PrimitiveObjectsBean.java
@@ -0,0 +1,178 @@
+// ***************************************************************************************************************************
+// * 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.juneau.testbeans;
+
+import java.math.*;
+import java.util.*;
+
+import org.apache.juneau.utils.*;
+
+@SuppressWarnings({"javadoc"})
+public class PrimitiveObjectsBean {
+
+ // primitive objects
+ public Boolean poBoolean;
+ public Byte poByte;
+ public Character poChar;
+ public Short poShort;
+ public Integer poInt;
+ public Long poLong;
+ public Float poFloat;
+ public Double poDouble;
+ public Number poNumber;
+ public BigInteger poBigInteger;
+ public BigDecimal poBigDecimal;
+
+ // uninitialized primitive objects
+ public Boolean pouBoolean;
+ public Byte pouByte;
+ public Character pouChar;
+ public Short pouShort;
+ public Integer pouInt;
+ public Long pouLong;
+ public Float pouFloat;
+ public Double pouDouble;
+ public Number pouNumber;
+ public BigInteger pouBigInteger;
+ public BigDecimal pouBigDecimal;
+
+ // primitive object arrays
+ public Boolean[][] poaBoolean;
+ public Byte[][] poaByte;
+ public Character[][] poaChar;
+ public Short[][] poaShort;
+ public Integer[][] poaInt;
+ public Long[][] poaLong;
+ public Float[][] poaFloat;
+ public Double[][] poaDouble;
+ public Number[][] poaNumber;
+ public BigInteger[][] poaBigInteger;
+ public BigDecimal[][] poaBigDecimal;
+
+ // primitive object arrays
+ public Boolean[][] poauBoolean;
+ public Byte[][] poauByte;
+ public Character[][] poauChar;
+ public Short[][] poauShort;
+ public Integer[][] poauInt;
+ public Long[][] poauLong;
+ public Float[][] poauFloat;
+ public Double[][] poauDouble;
+ public Number[][] poauNumber;
+ public BigInteger[][] poauBigInteger;
+ public BigDecimal[][] poauBigDecimal;
+
+ // Anonymous list of primitives (types not erased on objects
+ public List<Boolean[]> poalBoolean;
+ public List<Byte[]> poalByte;
+ public List<Character[]> poalChar;
+ public List<Short[]> poalShort;
+ public List<Integer[]> poalInt;
+ public List<Long[]> poalLong;
+ public List<Float[]> poalFloat;
+ public List<Double[]> poalDouble;
+ public List<Number[]> poalNumber;
+ public List<BigInteger[]> poalBigInteger;
+ public List<BigDecimal[]> poalBigDecimal;
+
+ // Regular list of primitives (types erased on objects)
+ public List<Boolean[]> polBoolean;
+ public List<Byte[]> polByte;
+ public List<Character[]> polChar;
+ public List<Short[]> polShort;
+ public List<Integer[]> polInt;
+ public List<Long[]> polLong;
+ public List<Float[]> polFloat;
+ public List<Double[]> polDouble;
+ public List<Number[]> polNumber;
+ public List<BigInteger[]> polBigInteger;
+ public List<BigDecimal[]> polBigDecimal;
+
+ public PrimitiveObjectsBean init() {
+ // primitive objects
+ poBoolean = true;
+ poByte = 1;
+ poChar = 'a';
+ poShort = 2;
+ poInt = 3;
+ poLong = 4l;
+ poFloat = 5f;
+ poDouble = 6d;
+ poNumber = 7;
+ poBigInteger = new BigInteger("8");
+ poBigDecimal = new BigDecimal("9");
+
+ // primitive object arrays
+ poaBoolean = new Boolean[][]{{true},{false},null};
+ poaByte = new Byte[][]{{1},{2},null};
+ poaChar = new Character[][]{{'a'},{'b'},null};
+ poaShort = new Short[][]{{1},{2},null};
+ poaInt = new Integer[][]{{1},{2},null};
+ poaLong = new Long[][]{{1l},{2l},null};
+ poaFloat = new Float[][]{{1f},{2f},null};
+ poaDouble = new Double[][]{{1d},{2d},null};
+ poaNumber = new Number[][]{{1},{2},null};
+ poaBigInteger = new BigInteger[][]{{new BigInteger("1")}, {new BigInteger("2")}, null};
+ poaBigDecimal = new BigDecimal[][]{{new BigDecimal("1")}, {new BigDecimal("2")}, null};
+
+ // Anonymous list of primitives
+ poalBoolean = new AList<Boolean[]>().append(new Boolean[]{Boolean.TRUE}).append(null);
+ poalByte = new AList<Byte[]>().append(new Byte[]{1}).append(null);
+ poalChar = new AList<Character[]>().append(new Character[]{'a'}).append(null);
+ poalShort = new AList<Short[]>().append(new Short[]{1}).append(null);
+ poalInt = new AList<Integer[]>().append(new Integer[]{1}).append(null);
+ poalLong = new AList<Long[]>().append(new Long[]{1l}).append(null);
+ poalFloat = new AList<Float[]>().append(new Float[]{1f}).append(null);
+ poalDouble = new AList<Double[]>().append(new Double[]{1d}).append(null);
+ poalNumber = new AList<Number[]>().append(new Integer[]{1}).append(null);
+ poalBigInteger = new AList<BigInteger[]>().append(new BigInteger[]{new BigInteger("1")}).append(null);
+ poalBigDecimal = new AList<BigDecimal[]>().append(new BigDecimal[]{new BigDecimal("1")}).append(null);
+
+ // Regular list of primitives
+ polBoolean = new ArrayList<Boolean[]>();
+ polBoolean.add(new Boolean[]{Boolean.TRUE});
+ polBoolean.add(null);
+ polByte = new ArrayList<Byte[]>();
+ polByte.add(new Byte[]{1});
+ polByte.add(null);
+ polChar = new ArrayList<Character[]>();
+ polChar.add(new Character[]{'a'});
+ polChar.add(null);
+ polShort = new ArrayList<Short[]>();
+ polShort.add(new Short[]{1});
+ polShort.add(null);
+ polInt = new ArrayList<Integer[]>();
+ polInt.add(new Integer[]{1});
+ polInt.add(null);
+ polLong = new ArrayList<Long[]>();
+ polLong.add(new Long[]{1l});
+ polLong.add(null);
+ polFloat = new ArrayList<Float[]>();
+ polFloat.add(new Float[]{1f});
+ polFloat.add(null);
+ polDouble = new ArrayList<Double[]>();
+ polDouble.add(new Double[]{1d});
+ polDouble.add(null);
+ polNumber = new ArrayList<Number[]>();
+ polNumber.add(new Number[]{1});
+ polNumber.add(null);
+ polBigInteger = new ArrayList<BigInteger[]>();
+ polBigInteger.add(new BigInteger[]{new BigInteger("1")});
+ polBigInteger.add(null);
+ polBigDecimal = new ArrayList<BigDecimal[]>();
+ polBigDecimal.add(new BigDecimal[]{new BigDecimal("1")});
+ polBigDecimal.add(null);
+
+ return this;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/TestURI.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/TestURI.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/TestURI.java
new file mode 100755
index 0000000..b257cb5
--- /dev/null
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testbeans/TestURI.java
@@ -0,0 +1,70 @@
+// ***************************************************************************************************************************
+// * 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.juneau.testbeans;
+
+import java.net.*;
+import java.net.URI;
+
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.jena.annotation.*;
+import org.apache.juneau.xml.annotation.*;
+
+@SuppressWarnings("javadoc")
+@Bean(sort=true)
+public class TestURI {
+ @org.apache.juneau.annotation.URI
+ @Rdf(beanUri=true)
+ @Xml(format=XmlFormat.ATTR)
+ public String f0 = "f0/x0";
+
+ public URI f1, f2, f3;
+
+ @org.apache.juneau.annotation.URI
+ public String f4, f5, f6;
+
+ public URL f7;
+
+ public TestURIb f8;
+
+ public String fa, fb, fc, fd, fe;
+
+ @org.apache.juneau.annotation.URI
+ public String getF9() {
+ return "f9/x9";
+ }
+
+ public TestURI() throws Exception {
+ f1 = new URI("f1/x1");
+ f2 = new URI("/f2/x2");
+ f3 = new URI("http://www.apache.org/f3/x3");
+ f4 = "f4/x4";
+ f5 = "/f5/x5";
+ f6 = "http://www.apache.org/f6/x6";
+ f7 = new URL("http://www.apache.org/f7/x7");
+ f8 = new TestURIb();
+ fa = "http://www.apache.org/fa/xa#MY_LABEL";
+ fb = "http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar";
+ fc = "http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL";
+ fd = "http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar";
+ fe = "http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL";
+ }
+
+ @org.apache.juneau.annotation.URI
+ public static class TestURIb {
+ @Override /* Object */
+ public String toString() {
+ return "f8/x8";
+ }
+ }
+}
+