http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java new file mode 100644 index 0000000..c77ea1f --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java @@ -0,0 +1,30 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc + */ +public interface Account +{ + Property<String> number(); +}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java new file mode 100644 index 0000000..3a24972 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; +import org.apache.polygene.api.value.ValueComposite; + +public interface Address extends ValueComposite // necessary, @See POLYGENE-137 +{ + Property<String> line1(); + + Property<String> line2(); + + Property<String> zipcode(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java new file mode 100644 index 0000000..f8dbf25 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java @@ -0,0 +1,27 @@ +/* + * 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.polygene.test.model; + +/** + * JAVADOC Add JavaDoc + */ +public interface Alive +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java new file mode 100644 index 0000000..5d0aef9 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java @@ -0,0 +1,27 @@ +/* + * 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.polygene.test.model; + +/** + * JAVADOC Add JavaDoc + */ +public interface Cat extends Pet +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java new file mode 100644 index 0000000..57c2aa9 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc + */ +public interface City extends Nameable +{ + Property<String> country(); + + Property<String> county(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java new file mode 100644 index 0000000..3448aa4 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java @@ -0,0 +1,27 @@ +/* + * 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.polygene.test.model; + +/** + * JAVADOC Add JavaDoc + */ +public interface Dog extends Pet +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java new file mode 100644 index 0000000..09536d5 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java @@ -0,0 +1,30 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc + */ +public interface Domain extends Nameable +{ + Property<String> description(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java new file mode 100644 index 0000000..dcffeec --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.association.Association; +import org.apache.polygene.api.common.Optional; + +/** + * JAVADOC Add JavaDoc + */ +public interface Female extends Person +{ + @Optional + Association<Male> husband(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java new file mode 100644 index 0000000..8897059 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.entity.Queryable; +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +@Queryable( false ) +public interface File +{ + Property<String> value(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java new file mode 100644 index 0000000..cf9b428 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java @@ -0,0 +1,30 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +public interface Host +{ + Property<String> value(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java new file mode 100644 index 0000000..5a676e8 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.association.Association; +import org.apache.polygene.api.common.Optional; + +/** + * JAVADOC Add JavaDoc + */ +public interface Male extends Person +{ + @Optional + Association<Female> wife(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java new file mode 100644 index 0000000..43914ac --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java @@ -0,0 +1,31 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.identity.HasIdentity; +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc + */ +public interface Nameable extends HasIdentity +{ + Property<String> name(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java new file mode 100644 index 0000000..a783955 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.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.polygene.test.model; + +public interface Owner extends Person +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java new file mode 100644 index 0000000..7646928 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java @@ -0,0 +1,99 @@ +/* + * 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.polygene.test.model; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZonedDateTime; +import java.util.Map; +import org.apache.polygene.api.association.Association; +import org.apache.polygene.api.association.ManyAssociation; +import org.apache.polygene.api.association.NamedAssociation; +import org.apache.polygene.api.common.Optional; +import org.apache.polygene.api.entity.Queryable; +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc + */ +public interface Person + extends Nameable, Alive +{ + enum Title + { + MR, MS, MRS, DR + } + + Property<Title> title(); + + @Optional + Association<City> placeOfBirth(); + + Property<Integer> yearOfBirth(); + + @Optional + Property<Address> address(); + + @Optional + Association<Female> mother(); + + @Optional + Association<Male> father(); + + ManyAssociation<Domain> interests(); + + @Optional + Property<String> email(); + + @Optional + Property<URL> personalWebsite(); + + @Queryable( false ) + Property<String> password(); + + @Optional + Association<Account> mainAccount(); + + NamedAssociation<Account> accounts(); + + @Optional + Property<Map<String, String>> additionalInfo(); + + @Optional + Property<BigInteger> bigInteger(); + + @Optional + Property<BigDecimal> bigDecimal(); + + @Optional + Property<Instant> instantValue(); + + @Optional + Property<ZonedDateTime> dateTimeValue(); + + @Optional + Property<LocalDateTime> localDateTimeValue(); + + @Optional + Property<LocalDate> localDateValue(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java new file mode 100644 index 0000000..77839f9 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java @@ -0,0 +1,28 @@ +/* + * 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.polygene.test.model; + +/** + * JAVADOC Add JavaDoc + */ +public interface Pet + extends Nameable, Alive +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java new file mode 100644 index 0000000..b50ad45 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java @@ -0,0 +1,31 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.association.Association; +import org.apache.polygene.api.association.ManyAssociation; +import org.apache.polygene.api.property.Property; + +public interface PetShop +{ + Property<Address> address(); + Association<City> city(); + ManyAssociation<Owner> owners(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java new file mode 100644 index 0000000..f0f6bd7 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.entity.Queryable; +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +public interface Port +{ + @Queryable( false ) + Property<Integer> value(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java new file mode 100644 index 0000000..3466c9c --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java @@ -0,0 +1,30 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +public interface Protocol +{ + Property<String> value(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java new file mode 100644 index 0000000..c079f75 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java @@ -0,0 +1,32 @@ +/* + * 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.polygene.test.model; + +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +public interface QueryParam +{ + Property<String> name(); + + Property<String> value(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java new file mode 100644 index 0000000..c41b0f4 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.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.polygene.test.model; + +public interface Staff extends Person +{ +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java new file mode 100644 index 0000000..dfc5e10 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.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.polygene.test.model; + +import java.util.Collection; +import org.apache.polygene.api.common.Optional; +import org.apache.polygene.api.entity.Queryable; +import org.apache.polygene.api.property.Property; + +/** + * JAVADOC Add JavaDoc. + */ +public interface URL +{ + Property<Protocol> protocol(); + + @Optional + @Queryable( false ) + Property<Host> host(); + + @Optional + Property<Port> port(); + + @Optional + Property<File> file(); + + @Optional + Property<Collection<QueryParam>> queryParams(); +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java new file mode 100644 index 0000000..045b621 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java @@ -0,0 +1,65 @@ +/* + * 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.polygene.test.model.assembly; + +import java.lang.reflect.InvocationTargetException; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; + +class AccessLayer extends LayeredLayerAssembler +{ + + private final Class<?> testClass; + + AccessLayer( Class<?> testClass ) + { + this.testClass = testClass; + } + + @Override + public LayerAssembly assemble( LayerAssembly layer ) + throws AssemblyException + { + createModule( layer, TestExecutionModule.class ); + createModule( layer, TestSuite1Module.class ); + createModule( layer, TestSuite2Module.class ); + createModule( layer, TestSuite3Module.class ); + return layer; + } + + @Override + protected ModuleAssembler instantiateAssembler( LayerAssembly layer, + Class<? extends ModuleAssembler> moduleAssemblerClass + ) + throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException + { + if( moduleAssemblerClass.equals(TestExecutionModule.class)) + { + return new TestExecutionModule( testClass ); + } + else + { + return super.instantiateAssembler( layer, moduleAssemblerClass ); + } + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java new file mode 100644 index 0000000..eec1885 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java @@ -0,0 +1,50 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.test.model.Account; +import org.apache.polygene.test.model.Domain; +import org.apache.polygene.test.model.File; +import org.apache.polygene.test.model.Host; +import org.apache.polygene.test.model.Port; +import org.apache.polygene.test.model.Protocol; +import org.apache.polygene.test.model.QueryParam; +import org.apache.polygene.test.model.URL; + +class AccountModule + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.entities( Account.class, Domain.class ).visibleIn( Visibility.layer ); + module.values( File.class, Host.class, Port.class, Protocol.class, QueryParam.class, URL.class ) + .visibleIn( Visibility.layer ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java new file mode 100644 index 0000000..e793455 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java @@ -0,0 +1,71 @@ +/* + * 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.polygene.test.model.assembly; + +import java.lang.reflect.InvocationTargetException; +import org.apache.polygene.api.structure.Application; +import org.apache.polygene.bootstrap.ApplicationAssembly; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.IllegalLayerAssemblerException; +import org.apache.polygene.bootstrap.layered.LayerAssembler; +import org.apache.polygene.bootstrap.layered.LayeredApplicationAssembler; + +public class ApplicationAssembler extends LayeredApplicationAssembler +{ + + private final Class<?> testClass; + + public ApplicationAssembler( String name, String version, Application.Mode mode, Class<?> testClass ) + throws AssemblyException + { + super( name, version, mode ); + this.testClass = testClass; + } + + @Override + protected void assembleLayers( ApplicationAssembly assembly ) + throws AssemblyException + { + LayerAssembly accessLayer = createLayer( AccessLayer.class ); + LayerAssembly domainLayer = createLayer( DomainLayer.class ); + LayerAssembly persistenceLayer = createLayer( PersistenceLayer.class ); + LayerAssembly indexingLayer = createLayer( IndexingLayer.class ); + LayerAssembly configLayer = createLayer( ConfigLayer.class ); + accessLayer.uses( domainLayer ); + domainLayer.uses( persistenceLayer, indexingLayer ); + persistenceLayer.uses( configLayer ); + indexingLayer.uses( configLayer ); + } + + @Override + protected <T extends LayerAssembler> LayerAssembler instantiateLayerAssembler( Class<T> layerAssemblerClass, + LayerAssembly layer + ) + throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalLayerAssemblerException + { + if( layerAssemblerClass.equals( AccessLayer.class )) + { + return new AccessLayer( testClass ); + } + return super.instantiateLayerAssembler( layerAssemblerClass, layer ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java new file mode 100644 index 0000000..2413ea3 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java @@ -0,0 +1,37 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler; + +class ConfigLayer extends LayeredLayerAssembler +{ + + @Override + public LayerAssembly assemble( LayerAssembly layer ) + throws AssemblyException + { + createModule( layer, ConfigModule.class ); + return layer; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java new file mode 100644 index 0000000..6c7c52e --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java @@ -0,0 +1,41 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.entitystore.memory.MemoryEntityStoreService; + +class ConfigModule + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java new file mode 100644 index 0000000..3754fd8 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java @@ -0,0 +1,39 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler; + +class DomainLayer extends LayeredLayerAssembler +{ + + @Override + public LayerAssembly assemble( LayerAssembly layer ) + throws AssemblyException + { + createModule( layer, PetShopModule.class ); + createModule( layer, FamilyModule.class ); + createModule( layer, AccountModule.class ); + return layer; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java new file mode 100644 index 0000000..42054a7 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java @@ -0,0 +1,52 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.test.model.Address; +import org.apache.polygene.test.model.Cat; +import org.apache.polygene.test.model.City; +import org.apache.polygene.test.model.Dog; +import org.apache.polygene.test.model.Female; +import org.apache.polygene.test.model.Male; + +class FamilyModule + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.entities( Male.class, + Female.class, + City.class, + Cat.class, + Dog.class ).visibleIn( Visibility.application ); + + module.values( Address.class ).visibleIn( Visibility.application ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java new file mode 100644 index 0000000..b0b5b87 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java @@ -0,0 +1,38 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler; +import org.apache.polygene.test.indexing.layered.AbstractMultiLayeredIndexingTest; + +class IndexingLayer extends LayeredLayerAssembler +{ + + @Override + public LayerAssembly assemble( LayerAssembly layer ) + throws AssemblyException + { + createModule( layer, AbstractMultiLayeredIndexingTest.indexingAssembler ); + return layer; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java new file mode 100644 index 0000000..26e69ab --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java @@ -0,0 +1,37 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler; + +class PersistenceLayer extends LayeredLayerAssembler +{ + + @Override + public LayerAssembly assemble( LayerAssembly layer ) + throws AssemblyException + { + createModule( layer, PersistenceModule.class ); + return layer; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java new file mode 100644 index 0000000..a19631f --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java @@ -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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.value.ValueSerialization; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.entitystore.memory.MemoryEntityStoreService; +import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationService; + +class PersistenceModule + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON ); + module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java new file mode 100644 index 0000000..40fae45 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java @@ -0,0 +1,51 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.test.model.Address; +import org.apache.polygene.test.model.Cat; +import org.apache.polygene.test.model.City; +import org.apache.polygene.test.model.Dog; +import org.apache.polygene.test.model.Owner; +import org.apache.polygene.test.model.Staff; + +class PetShopModule + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.entities( Owner.class, + Staff.class ); + module.entities( City.class, + Cat.class, + Dog.class ); + + module.values( Address.class ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java new file mode 100644 index 0000000..09dd396 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; + +public class TestExecutionModule + implements ModuleAssembler +{ + private final Class<?> testClass; + + public TestExecutionModule( Class<?> testClass) + { + this.testClass = testClass; + } + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + module.objects( testClass ).visibleIn( Visibility.layer ); + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java new file mode 100644 index 0000000..ff2fa08 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.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.polygene.test.model.assembly; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; +import org.apache.polygene.test.indexing.layered.Suite1Case1; +import org.apache.polygene.test.indexing.layered.Suite1Case2; +import org.apache.polygene.test.indexing.layered.TestCase; + +class TestSuite1Module + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + declareTestCase( module, Suite1Case1.class ); + declareTestCase( module, Suite1Case2.class ); + return module; + } + + private void declareTestCase( ModuleAssembly module, Class<?> testcaseMixin ) + { + module.services( TestCase.class ) + .withMixins( testcaseMixin ) + .visibleIn( Visibility.layer ) + .taggedWith( testcaseMixin.getSimpleName() ); + + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java new file mode 100644 index 0000000..cae05ac --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java @@ -0,0 +1,38 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; + +class TestSuite2Module + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java new file mode 100644 index 0000000..369cbba --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java @@ -0,0 +1,38 @@ +/* + * 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.polygene.test.model.assembly; + +import org.apache.polygene.bootstrap.AssemblyException; +import org.apache.polygene.bootstrap.LayerAssembly; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.bootstrap.layered.ModuleAssembler; + +class TestSuite3Module + implements ModuleAssembler +{ + + @Override + public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module ) + throws AssemblyException + { + return module; + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html b/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html new file mode 100644 index 0000000..f006a94 --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html @@ -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. + ~ + ~ + --> +<html> + <body> + <h2>Index/Query SPI Test Support - Model.</h2> + </body> +</html> http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java b/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java index af97dc9..7194340 100644 --- a/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java +++ b/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java @@ -38,7 +38,7 @@ public class CassandraMapEntityStoreTest extends AbstractEntityStoreTest { @ClassRule - public static final DockerRule DOCKER = new DockerRule( "cassandra", 9042 ); + public static final DockerRule DOCKER = new DockerRule( "cassandra", "Starting listening for CQL clients" ); @Override // START SNIPPET: assembly @@ -60,6 +60,7 @@ public class CassandraMapEntityStoreTest CassandraEntityStoreConfiguration cassandraConfig = config.forMixin( CassandraEntityStoreConfiguration.class ).declareDefaults(); String host = DOCKER.getDockerHost(); int port = DOCKER.getExposedContainerPort( "9042/tcp" ); + System.out.println("Cassandra: " + host + ":" + port); cassandraConfig.hostnames().set( host + ':' + port ); cassandraConfig.createIfMissing().set( true ); // START SNIPPET: assembly http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java index f375b02..6b30854 100644 --- a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java +++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java @@ -31,7 +31,7 @@ import org.junit.ClassRule; public class JCloudsS3Test extends AbstractEntityStoreTest { @ClassRule - public static final DockerRule DOCKER = new DockerRule( "s3server", 8000 ); + public static final DockerRule DOCKER = new DockerRule( "s3server", "server started" ); @Override public void assemble( ModuleAssembly module ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java index 54a8f81..67904db 100644 --- a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java +++ b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java @@ -30,7 +30,7 @@ import org.junit.ClassRule; public class RiakMapEntityStoreTest extends AbstractEntityStoreTest { @ClassRule - public static final DockerRule DOCKER = new DockerRule( "riak", 8087 ); + public static final DockerRule DOCKER = new DockerRule( "riak","riak_auth_mods started on node"); private RiakFixture riakFixture; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java index 85946cd..99cf561 100644 --- a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java +++ b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java @@ -33,7 +33,7 @@ import org.junit.ClassRule; public class RiakMapEntityStoreWithCacheTest extends AbstractEntityStoreWithCacheTest { @ClassRule - public static final DockerRule DOCKER = new DockerRule( "riak", 8087 ); + public static final DockerRule DOCKER = new DockerRule( "riak","riak_auth_mods started on node"); private RiakFixture riakFixture; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/build.gradle ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/build.gradle b/extensions/entitystore-sql/build.gradle index ee99f52..e481c85 100644 --- a/extensions/entitystore-sql/build.gradle +++ b/extensions/entitystore-sql/build.gradle @@ -39,6 +39,7 @@ dependencies { testImplementation polygene.library( 'sql-dbcp' ) testImplementation polygene.extension( 'valueserialization-orgjson' ) testImplementation libraries.derby // Needed at compile time for polite test shutdown + testImplementation libraries.docker_junit testRuntimeOnly libraries.logback testRuntimeOnly libraries.h2 http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java index 0718ddb..9789ac9 100644 --- a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java @@ -52,7 +52,8 @@ public class MySQLEntityStoreTest put( "MYSQL_DATABASE", "jdbc_test_db" ); put( "MYSQL_ROOT_HOST", "172.17.0.1" ); }}, - 3306 + 30000L +// , "mysqld: ready for connections" TODO: add this after next release of tdomzal/junit-docker-rule ); @Override http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java index 49d5a13..8e32261 100644 --- a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java @@ -77,7 +77,7 @@ public class PostgreSQLEntityStoreTest extends AbstractEntityStoreTest { @ClassRule - public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 ); + public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." ); @Override // START SNIPPET: assembly
