From b723741bfd071077c50d998131af1417c4371c26 Mon Sep 17 00:00:00 2001 From: "Thiruvalluvan M. G" Date: Sun, 29 Jun 2014 18:00:05 +0000 Subject: [PATCH 01/23] AVRO-1474. C++ resolvind decoder doesn't work when reader schema has more fields than writer schema git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1606545 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 + lang/c++/.gitignore | 6 +- lang/c++/CMakeLists.txt | 27 +- lang/c++/api/Generic.hh | 484 +-------------------- lang/c++/api/GenericDatum.hh | 504 ++++++++++++++++++++++ lang/c++/api/Node.hh | 4 + lang/c++/api/NodeImpl.hh | 40 +- lang/c++/api/Stream.hh | 7 + lang/c++/build.sh | 1 - lang/c++/examples/cpx.hh | 1 - lang/c++/impl/Compiler.cc | 200 ++++++++- lang/c++/impl/Generic.cc | 79 +--- lang/c++/impl/GenericDatum.cc | 101 +++++ lang/c++/impl/Stream.cc | 18 + lang/c++/impl/avrogencpp.cc | 19 +- lang/c++/impl/parsing/ResolvingDecoder.cc | 143 ++++-- lang/c++/impl/parsing/Symbol.cc | 3 +- lang/c++/impl/parsing/Symbol.hh | 76 +++- lang/c++/impl/parsing/ValidatingCodec.cc | 3 +- lang/c++/jsonschemas/bigrecord | 7 + lang/c++/jsonschemas/bigrecord_r | 166 +++++++ lang/c++/test/AvrogencppTests.cc | 57 ++- lang/c++/test/CodecTests.cc | 55 ++- 23 files changed, 1335 insertions(+), 668 deletions(-) create mode 100644 lang/c++/api/GenericDatum.hh create mode 100644 lang/c++/impl/GenericDatum.cc create mode 100644 lang/c++/jsonschemas/bigrecord_r diff --git a/CHANGES.txt b/CHANGES.txt index db3e889d..71dcdfd0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -20,6 +20,8 @@ Trunk (not yet released) AVRO-1522. Java: Add support for compression codecs to SortedKeyValueFile. (Steven Willis via cutting) + AVRO-1474. C++ resolvind decoder doesn't work when reader schema has more fields than writer schema. (thiru with help from Ramana Suvarapu) + OPTIMIZATIONS AVRO-1455. Deep copy does not need to create new instances for primitives. diff --git a/lang/c++/.gitignore b/lang/c++/.gitignore index 9a0682e5..091cd7f5 100644 --- a/lang/c++/.gitignore +++ b/lang/c++/.gitignore @@ -1,6 +1,2 @@ -.svn/ build/ -build.win/ -doc/ -m4/ -test.avro +build.mac/ diff --git a/lang/c++/CMakeLists.txt b/lang/c++/CMakeLists.txt index 81609430..fc54a71e 100644 --- a/lang/c++/CMakeLists.txt +++ b/lang/c++/CMakeLists.txt @@ -42,6 +42,7 @@ add_definitions ( -DBOOST_REGEX_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK + -DBOOST_IOSTREAMS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_ALL_NO_LIB) endif() @@ -64,7 +65,7 @@ set (AVRO_SOURCE_FILES impl/Types.cc impl/ValidSchema.cc impl/Zigzag.cc impl/BinaryEncoder.cc impl/BinaryDecoder.cc impl/Stream.cc impl/FileStream.cc - impl/Generic.cc + impl/Generic.cc impl/GenericDatum.cc impl/DataFile.cc impl/parsing/Symbol.cc impl/parsing/ValidatingCodec.cc @@ -97,21 +98,6 @@ add_executable (precompile test/precompile.cc) target_link_libraries (precompile avrocpp_s ${Boost_LIBRARIES}) -macro (gencpp file ns) - add_custom_command (OUTPUT ${ns}.hh - COMMAND precompile ${CMAKE_CURRENT_SOURCE_DIR}/jsonschemas/${file} - ${file} - COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/gen-cppcode.py - -n ${ns} -i ${file} -o ${ns}.hh - DEPENDS precompile ${CMAKE_CURRENT_SOURCE_DIR}/jsonschemas/${file}) - add_custom_target(${ns} DEPENDS ${ns}.hh) -endmacro (gencpp) - -if (CYGWIN OR NOT WIN32) - gencpp (bigrecord testgen) - gencpp (bigrecord2 testgen2) -endif () - macro (gen file ns) add_custom_command (OUTPUT ${file}.hh COMMAND avrogencpp @@ -124,6 +110,7 @@ endmacro (gen) gen (empty_record empty) gen (bigrecord testgen) +gen (bigrecord_r testgen_r) gen (bigrecord2 testgen2) gen (tweet testgen3) gen (union_array_union uau) @@ -156,12 +143,8 @@ unittest (DataFileTests) unittest (JsonTests) unittest (AvrogencppTests) -if (CYGWIN OR NOT WIN32) - unittest (testgentest) - add_dependencies (testgentest testgen testgen2) -endif() - -add_dependencies (AvrogencppTests bigrecord_hh bigrecord2_hh tweet_hh +add_dependencies (AvrogencppTests bigrecord_hh bigrecord_r_hh bigrecord2_hh + tweet_hh union_array_union_hh union_map_union_hh union_conflict_hh recursive_hh reuse_hh circulardep_hh empty_record_hh) diff --git a/lang/c++/api/Generic.hh b/lang/c++/api/Generic.hh index 4edbb8a6..ae6cb09e 100644 --- a/lang/c++/api/Generic.hh +++ b/lang/c++/api/Generic.hh @@ -19,470 +19,15 @@ #ifndef avro_Generic_hh__ #define avro_Generic_hh__ -#include -#include -#include - -#include #include #include "Config.hh" -#include "Node.hh" #include "Types.hh" #include "Encoder.hh" #include "Decoder.hh" -#include "ValidSchema.hh" +#include "GenericDatum.hh" namespace avro { -/** - * Generic datum which can hold any Avro type. The datum has a type - * and a value. The type is one of the Avro data types. The C++ type for - * value corresponds to the Avro type. - * \li An Avro null corresponds to no C++ type. It is illegal to - * to try to access values for null. - * \li Avro boolean maps to C++ bool - * \li Avro int maps to C++ int32_t. - * \li Avro long maps to C++ int64_t. - * \li Avro float maps to C++ float. - * \li Avro double maps to C++ double. - * \li Avro string maps to C++ std::string. - * \li Avro bytes maps to C++ std::vector<uint_t>. - * \li Avro fixed maps to C++ class GenericFixed. - * \li Avro enum maps to C++ class GenericEnum. - * \li Avro array maps to C++ class GenericArray. - * \li Avro map maps to C++ class GenericMap. - * \li There is no C++ type corresponding to Avro union. The - * object should have the C++ type corresponing to one of the constituent - * types of the union. - * - */ -class AVRO_DECL GenericDatum { - Type type_; - boost::any value_; - - GenericDatum(Type t) : type_(t) { } - - template - GenericDatum(Type t, const T& v) : type_(t), value_(v) { } - - void init(const NodePtr& schema); -public: - /** - * The avro data type this datum holds. - */ - Type type() const; - - /** - * Returns the value held by this datum. - * T The type for the value. This must correspond to the - * avro type returned by type(). - */ - template const T& value() const; - - /** - * Returns the reference to the value held by this datum, which - * can be used to change the contents. Please note that only - * value can be changed, the data type of the value held cannot - * be changed. - * - * T The type for the value. This must correspond to the - * avro type returned by type(). - */ - template T& value(); - - /** - * Returns true if and only if this datum is a union. - */ - bool isUnion() const { return type_ == AVRO_UNION; } - - /** - * Returns the index of the current branch, if this is a union. - * \sa isUnion(). - */ - size_t unionBranch() const; - - /** - * Selects a new branch in the union if this is a union. - * \sa isUnion(). - */ - void selectBranch(size_t branch); - - /// Makes a new AVRO_NULL datum. - GenericDatum() : type_(AVRO_NULL) { } - - /// Makes a new AVRO_BOOL datum whose value is of type bool. - GenericDatum(bool v) : type_(AVRO_BOOL), value_(v) { } - - /// Makes a new AVRO_INT datum whose value is of type int32_t. - GenericDatum(int32_t v) : type_(AVRO_INT), value_(v) { } - - /// Makes a new AVRO_LONG datum whose value is of type int64_t. - GenericDatum(int64_t v) : type_(AVRO_LONG), value_(v) { } - - /// Makes a new AVRO_FLOAT datum whose value is of type float. - GenericDatum(float v) : type_(AVRO_FLOAT), value_(v) { } - - /// Makes a new AVRO_DOUBLE datum whose value is of type double. - GenericDatum(double v) : type_(AVRO_DOUBLE), value_(v) { } - - /// Makes a new AVRO_STRING datum whose value is of type std::string. - GenericDatum(const std::string& v) : type_(AVRO_STRING), value_(v) { } - - /// Makes a new AVRO_BYTES datum whose value is of type - /// std::vector. - GenericDatum(const std::vector& v) : - type_(AVRO_BYTES), value_(v) { } - - /** - * Constructs a datum corresponding to the given avro type. - * The value will the appropraite default corresponding to the - * data type. - * \param schema The schema that defines the avro type. - */ - GenericDatum(const NodePtr& schema); - - /** - * Constructs a datum corresponding to the given avro type. - * The value will the appropraite default corresponding to the - * data type. - * \param schema The schema that defines the avro type. - */ - GenericDatum(const ValidSchema& schema); -}; - -/** - * The base class for all generic type for containers. - */ -class AVRO_DECL GenericContainer { - NodePtr schema_; - static void assertType(const NodePtr& schema, Type type); -protected: - /** - * Constructs a container corresponding to the given schema. - */ - GenericContainer(Type type, const NodePtr& s) : schema_(s) { - assertType(s, type); - } - -public: - /// Returns the schema for this object - const NodePtr& schema() const { - return schema_; - } -}; - -/** - * Generic container for unions. - */ -class AVRO_DECL GenericUnion : public GenericContainer { - size_t curBranch_; - GenericDatum datum_; - -public: - /** - * Constructs a generic union corresponding to the given schema \p schema, - * and the given value. The schema should be of Avro type union - * and the value should correspond to one of the branches of the union. - */ - GenericUnion(const NodePtr& schema) : - GenericContainer(AVRO_UNION, schema), curBranch_(schema->leaves()) { - } - - /** - * Returns the index of the current branch. - */ - size_t currentBranch() const { return curBranch_; } - - /** - * Selects a new branch. The type for the value is changed accordingly. - * \param branch The index for the selected branch. - */ - void selectBranch(size_t branch) { - if (curBranch_ != branch) { - datum_ = GenericDatum(schema()->leafAt(branch)); - curBranch_ = branch; - } - } - - /** - * Returns the type for currently selected branch in this union. - */ - Type type() const { - return datum_.type(); - } - - /** - * Returns the value in this union. - */ - template - const T& value() const { - return datum_.value(); - } - - /** - * Returns the reference to the value in this union. - */ - template - T& value() { - return datum_.value(); - } - -}; - -/** - * The generic container for Avro records. - */ -class AVRO_DECL GenericRecord : public GenericContainer { - std::vector fields_; -public: - /** - * Constructs a generic record corresponding to the given schema \p schema, - * which should be of Avro type record. - */ - GenericRecord(const NodePtr& schema); - - /** - * Returns the number of fields in the current record. - */ - size_t fieldCount() const { - return fields_.size(); - } - - /** - * Returns index of the field with the given name \p name - */ - size_t fieldIndex(const std::string& name) const { - size_t index = 0; - if (!schema()->nameIndex(name, index)) { - throw Exception("Invalid field name: " + name); - } - return index; - } - - /** - * Returns true if a field with the given name \p name is located in this record, - * false otherwise - */ - bool hasField(const std::string& name) const { - size_t index = 0; - return schema()->nameIndex(name, index); - } - - /** - * Returns the field with the given name \p name. - */ - const GenericDatum& field(const std::string& name) const { - return fieldAt(fieldIndex(name)); - } - - /** - * Returns the reference to the field with the given name \p name, - * which can be used to change the contents. - */ - GenericDatum& field(const std::string& name) { - return fieldAt(fieldIndex(name)); - } - - /** - * Returns the field at the given position \p pos. - */ - const GenericDatum& fieldAt(size_t pos) const { - return fields_[pos]; - } - - /** - * Returns the reference to the field at the given position \p pos, - * which can be used to change the contents. - */ - GenericDatum& fieldAt(size_t pos) { - return fields_[pos]; - } - - /** - * Replaces the field with the given name \p name with \p v. - */ - void setField(const std::string& name, const GenericDatum& v) { - // assertSameType(v, schema()->leafAt(pos)); - return setFieldAt(fieldIndex(name), v); - } - - /** - * Replaces the field at the given position \p pos with \p v. - */ - void setFieldAt(size_t pos, const GenericDatum& v) { - // assertSameType(v, schema()->leafAt(pos)); - fields_[pos] = v; - } -}; - -/** - * The generic container for Avro arrays. - */ -class AVRO_DECL GenericArray : public GenericContainer { -public: - /** - * The contents type for the array. - */ - typedef std::vector Value; - - /** - * Constructs a generic array corresponding to the given schema \p schema, - * which should be of Avro type array. - */ - GenericArray(const NodePtr& schema) : GenericContainer(AVRO_ARRAY, schema) { - } - - /** - * Returns the contents of this array. - */ - const Value& value() const { - return value_; - } - - /** - * Returns the reference to the contents of this array. - */ - Value& value() { - return value_; - } -private: - Value value_; -}; - -/** - * The generic container for Avro maps. - */ -class AVRO_DECL GenericMap : public GenericContainer { -public: - /** - * The contents type for the map. - */ - typedef std::vector > Value; - - /** - * Constructs a generic map corresponding to the given schema \p schema, - * which should be of Avro type map. - */ - GenericMap(const NodePtr& schema) : GenericContainer(AVRO_MAP, schema) { - } - - /** - * Returns the contents of this map. - */ - const Value& value() const { - return value_; - } - - /** - * Returns the reference to the contents of this map. - */ - Value& value() { - return value_; - } -private: - Value value_; -}; - -/** - * Generic container for Avro enum. - */ -class AVRO_DECL GenericEnum : public GenericContainer { - size_t value_; -public: - /** - * Constructs a generic enum corresponding to the given schema \p schema, - * which should be of Avro type enum. - */ - GenericEnum(const NodePtr& schema) : - GenericContainer(AVRO_ENUM, schema), value_(0) { - } - - /** - * Returns the symbol corresponding to the cardinal \p n. If the - * value for \p n is not within the limits an exception is thrown. - */ - const std::string& symbol(size_t n) { - if (n < schema()->names()) { - return schema()->nameAt(n); - } - throw Exception("Not as many symbols"); - } - - /** - * Returns the cardinal for the given symbol \c symbol. If the symbol - * is not defined for this enum and exception is thrown. - */ - size_t index(const std::string& symbol) const { - size_t result; - if (schema()->nameIndex(symbol, result)) { - return result; - } - throw Exception("No such symbol"); - } - - /** - * Set the value for this enum corresponding to the given symbol \c symbol. - */ - size_t set(const std::string& symbol) { - return value_ = index(symbol); - } - - /** - * Set the value for this enum corresponding to the given cardinal \c n. - */ - void set(size_t n) { - if (n < schema()->names()) { - value_ = n; - return; - } - throw Exception("Not as many symbols"); - } - - /** - * Returns the cardinal for the current value of this enum. - */ - size_t value() const { - return value_; - } - - /** - * Returns the symbol for the current value of this enum. - */ - const std::string& symbol() const { - return schema()->nameAt(value_); - } -}; - -/** - * Generic container for Avro fixed. - */ -class AVRO_DECL GenericFixed : public GenericContainer { - std::vector value_; -public: - /** - * Constructs a generic enum corresponding to the given schema \p schema, - * which should be of Avro type fixed. - */ - GenericFixed(const NodePtr& schema) : GenericContainer(AVRO_FIXED, schema) { - value_.resize(schema->fixedSize()); - } - - /** - * Returns the contents of this fixed. - */ - const std::vector& value() const { - return value_; - } - - /** - * Returns the reference to the contents of this fixed. - */ - std::vector& value() { - return value_; - } -}; - - /** * A utility class to read generic datum from decoders. */ @@ -556,33 +101,6 @@ public: } }; -inline Type AVRO_DECL GenericDatum::type() const { - return (type_ == AVRO_UNION) ? - boost::any_cast(&value_)->type() : type_; -} - -template -const T& GenericDatum::value() const { - return (type_ == AVRO_UNION) ? - boost::any_cast(&value_)->value() : - *boost::any_cast(&value_); -} - -template -T& GenericDatum::value() { - return (type_ == AVRO_UNION) ? - boost::any_cast(&value_)->value() : - *boost::any_cast(&value_); -} - -inline size_t GenericDatum::unionBranch() const { - return boost::any_cast(&value_)->currentBranch(); -} - -inline void GenericDatum::selectBranch(size_t branch) { - boost::any_cast(&value_)->selectBranch(branch); -} - template struct codec_traits; /** diff --git a/lang/c++/api/GenericDatum.hh b/lang/c++/api/GenericDatum.hh new file mode 100644 index 00000000..134ab3c0 --- /dev/null +++ b/lang/c++/api/GenericDatum.hh @@ -0,0 +1,504 @@ +/* + * 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. + */ + +#ifndef avro_GenericDatum_hh__ +#define avro_GenericDatum_hh__ + +#include +#include +#include + +#include + +#include "Node.hh" +#include "ValidSchema.hh" + +namespace avro { +/** + * Generic datum which can hold any Avro type. The datum has a type + * and a value. The type is one of the Avro data types. The C++ type for + * value corresponds to the Avro type. + * \li An Avro null corresponds to no C++ type. It is illegal to + * to try to access values for null. + * \li Avro boolean maps to C++ bool + * \li Avro int maps to C++ int32_t. + * \li Avro long maps to C++ int64_t. + * \li Avro float maps to C++ float. + * \li Avro double maps to C++ double. + * \li Avro string maps to C++ std::string. + * \li Avro bytes maps to C++ std::vector<uint_t>. + * \li Avro fixed maps to C++ class GenericFixed. + * \li Avro enum maps to C++ class GenericEnum. + * \li Avro array maps to C++ class GenericArray. + * \li Avro map maps to C++ class GenericMap. + * \li There is no C++ type corresponding to Avro union. The + * object should have the C++ type corresponing to one of the constituent + * types of the union. + * + */ +class AVRO_DECL GenericDatum { + Type type_; + boost::any value_; + + GenericDatum(Type t) : type_(t) { } + + template + GenericDatum(Type t, const T& v) : type_(t), value_(v) { } + + void init(const NodePtr& schema); +public: + /** + * The avro data type this datum holds. + */ + Type type() const { + return type_; + } + + /** + * Returns the value held by this datum. + * T The type for the value. This must correspond to the + * avro type returned by type(). + */ + template const T& value() const { + return *boost::any_cast(&value_); + } + + /** + * Returns the reference to the value held by this datum, which + * can be used to change the contents. Please note that only + * value can be changed, the data type of the value held cannot + * be changed. + * + * T The type for the value. This must correspond to the + * avro type returned by type(). + */ + template T& value() { + return *boost::any_cast(&value_); + } + + /** + * Returns true if and only if this datum is a union. + */ + bool isUnion() const { return type_ == AVRO_UNION; } + + /** + * Returns the index of the current branch, if this is a union. + * \sa isUnion(). + */ + size_t unionBranch() const; + + /** + * Selects a new branch in the union if this is a union. + * \sa isUnion(). + */ + void selectBranch(size_t branch); + + /// Makes a new AVRO_NULL datum. + GenericDatum() : type_(AVRO_NULL) { } + + /// Makes a new AVRO_BOOL datum whose value is of type bool. + GenericDatum(bool v) : type_(AVRO_BOOL), value_(v) { } + + /// Makes a new AVRO_INT datum whose value is of type int32_t. + GenericDatum(int32_t v) : type_(AVRO_INT), value_(v) { } + + /// Makes a new AVRO_LONG datum whose value is of type int64_t. + GenericDatum(int64_t v) : type_(AVRO_LONG), value_(v) { } + + /// Makes a new AVRO_FLOAT datum whose value is of type float. + GenericDatum(float v) : type_(AVRO_FLOAT), value_(v) { } + + /// Makes a new AVRO_DOUBLE datum whose value is of type double. + GenericDatum(double v) : type_(AVRO_DOUBLE), value_(v) { } + + /// Makes a new AVRO_STRING datum whose value is of type std::string. + GenericDatum(const std::string& v) : type_(AVRO_STRING), value_(v) { } + + /// Makes a new AVRO_BYTES datum whose value is of type + /// std::vector. + GenericDatum(const std::vector& v) : + type_(AVRO_BYTES), value_(v) { } + + /** + * Constructs a datum corresponding to the given avro type. + * The value will the appropraite default corresponding to the + * data type. + * \param schema The schema that defines the avro type. + */ + GenericDatum(const NodePtr& schema); + + /** + * Constructs a datum corresponding to the given avro type and set + * the value. + * \param schema The schema that defines the avro type. + * \param v The value for this type. + */ + template + GenericDatum(const NodePtr& schema, const T& v) : + type_(schema->type()) { + init(schema); + value() = v; + } + + /** + * Constructs a datum corresponding to the given avro type. + * The value will the appropraite default corresponding to the + * data type. + * \param schema The schema that defines the avro type. + */ + GenericDatum(const ValidSchema& schema); +}; + +/** + * The base class for all generic type for containers. + */ +class AVRO_DECL GenericContainer { + NodePtr schema_; + static void assertType(const NodePtr& schema, Type type); +protected: + /** + * Constructs a container corresponding to the given schema. + */ + GenericContainer(Type type, const NodePtr& s) : schema_(s) { + assertType(s, type); + } + +public: + /// Returns the schema for this object + const NodePtr& schema() const { + return schema_; + } +}; + +/** + * Generic container for unions. + */ +class AVRO_DECL GenericUnion : public GenericContainer { + size_t curBranch_; + GenericDatum datum_; + +public: + /** + * Constructs a generic union corresponding to the given schema \p schema, + * and the given value. The schema should be of Avro type union + * and the value should correspond to one of the branches of the union. + */ + GenericUnion(const NodePtr& schema) : + GenericContainer(AVRO_UNION, schema), curBranch_(schema->leaves()) { + } + + /** + * Returns the index of the current branch. + */ + size_t currentBranch() const { return curBranch_; } + + /** + * Selects a new branch. The type for the value is changed accordingly. + * \param branch The index for the selected branch. + */ + void selectBranch(size_t branch) { + if (curBranch_ != branch) { + datum_ = GenericDatum(schema()->leafAt(branch)); + curBranch_ = branch; + } + } + + /** + * Returns the datum corresponding to the currently selected branch + * in this union. + */ + GenericDatum& datum() { + return datum_; + } + + /** + * Returns the datum corresponding to the currently selected branch + * in this union. + */ + const GenericDatum& datum() const { + return datum_; + } +}; + +/** + * The generic container for Avro records. + */ +class AVRO_DECL GenericRecord : public GenericContainer { + std::vector fields_; +public: + /** + * Constructs a generic record corresponding to the given schema \p schema, + * which should be of Avro type record. + */ + GenericRecord(const NodePtr& schema); + + /** + * Returns the number of fields in the current record. + */ + size_t fieldCount() const { + return fields_.size(); + } + + /** + * Returns index of the field with the given name \p name + */ + size_t fieldIndex(const std::string& name) const { + size_t index = 0; + if (!schema()->nameIndex(name, index)) { + throw Exception("Invalid field name: " + name); + } + return index; + } + + /** + * Returns true if a field with the given name \p name is located in this r + * false otherwise + */ + bool hasField(const std::string& name) const { + size_t index = 0; + return schema()->nameIndex(name, index); + } + + /** + * Returns the field with the given name \p name. + */ + const GenericDatum& field(const std::string& name) const { + return fieldAt(fieldIndex(name)); + } + + /** + * Returns the reference to the field with the given name \p name, + * which can be used to change the contents. + */ + GenericDatum& field(const std::string& name) { + return fieldAt(fieldIndex(name)); + } + + /** + * Returns the field at the given position \p pos. + */ + const GenericDatum& fieldAt(size_t pos) const { + return fields_[pos]; + } + + /** + * Returns the reference to the field at the given position \p pos, + * which can be used to change the contents. + */ + GenericDatum& fieldAt(size_t pos) { + return fields_[pos]; + } + + /** + * Replaces the field at the given position \p pos with \p v. + */ + void setFieldAt(size_t pos, const GenericDatum& v) { + // assertSameType(v, schema()->leafAt(pos)); + fields_[pos] = v; + } +}; + +/** + * The generic container for Avro arrays. + */ +class AVRO_DECL GenericArray : public GenericContainer { +public: + /** + * The contents type for the array. + */ + typedef std::vector Value; + + /** + * Constructs a generic array corresponding to the given schema \p schema, + * which should be of Avro type array. + */ + GenericArray(const NodePtr& schema) : GenericContainer(AVRO_ARRAY, schema) { + } + + /** + * Returns the contents of this array. + */ + const Value& value() const { + return value_; + } + + /** + * Returns the reference to the contents of this array. + */ + Value& value() { + return value_; + } +private: + Value value_; +}; + +/** + * The generic container for Avro maps. + */ +class AVRO_DECL GenericMap : public GenericContainer { +public: + /** + * The contents type for the map. + */ + typedef std::vector > Value; + + /** + * Constructs a generic map corresponding to the given schema \p schema, + * which should be of Avro type map. + */ + GenericMap(const NodePtr& schema) : GenericContainer(AVRO_MAP, schema) { + } + + /** + * Returns the contents of this map. + */ + const Value& value() const { + return value_; + } + + /** + * Returns the reference to the contents of this map. + */ + Value& value() { + return value_; + } +private: + Value value_; +}; + +/** + * Generic container for Avro enum. + */ +class AVRO_DECL GenericEnum : public GenericContainer { + size_t value_; + + static size_t index(const NodePtr& schema, const std::string& symbol) { + size_t result; + if (schema->nameIndex(symbol, result)) { + return result; + } + throw Exception("No such symbol"); + } + +public: + /** + * Constructs a generic enum corresponding to the given schema \p schema, + * which should be of Avro type enum. + */ + GenericEnum(const NodePtr& schema) : + GenericContainer(AVRO_ENUM, schema), value_(0) { + } + + GenericEnum(const NodePtr& schema, const std::string& symbol) : + GenericContainer(AVRO_ENUM, schema), value_(index(schema, symbol)) { + } + + /** + * Returns the symbol corresponding to the cardinal \p n. If the + * value for \p n is not within the limits an exception is thrown. + */ + const std::string& symbol(size_t n) { + if (n < schema()->names()) { + return schema()->nameAt(n); + } + throw Exception("Not as many symbols"); + } + + /** + * Returns the cardinal for the given symbol \c symbol. If the symbol + * is not defined for this enum and exception is thrown. + */ + size_t index(const std::string& symbol) const { + return index(schema(), symbol); + } + + /** + * Set the value for this enum corresponding to the given symbol \c symbol. + */ + size_t set(const std::string& symbol) { + return value_ = index(symbol); + } + + /** + * Set the value for this enum corresponding to the given cardinal \c n. + */ + void set(size_t n) { + if (n < schema()->names()) { + value_ = n; + return; + } + throw Exception("Not as many symbols"); + } + + /** + * Returns the cardinal for the current value of this enum. + */ + size_t value() const { + return value_; + } + + /** + * Returns the symbol for the current value of this enum. + */ + const std::string& symbol() const { + return schema()->nameAt(value_); + } +}; + +/** + * Generic container for Avro fixed. + */ +class AVRO_DECL GenericFixed : public GenericContainer { + std::vector value_; +public: + /** + * Constructs a generic enum corresponding to the given schema \p schema, + * which should be of Avro type fixed. + */ + GenericFixed(const NodePtr& schema) : GenericContainer(AVRO_FIXED, schema) { + value_.resize(schema->fixedSize()); + } + + GenericFixed(const NodePtr& schema, const std::vector& v) : + GenericContainer(AVRO_FIXED, schema), value_(v) { } + + /** + * Returns the contents of this fixed. + */ + const std::vector& value() const { + return value_; + } + + /** + * Returns the reference to the contents of this fixed. + */ + std::vector& value() { + return value_; + } +}; + +inline size_t GenericDatum::unionBranch() const { + return boost::any_cast(&value_)->currentBranch(); +} + +inline void GenericDatum::selectBranch(size_t branch) { + boost::any_cast(&value_)->selectBranch(branch); +} + +} // namespace avro +#endif // avro_GenericDatum_hh__ diff --git a/lang/c++/api/Node.hh b/lang/c++/api/Node.hh index 3a9ec45d..ff227b9e 100644 --- a/lang/c++/api/Node.hh +++ b/lang/c++/api/Node.hh @@ -32,6 +32,7 @@ namespace avro { class Node; +class GenericDatum; typedef boost::shared_ptr NodePtr; @@ -122,6 +123,9 @@ class AVRO_DECL Node : private boost::noncopyable } virtual size_t leaves() const = 0; virtual const NodePtr& leafAt(int index) const = 0; + virtual const GenericDatum& defaultValueAt(int index) { + throw Exception(boost::format("No default value at: %1%") % index); + } void addName(const std::string &name) { checkLock(); diff --git a/lang/c++/api/NodeImpl.hh b/lang/c++/api/NodeImpl.hh index 0e75e91d..cbfcfb51 100644 --- a/lang/c++/api/NodeImpl.hh +++ b/lang/c++/api/NodeImpl.hh @@ -20,6 +20,7 @@ #define avro_NodeImpl_hh__ #include "Config.hh" +#include "GenericDatum.hh" #include #include @@ -261,26 +262,27 @@ class AVRO_DECL NodeSymbolic : public NodeImplSymbolic }; -class AVRO_DECL NodeRecord : public NodeImplRecord -{ - public: - - NodeRecord() : - NodeImplRecord(AVRO_RECORD) - { } - - NodeRecord(const HasName &name, const MultiLeaves &fields, const LeafNames &fieldsNames) : - NodeImplRecord(AVRO_RECORD, name, fields, fieldsNames, NoSize()) - { - for(size_t i=0; i < leafNameAttributes_.size(); ++i) { - if(!nameIndex_.add(leafNameAttributes_.get(i), i)) { - throw Exception(boost::format("Cannot add duplicate name: %1%") % leafNameAttributes_.get(i)); +class AVRO_DECL NodeRecord : public NodeImplRecord { + std::vector defaultValues; +public: + NodeRecord() : NodeImplRecord(AVRO_RECORD) { } + NodeRecord(const HasName &name, const MultiLeaves &fields, + const LeafNames &fieldsNames, + const std::vector& dv) : + NodeImplRecord(AVRO_RECORD, name, fields, fieldsNames, NoSize()), + defaultValues(dv) { + for (size_t i = 0; i < leafNameAttributes_.size(); ++i) { + if (!nameIndex_.add(leafNameAttributes_.get(i), i)) { + throw Exception(boost::format( + "Cannot add duplicate name: %1%") % + leafNameAttributes_.get(i)); } } } void swap(NodeRecord& r) { NodeImplRecord::swap(r); + defaultValues.swap(r.defaultValues); } SchemaResolution resolve(const Node &reader) const; @@ -288,10 +290,12 @@ class AVRO_DECL NodeRecord : public NodeImplRecord void printJson(std::ostream &os, int depth) const; bool isValid() const { - return ( - (nameAttribute_.size() == 1) && - (leafAttributes_.size() == leafNameAttributes_.size()) - ); + return ((nameAttribute_.size() == 1) && + (leafAttributes_.size() == leafNameAttributes_.size())); + } + + const GenericDatum& defaultValueAt(int index) { + return defaultValues[index]; } }; diff --git a/lang/c++/api/Stream.hh b/lang/c++/api/Stream.hh index ed88d76d..92b2334d 100644 --- a/lang/c++/api/Stream.hh +++ b/lang/c++/api/Stream.hh @@ -140,6 +140,13 @@ AVRO_DECL std::auto_ptr memoryInputStream(const uint8_t* data, size */ AVRO_DECL std::auto_ptr memoryInputStream(const OutputStream& source); +/** + * Returns the contents written so far into the output stream, which should + * be a memory output stream. That is it must have been returned by a pervious + * call to memoryOutputStream(). + */ +AVRO_DECL boost::shared_ptr > snapshot(const OutputStream& source); + /** * Returns a new OutputStream whose contents would be stored in a file. * Data is written in chunks of given buffer size. diff --git a/lang/c++/build.sh b/lang/c++/build.sh index 069af6b2..f0e41469 100755 --- a/lang/c++/build.sh +++ b/lang/c++/build.sh @@ -79,7 +79,6 @@ case "$target" in (cd build && make && cd .. \ && ./build/buffertest \ && ./build/unittest \ - && ./build/testgentest \ && ./build/CodecTests \ && ./build/StreamTests \ && ./build/SpecificTests \ diff --git a/lang/c++/examples/cpx.hh b/lang/c++/examples/cpx.hh index 2db2a811..cb83aa64 100644 --- a/lang/c++/examples/cpx.hh +++ b/lang/c++/examples/cpx.hh @@ -21,7 +21,6 @@ #define CPX_HH_1278398428__H_ -#include "boost/any.hpp" #include "avro/Specific.hh" #include "avro/Encoder.hh" #include "avro/Decoder.hh" diff --git a/lang/c++/impl/Compiler.cc b/lang/c++/impl/Compiler.cc index c61b2537..19287e5a 100644 --- a/lang/c++/impl/Compiler.cc +++ b/lang/c++/impl/Compiler.cc @@ -25,19 +25,20 @@ #include "json/JsonDom.hh" -extern void yyparse(void *ctx); - using std::string; using std::map; using std::vector; +using std::pair; +using std::make_pair; namespace avro { +using json::Entity; using json::Object; using json::Array; +using json::EntityType; typedef map SymbolTable; -using json::Entity; // #define DEBUG_VERBOSE @@ -92,7 +93,7 @@ static NodePtr makeNode(const std::string& t, SymbolTable& st, const string& ns) } Name n = getName(t, ns); - map::const_iterator it = st.find(n); + SymbolTable::const_iterator it = st.find(n); if (it != st.end()) { return NodePtr(new NodeSymbolic(asSingleAttribute(n), it->second)); } @@ -145,16 +146,189 @@ const int64_t getLongField(const Entity& e, const Object& m, struct Field { const string& name; - const NodePtr value; - Field(const string& n, const NodePtr& v) : name(n), value(v) { } + const NodePtr schema; + const GenericDatum defaultValue; + Field(const string& n, const NodePtr& v, GenericDatum dv) : + name(n), schema(v), defaultValue(dv) { } }; +static void assertType(const Entity& e, EntityType et) +{ + if (e.type() != et) { + throw Exception(boost::format("Unexpected type for default value: " + "Expected %1%, but found %2%") % et % e.type()); + } +} + +static vector toBin(const std::string& s) +{ + vector result; + result.resize(s.size()); + std::copy(s.c_str(), s.c_str() + s.size(), &result[0]); + return result; +} + +static string nameof(const NodePtr& n) +{ + Type t = n->type(); + switch (t) { + case AVRO_STRING: + return "string"; + case AVRO_BYTES: + return "bytes"; + case AVRO_INT: + return "int"; + case AVRO_LONG: + return "long"; + case AVRO_FLOAT: + return "float"; + case AVRO_DOUBLE: + return "double"; + case AVRO_BOOL: + return "boolean"; + case AVRO_NULL: + return "null"; + case AVRO_RECORD: + case AVRO_ENUM: + case AVRO_FIXED: + case AVRO_SYMBOLIC: + return n->name().fullname(); + case AVRO_ARRAY: + return "array"; + case AVRO_MAP: + return "map"; + case AVRO_UNION: + return "union"; + default: + throw Exception(boost::format("Unknown type: %1%") % t); + } +} + +static GenericDatum makeGenericDatum(NodePtr n, const Entity& e, + const SymbolTable& st) +{ + Type t = n->type(); + if (t == AVRO_SYMBOLIC) { + n = st.find(n->name())->second; + t = n->type(); + } + switch (t) { + case AVRO_STRING: + assertType(e, json::etString); + return GenericDatum(e.stringValue()); + case AVRO_BYTES: + assertType(e, json::etString); + return GenericDatum(toBin(e.stringValue())); + case AVRO_INT: + assertType(e, json::etLong); + return GenericDatum(static_cast(e.longValue())); + case AVRO_LONG: + assertType(e, json::etLong); + return GenericDatum(e.longValue()); + case AVRO_FLOAT: + assertType(e, json::etDouble); + return GenericDatum(static_cast(e.doubleValue())); + case AVRO_DOUBLE: + assertType(e, json::etDouble); + return GenericDatum(e.doubleValue()); + case AVRO_BOOL: + assertType(e, json::etBool); + return GenericDatum(e.boolValue()); + case AVRO_NULL: + assertType(e, json::etNull); + return GenericDatum(); + case AVRO_RECORD: + { + assertType(e, json::etObject); + GenericRecord result(n); + const map& v = e.objectValue(); + for (size_t i = 0; i < n->leaves(); ++i) { + map::const_iterator it = v.find(n->nameAt(i)); + if (it == v.end()) { + throw Exception(boost::format( + "No value found in default for %1%") % n->nameAt(i)); + } + result.setFieldAt(i, + makeGenericDatum(n->leafAt(i), it->second, st)); + } + return GenericDatum(n, result); + } + case AVRO_ENUM: + assertType(e, json::etString); + return GenericDatum(n, GenericEnum(n, e.stringValue())); + case AVRO_ARRAY: + { + assertType(e, json::etArray); + GenericArray result(n); + const vector& elements = e.arrayValue(); + for (vector::const_iterator it = elements.begin(); + it != elements.end(); ++it) { + result.value().push_back(makeGenericDatum(n->leafAt(0), *it, st)); + } + return GenericDatum(n, result); + } + case AVRO_MAP: + { + assertType(e, json::etObject); + GenericMap result(n); + const map& v = e.objectValue(); + for (map::const_iterator it = v.begin(); + it != v.end(); ++it) { + result.value().push_back(make_pair(it->first, + makeGenericDatum(n->leafAt(1), it->second, st))); + } + return GenericDatum(n, result); + } + case AVRO_UNION: + { + GenericUnion result(n); + string name; + Entity e2; + if (e.type() == json::etNull) { + name = "null"; + e2 = e; + } else { + assertType(e, json::etObject); + const map& v = e.objectValue(); + if (v.size() != 1) { + throw Exception(boost::format("Default value for " + "union has more than one field: %1%") % e.toString()); + } + map::const_iterator it = v.begin(); + name = it->first; + e2 = it->second; + } + for (int i = 0; i < n->leaves(); ++i) { + const NodePtr& b = n->leafAt(i); + if (nameof(b) == name) { + result.selectBranch(i); + result.datum() = makeGenericDatum(b, e2, st); + return GenericDatum(n, result); + } + } + throw Exception(boost::format("Invalid default value %1%") % + e.toString()); + } + case AVRO_FIXED: + assertType(e, json::etString); + return GenericDatum(n, GenericFixed(n, toBin(e.stringValue()))); + default: + throw Exception(boost::format("Unknown type: %1%") % t); + } + return GenericDatum(); +} + + static Field makeField(const Entity& e, SymbolTable& st, const string& ns) { const Object& m = e.objectValue(); const string& n = getStringField(e, m, "name"); Object::const_iterator it = findField(e, m, "type"); - return Field(n, makeNode(it->second, st, ns)); + map::const_iterator it2 = m.find("default"); + NodePtr node = makeNode(it->second, st, ns); + GenericDatum d = (it2 == m.end()) ? GenericDatum() : + makeGenericDatum(node, it2->second, st); + return Field(n, node, d); } static NodePtr makeRecordNode(const Entity& e, @@ -163,14 +337,16 @@ static NodePtr makeRecordNode(const Entity& e, const Array& v = getArrayField(e, m, "fields"); concepts::MultiAttribute fieldNames; concepts::MultiAttribute fieldValues; + vector defaultValues; for (Array::const_iterator it = v.begin(); it != v.end(); ++it) { Field f = makeField(*it, st, ns); fieldNames.add(f.name); - fieldValues.add(f.value); + fieldValues.add(f.schema); + defaultValues.push_back(f.defaultValue); } return NodePtr(new NodeRecord(asSingleAttribute(name), - fieldValues, fieldNames)); + fieldValues, fieldNames, defaultValues)); } static NodePtr makeEnumNode(const Entity& e, @@ -302,6 +478,12 @@ AVRO_DECL ValidSchema compileJsonSchemaFromStream(InputStream& is) return ValidSchema(n); } +AVRO_DECL ValidSchema compileJsonSchemaFromFile(const char* filename) +{ + std::auto_ptr s = fileInputStream(filename); + return compileJsonSchemaFromStream(*s); +} + AVRO_DECL ValidSchema compileJsonSchemaFromMemory(const uint8_t* input, size_t len) { return compileJsonSchemaFromStream(*memoryInputStream(input, len)); diff --git a/lang/c++/impl/Generic.cc b/lang/c++/impl/Generic.cc index eb540e06..884fadb3 100644 --- a/lang/c++/impl/Generic.cc +++ b/lang/c++/impl/Generic.cc @@ -17,7 +17,6 @@ */ #include "Generic.hh" -#include "NodeImpl.hh" #include namespace avro { @@ -35,80 +34,6 @@ void GenericContainer::assertType(const NodePtr& schema, Type type) { } } -GenericDatum::GenericDatum(const ValidSchema& schema) : - type_(schema.root()->type()) -{ - init(schema.root()); -} - -GenericDatum::GenericDatum(const NodePtr& schema) : type_(schema->type()) -{ - init(schema); -} - -void GenericDatum::init(const NodePtr& schema) -{ - NodePtr sc = schema; - if (type_ == AVRO_SYMBOLIC) { - sc = resolveSymbol(schema); - type_ = sc->type(); - } - switch (type_) { - case AVRO_NULL: - break; - case AVRO_BOOL: - value_ = bool(); - break; - case AVRO_INT: - value_ = int32_t(); - break; - case AVRO_LONG: - value_ = int64_t(); - break; - case AVRO_FLOAT: - value_ = float(); - break; - case AVRO_DOUBLE: - value_ = double(); - break; - case AVRO_STRING: - value_ = string(); - break; - case AVRO_BYTES: - value_ = vector(); - break; - case AVRO_FIXED: - value_ = GenericFixed(sc); - break; - case AVRO_RECORD: - value_ = GenericRecord(sc); - break; - case AVRO_ENUM: - value_ = GenericEnum(sc); - break; - case AVRO_ARRAY: - value_ = GenericArray(sc); - break; - case AVRO_MAP: - value_ = GenericMap(sc); - break; - case AVRO_UNION: - value_ = GenericUnion(sc); - break; - default: - throw Exception(boost::format("Unknown schema type %1%") % - toString(type_)); - } -} - -GenericRecord::GenericRecord(const NodePtr& schema) : - GenericContainer(AVRO_RECORD, schema) { - fields_.resize(schema->leaves()); - for (size_t i = 0; i < schema->leaves(); ++i) { - fields_[i] = GenericDatum(schema->leafAt(i)); - } -} - GenericReader::GenericReader(const ValidSchema& s, const DecoderPtr& decoder) : schema_(s), isResolving_(dynamic_cast(&(*decoder)) != 0), decoder_(decoder) @@ -133,6 +58,8 @@ void GenericReader::read(GenericDatum& datum, Decoder& d, bool isResolving) { if (datum.isUnion()) { datum.selectBranch(d.decodeUnionIndex()); + read(datum.value().datum(), d, isResolving); + return; } switch (datum.type()) { case AVRO_NULL: @@ -249,6 +176,8 @@ void GenericWriter::write(const GenericDatum& datum, Encoder& e) { if (datum.isUnion()) { e.encodeUnionIndex(datum.unionBranch()); + write(datum.value().datum(), e); + return; } switch (datum.type()) { case AVRO_NULL: diff --git a/lang/c++/impl/GenericDatum.cc b/lang/c++/impl/GenericDatum.cc new file mode 100644 index 00000000..b5998a84 --- /dev/null +++ b/lang/c++/impl/GenericDatum.cc @@ -0,0 +1,101 @@ +/** + * 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. + */ + +#include "GenericDatum.hh" +#include "NodeImpl.hh" + +using std::string; +using std::vector; + +namespace avro { + +GenericDatum::GenericDatum(const ValidSchema& schema) : + type_(schema.root()->type()) +{ + init(schema.root()); +} + +GenericDatum::GenericDatum(const NodePtr& schema) : type_(schema->type()) +{ + init(schema); +} + +void GenericDatum::init(const NodePtr& schema) +{ + NodePtr sc = schema; + if (type_ == AVRO_SYMBOLIC) { + sc = resolveSymbol(schema); + type_ = sc->type(); + } + switch (type_) { + case AVRO_NULL: + break; + case AVRO_BOOL: + value_ = bool(); + break; + case AVRO_INT: + value_ = int32_t(); + break; + case AVRO_LONG: + value_ = int64_t(); + break; + case AVRO_FLOAT: + value_ = float(); + break; + case AVRO_DOUBLE: + value_ = double(); + break; + case AVRO_STRING: + value_ = string(); + break; + case AVRO_BYTES: + value_ = vector(); + break; + case AVRO_FIXED: + value_ = GenericFixed(sc); + break; + case AVRO_RECORD: + value_ = GenericRecord(sc); + break; + case AVRO_ENUM: + value_ = GenericEnum(sc); + break; + case AVRO_ARRAY: + value_ = GenericArray(sc); + break; + case AVRO_MAP: + value_ = GenericMap(sc); + break; + case AVRO_UNION: + value_ = GenericUnion(sc); + break; + default: + throw Exception(boost::format("Unknown schema type %1%") % + toString(type_)); + } +} + +GenericRecord::GenericRecord(const NodePtr& schema) : + GenericContainer(AVRO_RECORD, schema) { + fields_.resize(schema->leaves()); + for (size_t i = 0; i < schema->leaves(); ++i) { + fields_[i] = GenericDatum(schema->leafAt(i)); + } +} + +} // namespace avro diff --git a/lang/c++/impl/Stream.cc b/lang/c++/impl/Stream.cc index 944d69de..5da5edbc 100644 --- a/lang/c++/impl/Stream.cc +++ b/lang/c++/impl/Stream.cc @@ -21,6 +21,8 @@ namespace avro { +using std::vector; + class MemoryInputStream : public InputStream { const std::vector& data_; const size_t chunkSize_; @@ -176,5 +178,21 @@ std::auto_ptr memoryInputStream(const OutputStream& source) (mos.chunkSize_ - mos.available_))); } +boost::shared_ptr > snapshot(const OutputStream& source) +{ + const MemoryOutputStream& mos = + dynamic_cast(source); + boost::shared_ptr > result(new std::vector()); + size_t c = mos.byteCount_; + result->reserve(mos.byteCount_); + for (vector::const_iterator it = mos.data_.begin(); + it != mos.data_.end(); ++it) { + size_t n = std::min(c, mos.chunkSize_); + std::copy(*it, *it + n, std::back_inserter(*result)); + c -= n; + } + return result; +} + } // namespace avro diff --git a/lang/c++/impl/avrogencpp.cc b/lang/c++/impl/avrogencpp.cc index 3e8c4749..a6a858d5 100644 --- a/lang/c++/impl/avrogencpp.cc +++ b/lang/c++/impl/avrogencpp.cc @@ -533,10 +533,27 @@ void CodeGen::generateRecordTraits(const NodePtr& n) os_ << " }\n" << " static void decode(Decoder& d, " << fn << "& v) {\n"; + os_ << " if (avro::ResolvingDecoder *rd =\n"; + os_ << " dynamic_cast(&d)) {\n"; + os_ << " const std::vector fo = rd->fieldOrder();\n"; + os_ << " for (std::vector::const_iterator it = fo.begin();\n"; + os_ << " it != fo.end(); ++it) {\n"; + os_ << " switch (*it) {\n"; + for (size_t i = 0; i < c; ++i) { + os_ << " case " << i << ":\n"; + os_ << " avro::decode(d, v." << n->nameAt(i) << ");\n"; + os_ << " break;\n"; + } + os_ << " default:\n"; + os_ << " break;\n"; + os_ << " }\n"; + os_ << " }\n"; + os_ << " } else {\n"; for (size_t i = 0; i < c; ++i) { - os_ << " avro::decode(d, v." << n->nameAt(i) << ");\n"; + os_ << " avro::decode(d, v." << n->nameAt(i) << ");\n"; } + os_ << " }\n"; os_ << " }\n" << "};\n\n"; diff --git a/lang/c++/impl/parsing/ResolvingDecoder.cc b/lang/c++/impl/parsing/ResolvingDecoder.cc index 9443e271..e0d25edf 100644 --- a/lang/c++/impl/parsing/ResolvingDecoder.cc +++ b/lang/c++/impl/parsing/ResolvingDecoder.cc @@ -36,6 +36,8 @@ #include "Decoder.hh" #include "Encoder.hh" #include "NodeImpl.hh" +#include "Generic.hh" +#include "Stream.hh" namespace avro { @@ -45,7 +47,9 @@ namespace parsing { using boost::shared_ptr; using boost::static_pointer_cast; +using boost::make_shared; +using std::auto_ptr; using std::map; using std::pair; using std::vector; @@ -62,13 +66,13 @@ typedef pair NodePair; class ResolvingGrammarGenerator : public ValidatingGrammarGenerator { ProductionPtr doGenerate2(const NodePtr& writer, const NodePtr& reader, map &m, - const map &m2); + map &m2); ProductionPtr resolveRecords(const NodePtr& writer, const NodePtr& reader, map &m, - const map &m2); + map &m2); ProductionPtr resolveUnion(const NodePtr& writer, const NodePtr& reader, map &m, - const map &m2); + map &m2); static vector > fields(const NodePtr& n) { vector > result; @@ -82,7 +86,7 @@ class ResolvingGrammarGenerator : public ValidatingGrammarGenerator { static int bestBranch(const NodePtr& writer, const NodePtr& reader); ProductionPtr getWriterProduction(const NodePtr& n, - const map& m2); + map& m2); public: Symbol generate( @@ -99,7 +103,7 @@ Symbol ResolvingGrammarGenerator::generate( fixup(backup, m2); map m; - ProductionPtr main = doGenerate2(rr, rw, m, m2); + ProductionPtr main = doGenerate2(rw, rr, m, m2); fixup(main, m); return Symbol::rootSymbol(main, backup); } @@ -111,7 +115,10 @@ int ResolvingGrammarGenerator::bestBranch(const NodePtr& writer, const size_t c = reader->leaves(); for (size_t j = 0; j < c; ++j) { - const NodePtr& r = reader->leafAt(j); + NodePtr r = reader->leafAt(j); + if (r->type() == AVRO_SYMBOLIC) { + r = resolveSymbol(r); + } if (t == r->type()) { if (r->hasName()) { if (r->name() == writer->name()) { @@ -145,6 +152,17 @@ int ResolvingGrammarGenerator::bestBranch(const NodePtr& writer, return -1; } +static shared_ptr > getAvroBinary( + const GenericDatum& defaultValue) +{ + EncoderPtr e = binaryEncoder(); + auto_ptr os = memoryOutputStream(); + e->init(*os); + GenericWriter::write(*e, defaultValue); + e->flush(); + return snapshot(*os); +} + template struct equalsFirst { @@ -156,19 +174,24 @@ struct equalsFirst }; ProductionPtr ResolvingGrammarGenerator::getWriterProduction( - const NodePtr& n, const map& m2) + const NodePtr& n, map& m2) { const NodePtr& nn = (n->type() == AVRO_SYMBOLIC) ? static_cast(*n).getNode() : n; map::const_iterator it2 = m2.find(nn); - return (it2 != m2.end()) ? it2->second : - ValidatingGrammarGenerator::generate(nn); + if (it2 != m2.end()) { + return it2->second; + } else { + ProductionPtr result = ValidatingGrammarGenerator::doGenerate(nn, m2); + fixup(result, m2); + return result; + } } ProductionPtr ResolvingGrammarGenerator::resolveRecords( const NodePtr& writer, const NodePtr& reader, map& m, - const map& m2) + map& m2) { ProductionPtr result = make_shared(); @@ -177,6 +200,12 @@ ProductionPtr ResolvingGrammarGenerator::resolveRecords( vector fieldOrder; fieldOrder.reserve(reader->names()); + /* + * We look for all writer fields in the reader. If found, recursively + * resolve the corresponding fields. Then erase the reader field. + * If no matching field is found for reader, arrange to skip the writer + * field. + */ for (vector >::const_iterator it = wf.begin(); it != wf.end(); ++it) { vector >::iterator it2 = @@ -190,18 +219,38 @@ ProductionPtr ResolvingGrammarGenerator::resolveRecords( rf.erase(it2); } else { ProductionPtr p = getWriterProduction( - writer->leafAt(it->second), m2); + writer->leafAt(it->second), m2); result->push_back(Symbol::skipStart()); if (p->size() == 1) { result->push_back((*p)[0]); } else { result->push_back(Symbol::indirect(p)); - } + } } } - if (! rf.empty()) { - throw Exception("Don't know how to handle excess fields for reader."); + /* + * Examine the reader fields left out, (i.e. those didn't have corresponding + * writer field). + */ + for (vector >::const_iterator it = rf.begin(); + it != rf.end(); ++it) { + + NodePtr s = reader->leafAt(it->second); + fieldOrder.push_back(it->second); + + if (s->type() == AVRO_SYMBOLIC) { + s = resolveSymbol(s); + } + shared_ptr > defaultBinary = + getAvroBinary(reader->defaultValueAt(it->second)); + result->push_back(Symbol::defaultStartAction(defaultBinary)); + map >::const_iterator it2 = + m.find(NodePair(s, s)); + ProductionPtr p = (it2 == m.end()) ? + doGenerate2(s, s, m, m2) : it2->second; + copy(p->rbegin(), p->rend(), back_inserter(*result)); + result->push_back(Symbol::defaultEndAction()); } reverse(result->begin(), result->end()); result->push_back(Symbol::sizeListAction(fieldOrder)); @@ -214,7 +263,7 @@ ProductionPtr ResolvingGrammarGenerator::resolveRecords( ProductionPtr ResolvingGrammarGenerator::resolveUnion( const NodePtr& writer, const NodePtr& reader, map& m, - const map& m2) + map& m2) { vector v; size_t c = writer->leaves(); @@ -230,10 +279,12 @@ ProductionPtr ResolvingGrammarGenerator::resolveUnion( } ProductionPtr ResolvingGrammarGenerator::doGenerate2( - const NodePtr& writer, const NodePtr& reader, + const NodePtr& w, const NodePtr& r, map &m, - const map &m2) + map &m2) { + const NodePtr writer = w->type() == AVRO_SYMBOLIC ? resolveSymbol(w) : w; + const NodePtr reader = r->type() == AVRO_SYMBOLIC ? resolveSymbol(r) : r; Type writerType = writer->type(); Type readerType = reader->type(); @@ -268,7 +319,12 @@ ProductionPtr ResolvingGrammarGenerator::doGenerate2( case AVRO_RECORD: if (writer->name() == reader->name()) { const pair key(writer, reader); - m.erase(key); + map::const_iterator kp = m.find(key); + if (kp != m.end()) { + return (kp->second) ? kp->second : + make_shared(1, Symbol::placeholder(key)); + } + m[key] = ProductionPtr(); ProductionPtr result = resolveRecords(writer, reader, m, m2); m[key] = result; return result; @@ -297,11 +353,14 @@ ProductionPtr ResolvingGrammarGenerator::doGenerate2( } case AVRO_MAP: { - ProductionPtr v = doGenerate2(writer->leafAt(1), - reader->leafAt(1), m, m2); + ProductionPtr pp = + doGenerate2(writer->leafAt(1),reader->leafAt(1), m, m2); + ProductionPtr v(new Production(*pp)); v->push_back(Symbol::stringSymbol()); - ProductionPtr v2 = getWriterProduction(writer->leafAt(1), m2); + ProductionPtr pp2 = getWriterProduction(writer->leafAt(1), m2); + ProductionPtr v2(new Production(*pp2)); + v2->push_back(Symbol::stringSymbol()); ProductionPtr result = make_shared(); @@ -387,23 +446,48 @@ ProductionPtr ResolvingGrammarGenerator::doGenerate2( } class ResolvingDecoderHandler { - Decoder& base_; -public: - ResolvingDecoderHandler(Decoder& base) : base_(base) { } + shared_ptr > defaultData_; + auto_ptr inp_; + DecoderPtr backup_; + DecoderPtr& base_; + const DecoderPtr binDecoder; + public: + ResolvingDecoderHandler(DecoderPtr& base) : base_(base), + binDecoder(binaryDecoder()) { } size_t handle(const Symbol& s) { switch (s.kind()) { case Symbol::sWriterUnion: - return base_.decodeUnionIndex(); + return base_->decodeUnionIndex(); + case Symbol::sDefaultStart: + defaultData_ = s.extra > >(); + backup_ = base_; + inp_ = memoryInputStream(&(*defaultData_)[0], defaultData_->size()); + base_ = binDecoder; + base_->init(*inp_); + return 0; + case Symbol::sDefaultEnd: + base_= backup_; + backup_.reset(); + return 0; default: return 0; } } + + void reset() + { + if (backup_ != NULL) + { + base_= backup_; + backup_.reset(); + } + } }; template class ResolvingDecoderImpl : public ResolvingDecoder { - const DecoderPtr base_; + DecoderPtr base_; ResolvingDecoderHandler handler_; Parser parser_; @@ -433,8 +517,8 @@ class ResolvingDecoderImpl : public ResolvingDecoder ResolvingDecoderImpl(const ValidSchema& writer, const ValidSchema& reader, const DecoderPtr& base) : base_(base), - handler_(*base_), - parser_(ResolvingGrammarGenerator().generate(reader, writer), + handler_(base_), + parser_(ResolvingGrammarGenerator().generate(writer, reader), &(*base_), handler_) { } @@ -443,6 +527,7 @@ class ResolvingDecoderImpl : public ResolvingDecoder template void ResolvingDecoderImpl

::init(InputStream& is) { + handler_.reset(); base_->init(is); parser_.reset(); } @@ -563,6 +648,7 @@ size_t ResolvingDecoderImpl

::arrayStart() template size_t ResolvingDecoderImpl

::arrayNext() { + parser_.processImplicitActions(); size_t result = base_->arrayNext(); if (result == 0) { parser_.popRepeater(); @@ -605,6 +691,7 @@ size_t ResolvingDecoderImpl

::mapStart() template size_t ResolvingDecoderImpl

::mapNext() { + parser_.processImplicitActions(); size_t result = base_->mapNext(); if (result == 0) { parser_.popRepeater(); diff --git a/lang/c++/impl/parsing/Symbol.cc b/lang/c++/impl/parsing/Symbol.cc index 4acc0098..a651f401 100644 --- a/lang/c++/impl/parsing/Symbol.cc +++ b/lang/c++/impl/parsing/Symbol.cc @@ -63,6 +63,8 @@ const char* Symbol::stringValues[] = { "Record", "SizeList", "WriterUnion", + "DefaultStart", + "DefaultEnd", "ImplicitActionHigh", "Error" }; @@ -74,7 +76,6 @@ Symbol Symbol::enumAdjustSymbol(const NodePtr& writer, const NodePtr& reader) for (size_t i = 0; i < rc; ++i) { rs.push_back(reader->nameAt(i)); } - sort(rs.begin(), rs.end()); size_t wc = writer->names(); vector adj; diff --git a/lang/c++/impl/parsing/Symbol.hh b/lang/c++/impl/parsing/Symbol.hh index ec6d3be8..a7c09975 100644 --- a/lang/c++/impl/parsing/Symbol.hh +++ b/lang/c++/impl/parsing/Symbol.hh @@ -85,6 +85,8 @@ public: sRecord, sSizeList, sWriterUnion, + sDefaultStart, // extra has default value in Avro binary encoding + sDefaultEnd, sImplicitActionHigh, sError }; @@ -215,6 +217,16 @@ public: return Symbol(sRepeater, boost::make_tuple(s, isArray, read, skip)); } + static Symbol defaultStartAction(boost::shared_ptr > bb) + { + return Symbol(sDefaultStart, bb); + } + + static Symbol defaultEndAction() + { + return Symbol(sDefaultEnd); + } + static Symbol alternative( const std::vector& branches) { @@ -287,6 +299,10 @@ public: }; +/** + * Recursively replaces all placeholders in the production with the + * corresponding values. + */ template void fixup(const ProductionPtr& p, const std::map &m) @@ -298,6 +314,10 @@ void fixup(const ProductionPtr& p, } +/** + * Recursively replaces all placeholders in the symbol with the values with the + * corresponding values. + */ template void fixup_internal(const ProductionPtr& p, const std::map &m, @@ -335,11 +355,16 @@ void fixup(Symbol& s, const std::map &m, fixup_internal(boost::tuples::get<2>(ri), m, seen); fixup_internal(boost::tuples::get<3>(ri), m, seen); } - break; case Symbol::sPlaceholder: - s = Symbol::symbolic(boost::weak_ptr( - m.find(s.extra())->second)); + { + typename std::map >::const_iterator it = + m.find(s.extra()); + if (it == m.end()) { + throw Exception("Placeholder symbol cannot be resolved"); + } + s = Symbol::symbolic(boost::weak_ptr(it->second)); + } break; case Symbol::sUnionAdjust: fixup_internal(s.extrap >()->second, @@ -450,11 +475,12 @@ public: break; default: if (s.isImplicitAction()) { - Symbol ss = s; - parsingStack.pop(); - size_t n = handler_.handle(ss); - if (ss.kind() == Symbol::sWriterUnion) { + size_t n = handler_.handle(s); + if (s.kind() == Symbol::sWriterUnion) { + parsingStack.pop(); selectBranch(n); + } else { + parsingStack.pop(); } } else { std::ostringstream oss; @@ -730,6 +756,42 @@ public: }; +inline std::ostream& operator<<(std::ostream& os, const Symbol s); + +inline std::ostream& operator<<(std::ostream& os, const Production p) +{ + os << '('; + for (Production::const_iterator it = p.begin(); it != p.end(); ++it) { + os << *it << ", "; + } + os << ')'; + return os; +} + +inline std::ostream& operator<<(std::ostream& os, const Symbol s) +{ + switch (s.kind()) { + case Symbol::sRepeater: + { + const RepeaterInfo& ri = *s.extrap(); + os << '(' << Symbol::toString(s.kind()) + << boost::tuples::get<2>(ri) + << boost::tuples::get<3>(ri) + << ')'; + } + break; + case Symbol::sIndirect: + { + os << '(' << Symbol::toString(s.kind()) << ' ' + << *s.extra >() << ')'; + } + break; + default: + os << Symbol::toString(s.kind()); + break; + } + return os; + } } // namespace parsing } // namespace avro diff --git a/lang/c++/impl/parsing/ValidatingCodec.cc b/lang/c++/impl/parsing/ValidatingCodec.cc index ee111e4a..46670e1f 100644 --- a/lang/c++/impl/parsing/ValidatingCodec.cc +++ b/lang/c++/impl/parsing/ValidatingCodec.cc @@ -123,7 +123,8 @@ ProductionPtr ValidatingGrammarGenerator::doGenerate(const NodePtr& n, } case AVRO_MAP: { - ProductionPtr v = doGenerate(n->leafAt(1), m); + ProductionPtr pp = doGenerate(n->leafAt(1), m); + ProductionPtr v(new Production(*pp)); v->push_back(Symbol::stringSymbol()); ProductionPtr result = make_shared(); result->push_back(Symbol::mapEndSymbol()); diff --git a/lang/c++/jsonschemas/bigrecord b/lang/c++/jsonschemas/bigrecord index 815a32da..02dbccb2 100644 --- a/lang/c++/jsonschemas/bigrecord +++ b/lang/c++/jsonschemas/bigrecord @@ -34,6 +34,13 @@ "values": "int" } }, + { + "name": "recordmap", + "type": { + "type": "map", + "values": "Nested" + } + }, { "name": "myarray", "type": { diff --git a/lang/c++/jsonschemas/bigrecord_r b/lang/c++/jsonschemas/bigrecord_r new file mode 100644 index 00000000..f079162d --- /dev/null +++ b/lang/c++/jsonschemas/bigrecord_r @@ -0,0 +1,166 @@ +{ + "type": "record", + "name": "RootRecord", + "fields": [ + { + "name": "mylong", + "type": "long" + }, + { + "name": "mymap", + "type": { + "type": "map", + "values": "int" + } + }, + { + "name": "nestedrecord", + "type": { + "type": "record", + "name": "Nested", + "fields": [ + { + "name": "inval2", + "type": "string" + }, + { + "name": "inval1", + "type": "double" + }, + { + "name": "inval3", + "type": "int" + } + ] + } + }, + { + "name": "recordmap", + "type": { + "type": "map", + "values": "Nested" + } + }, + { + "name": "withDefaultValue", + "type": { + "type": "record", + "name": "WithDefaultValue", + "fields": [ + { + "name": "s1", + "type": "string" + }, + { + "name": "d1", + "type": "double" + }, + { + "name": "i1", + "type": "int" + } + ] + }, + "default": { + "s1": "sval", + "d1": 5.67, + "i1": 99 + } + }, + { + "name": "union1WithDefaultValue", + "type": [ "string", "int" ], + "default": { + "string": "sval" + } + }, + { + "name": "union2WithDefaultValue", + "type": [ "string", "null" ], + "default": null + }, + { + "name": "myarray", + "type": { + "type": "array", + "items": "double" + } + }, + { + "name": "myenum", + "type": { + "type": "enum", + "name": "ExampleEnum", + "symbols": [ + "zero", + "one", + "two", + "three" + ] + } + }, + { + "name": "myunion", + "type": [ + "null", + { + "type": "map", + "values": "int" + }, + "float" + ], + "default": null + }, + { + "name": "anotherunion", + "type": [ + "bytes", + "null" + ] + }, + { + "name": "mybool", + "type": "boolean" + }, + { + "name": "anothernested", + "type": "Nested" + }, + { + "name": "rwd", + "type": { + "type": "record", + "name": "RecordWithDefault", + "fields": [ + { + "name": "rwd_f1", + "type": "Nested" + } + ] + }, + "default": { + "rwd_f1": { + "inval2": "hello", + "inval1": 4.23, + "inval3": 100 + } + } + }, + { + "name": "myfixed", + "type": { + "type": "fixed", + "size": 16, + "name": "md5" + } + }, + { + "name": "anotherint", + "type": "int" + }, + { + "name": "bytes", + "type": "bytes" + } + ] +} diff --git a/lang/c++/test/AvrogencppTests.cc b/lang/c++/test/AvrogencppTests.cc index 20f4aee8..2312676e 100644 --- a/lang/c++/test/AvrogencppTests.cc +++ b/lang/c++/test/AvrogencppTests.cc @@ -18,6 +18,7 @@ #include "empty_record.hh" #include "bigrecord.hh" +#include "bigrecord_r.hh" #include "bigrecord2.hh" #include "tweet.hh" #include "union_array_union.hh" @@ -60,7 +61,7 @@ using avro::validatingEncoder; using avro::binaryDecoder; using avro::validatingDecoder; -void setRecord(testgen::RootRecord &myRecord) +void setRecord(testgen::RootRecord &myRecord) { uint8_t fixed[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; @@ -97,7 +98,8 @@ void setRecord(testgen::RootRecord &myRecord) myRecord.bytes.push_back(20); } -void check(const testgen::RootRecord& r1, const testgen::RootRecord& r2) +template +void checkRecord(const T1& r1, const T2& r2) { BOOST_CHECK_EQUAL(r1.mylong, r2.mylong); BOOST_CHECK_EQUAL(r1.nestedrecord.inval1, r2.nestedrecord.inval1); @@ -116,10 +118,20 @@ void check(const testgen::RootRecord& r1, const testgen::RootRecord& r2) BOOST_CHECK_EQUAL_COLLECTIONS(r1.myfixed.begin(), r1.myfixed.end(), r2.myfixed.begin(), r2.myfixed.end()); BOOST_CHECK_EQUAL(r1.anotherint, r2.anotherint); + BOOST_CHECK_EQUAL(r1.bytes.size(), r2.bytes.size()); BOOST_CHECK_EQUAL_COLLECTIONS(r1.bytes.begin(), r1.bytes.end(), r2.bytes.begin(), r2.bytes.end()); + BOOST_CHECK_EQUAL(r1.myenum, r2.myenum); } +void checkDefaultValues(const testgen_r::RootRecord& r) +{ + BOOST_CHECK_EQUAL(r.withDefaultValue.s1, "sval"); + BOOST_CHECK_EQUAL(r.withDefaultValue.i1, 99); + BOOST_CHECK_CLOSE(r.withDefaultValue.d1, 5.67, 1e-10); +} + + void testEncoding() { ValidSchema s; @@ -139,7 +151,43 @@ void testEncoding() testgen::RootRecord t2; avro::decode(*d, t2); - check(t2, t1); + checkRecord(t2, t1); +} + +void testResolution() +{ + ValidSchema s_w; + ifstream ifs_w("jsonschemas/bigrecord"); + compileJsonSchema(ifs_w, s_w); + auto_ptr os = memoryOutputStream(); + EncoderPtr e = validatingEncoder(s_w, binaryEncoder()); + e->init(*os); + testgen::RootRecord t1; + setRecord(t1); + avro::encode(*e, t1); + e->flush(); + + ValidSchema s_r; + ifstream ifs_r("jsonschemas/bigrecord_r"); + compileJsonSchema(ifs_r, s_r); + DecoderPtr dd = binaryDecoder(); + auto_ptr is = memoryInputStream(*os); + dd->init(*is); + DecoderPtr rd = resolvingDecoder(s_w, s_r, dd); + testgen_r::RootRecord t2; + avro::decode(*rd, t2); + + checkRecord(t2, t1); + checkDefaultValues(t2); + + //Re-use the resolving decoder to decode again. + auto_ptr is1 = memoryInputStream(*os); + rd->init(*is1); + testgen_r::RootRecord t3; + avro::decode(*rd, t3); + checkRecord(t3, t1); + checkDefaultValues(t3); + } void testNamespace() @@ -210,10 +258,11 @@ void testEncoding2() } boost::unit_test::test_suite* -init_unit_test_suite(int argc, char* argv[]) +init_unit_test_suite(int argc, char* argv[]) { boost::unit_test::test_suite* ts = BOOST_TEST_SUITE("Code generator tests"); ts->add(BOOST_TEST_CASE(testEncoding)); + ts->add(BOOST_TEST_CASE(testResolution)); ts->add(BOOST_TEST_CASE(testEncoding2)); ts->add(BOOST_TEST_CASE(testEncoding2)); ts->add(BOOST_TEST_CASE(testNamespace)); diff --git a/lang/c++/test/CodecTests.cc b/lang/c++/test/CodecTests.cc index bae0b398..61d29a29 100644 --- a/lang/c++/test/CodecTests.cc +++ b/lang/c++/test/CodecTests.cc @@ -352,6 +352,7 @@ static vector::const_iterator skipCalls(Scanner& sc, Decoder& d, break; case 's': case 'N': + case 'R': break; default: BOOST_FAIL("Don't know how to skip: " << c); @@ -754,6 +755,9 @@ template void testGeneric(const TestData& td) { static int testNo = 0; testNo++; + BOOST_TEST_CHECKPOINT("Test: " << testNo << ' ' + << " schema: " << td.schema + << " calls: " << td.calls); ValidSchema vs = makeValidSchema(td.schema); @@ -1183,7 +1187,6 @@ static const TestData4 data4[] = { "{\"name\":\"f1\", \"type\":\"long\"}]}", "RLS10", { "10", "hello", NULL }, 1 }, - /* // Default values { "{\"type\":\"record\",\"name\":\"r\",\"fields\":[]}", "", { NULL }, @@ -1215,16 +1218,44 @@ static const TestData4 data4[] = { // Default value for a record. { "{\"type\":\"record\",\"name\":\"outer\",\"fields\":[" - "{\"name\": \"g2\", \"type\": \"long\"}]}", "L", - { "11", NULL }, + "{\"name\": \"g1\", " + "\"type\":{\"type\":\"record\",\"name\":\"inner1\",\"fields\":[" + "{\"name\":\"f1\", \"type\":\"long\" }," + "{\"name\":\"f2\", \"type\":\"int\"}] } }, " + "{\"name\": \"g2\", \"type\": \"long\"}]}", "LIL", + { "10", "12", "13", NULL }, "{\"type\":\"record\",\"name\":\"outer\",\"fields\":[" "{\"name\": \"g1\", " - "\"type\":{\"type\":\"record\",\"name\":\"inner\",\"fields\":[" - "{\"name\":\"f1\", \"type\":\"int\" }," + "\"type\":{\"type\":\"record\",\"name\":\"inner1\",\"fields\":[" + "{\"name\":\"f1\", \"type\":\"long\" }," + "{\"name\":\"f2\", \"type\":\"int\"}] } }, " + "{\"name\": \"g2\", \"type\": \"long\"}," + "{\"name\": \"g3\", " + "\"type\":{\"type\":\"record\",\"name\":\"inner2\",\"fields\":[" + "{\"name\":\"f1\", \"type\":\"long\" }," "{\"name\":\"f2\", \"type\":\"int\"}] }, " - "\"default\": { \"f1\": 10, \"f2\": 101 } }, " - "{\"name\": \"g2\", \"type\": \"long\"}]}", "RLRII", - { "11", "10", "101", NULL}, 1 }, + "\"default\": { \"f1\": 15, \"f2\": 101 } }] } ", + "RRLILRLI", + { "10", "12", "13", "15", "101", NULL}, 1 }, + + { "{\"type\":\"record\",\"name\":\"outer\",\"fields\":[" + "{\"name\": \"g1\", " + "\"type\":{\"type\":\"record\",\"name\":\"inner1\",\"fields\":[" + "{\"name\":\"f1\", \"type\":\"long\" }," + "{\"name\":\"f2\", \"type\":\"int\"}] } }, " + "{\"name\": \"g2\", \"type\": \"long\"}]}", "LIL", + { "10", "12", "13", NULL }, + "{\"type\":\"record\",\"name\":\"outer\",\"fields\":[" + "{\"name\": \"g1\", " + "\"type\":{\"type\":\"record\",\"name\":\"inner1\",\"fields\":[" + "{\"name\":\"f1\", \"type\":\"long\" }," + "{\"name\":\"f2\", \"type\":\"int\"}] } }, " + "{\"name\": \"g2\", \"type\": \"long\"}," + "{\"name\": \"g3\", " + "\"type\":\"inner1\", " + "\"default\": { \"f1\": 15, \"f2\": 101 } }] } ", + "RRLILRLI", + { "10", "12", "13", "15", "101", NULL}, 1 }, { "{\"type\":\"record\",\"name\":\"r\",\"fields\":[]}", "", { NULL }, @@ -1234,14 +1265,14 @@ static const TestData4 data4[] = { { "100", NULL }, 1 }, { "{ \"type\": \"array\", \"items\": {\"type\":\"record\"," - "\"name\":\"r\",\"fields\":[]} }", "[c1s]", - { NULL }, + "\"name\":\"r\",\"fields\":[" + "{\"name\":\"f0\", \"type\": \"int\"}]} }", "[c1sI]", + { "99", NULL }, "{ \"type\": \"array\", \"items\": {\"type\":\"record\"," "\"name\":\"r\",\"fields\":[" "{\"name\":\"f\", \"type\":\"int\", \"default\": 100}]} }", - "[c1sI]", + "[Rc1sI]", { "100", NULL }, 1 }, - */ // Enum resolution { "{\"type\":\"enum\",\"name\":\"e\",\"symbols\":[\"x\",\"y\",\"z\"]}", From 010091fc66a92292525c18713117a673bee14831 Mon Sep 17 00:00:00 2001 From: "Thiruvalluvan M. G" Date: Sun, 29 Jun 2014 18:29:31 +0000 Subject: [PATCH 02/23] AVRO-1352. Schema for fixed types corrupted when writing out in JSON format git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1606560 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 ++ lang/c++/impl/NodeImpl.cc | 2 +- lang/c++/test/DataFileTests.cc | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 71dcdfd0..bfc68da4 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -22,6 +22,8 @@ Trunk (not yet released) AVRO-1474. C++ resolvind decoder doesn't work when reader schema has more fields than writer schema. (thiru with help from Ramana Suvarapu) + AVRO-1352. Schema for fixed types corrupted when writing out in JSON format (Steve Roehrs via thiru) + OPTIMIZATIONS AVRO-1455. Deep copy does not need to create new instances for primitives. diff --git a/lang/c++/impl/NodeImpl.cc b/lang/c++/impl/NodeImpl.cc index 0215f221..aba2a736 100644 --- a/lang/c++/impl/NodeImpl.cc +++ b/lang/c++/impl/NodeImpl.cc @@ -274,8 +274,8 @@ NodeFixed::printJson(std::ostream &os, int depth) const { os << "{\n"; os << indent(++depth) << "\"type\": \"fixed\",\n"; - os << indent(depth) << "\"size\": " << sizeAttribute_.get() << ",\n"; printName(os, nameAttribute_.get(), depth); + os << indent(depth) << "\"size\": " << sizeAttribute_.get() << "\n"; os << indent(--depth) << '}'; } diff --git a/lang/c++/test/DataFileTests.cc b/lang/c++/test/DataFileTests.cc index 4959e7cd..95e80b1b 100644 --- a/lang/c++/test/DataFileTests.cc +++ b/lang/c++/test/DataFileTests.cc @@ -95,6 +95,18 @@ template <> struct codec_traits { } }; +template<> struct codec_traits { + static void encode(Encoder& e, const uint32_t& v) { + e.encodeFixed( (uint8_t *) &v,sizeof(uint32_t)); + } + + static void decode(Decoder& d, uint32_t& v) { + std::vector value; + d.decodeFixed(sizeof(uint32_t),value); + memcpy(&v,&(value[0]),sizeof(uint32_t)); + } +}; + } static ValidSchema makeValidSchema(const char* schema) @@ -123,6 +135,8 @@ static const char dblsch[] = "{\"type\": \"record\"," "\"name\":\"ComplexDouble\", \"fields\": [" "{\"name\":\"re\", \"type\":\"double\"}" "]}"; +static const char fsch[] = "{\"type\": \"fixed\"," + "\"name\":\"Fixed_32\", \"size\":4}"; string toString(const ValidSchema& s) @@ -419,6 +433,21 @@ class DataFileTest { } } } + + void testSchemaReadWrite() { + uint32_t a=42; + { + avro::DataFileWriter df(filename, writerSchema); + df.write(a); + } + + { + avro::DataFileReader df(filename); + uint32_t b; + df.read(b); + BOOST_CHECK_EQUAL(b, a); + } + } }; void addReaderTests(test_suite* ts, const shared_ptr& t) @@ -464,6 +493,9 @@ init_unit_test_suite( int argc, char* argv[] ) shared_ptr t6(new DataFileTest("test6.df", dsch, dblsch)); ts->add(BOOST_CLASS_TEST_CASE(&DataFileTest::testZip, t6)); + shared_ptr t7(new DataFileTest("test7.df",fsch,fsch)); + ts->add(BOOST_CLASS_TEST_CASE(&DataFileTest::testSchemaReadWrite,t7)); + ts->add(BOOST_CLASS_TEST_CASE(&DataFileTest::testCleanup,t7)); return ts; } From 289ea57aa60c151f4fd2eb59c73b8d81c141d2b8 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Tue, 1 Jul 2014 21:18:11 +0000 Subject: [PATCH 03/23] AVRO-1535. Java: Make the name .X to refer to X in the null namespace. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607189 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ doc/src/content/xdocs/spec.xml | 5 ++++- .../avro/src/main/java/org/apache/avro/Schema.java | 8 ++++---- .../ipc/src/test/java/org/apache/avro/TestSchema.java | 11 +++++++++++ 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index bfc68da4..75cdf115 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -54,6 +54,9 @@ Trunk (not yet released) AVRO-1512. Java: Support Thrift unions. (cutting) + AVRO-1535. Java: Make the name .X to refer to X in the null namespace. + This permits aliases to names in the null namespace. (cutting) + BUG FIXES AVRO-1446. C#: Correctly handle system errors in RPC. diff --git a/doc/src/content/xdocs/spec.xml b/doc/src/content/xdocs/spec.xml index ec5280e6..5e447f10 100644 --- a/doc/src/content/xdocs/spec.xml +++ b/doc/src/content/xdocs/spec.xml @@ -259,6 +259,8 @@

  • subsequently contain only [A-Za-z0-9_]
  • A namespace is a dot-separated sequence of such names. + The empty string may also be used as a namespace to indicate the + null namespace. Equality of names (including field names and enum symbols) as well as fullnames is case-sensitive.

    In record, enum and fixed definitions, the fullname is @@ -279,7 +281,8 @@ if "name": "X" is specified, and this occurs within a field of the record definition of org.foo.Y, then the fullname - is org.foo.X. + is org.foo.X. If there is no enclosing + namespace then the null namespace is used.

    References to previously defined names are as in the latter two cases above: if they contain a dot they are a fullname, if diff --git a/lang/java/avro/src/main/java/org/apache/avro/Schema.java b/lang/java/avro/src/main/java/org/apache/avro/Schema.java index b9e3ba4e..321b0bea 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/Schema.java +++ b/lang/java/avro/src/main/java/org/apache/avro/Schema.java @@ -432,15 +432,15 @@ public Name(String name, String space) { return; } int lastDot = name.lastIndexOf('.'); - if ("".equals(space)) - space = null; if (lastDot < 0) { // unqualified name - this.space = space; // use default space this.name = validateName(name); } else { // qualified name - this.space = name.substring(0, lastDot); // get space from name + space = name.substring(0, lastDot); // get space from name this.name = validateName(name.substring(lastDot+1, name.length())); } + if ("".equals(space)) + space = null; + this.space = space; this.full = (this.space == null) ? this.name : this.space+"."+this.name; } public boolean equals(Object o) { diff --git a/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java b/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java index 58c1074e..bf9b84ee 100644 --- a/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java +++ b/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java @@ -525,6 +525,17 @@ public void testNestedNonNullNamespace2() throws Exception { assertEquals(nullOuter, Schema.parse(nullOuter.toString())); } + @Test + public void testNullNamespaceAlias() throws Exception { + Schema s = + Schema.parse("{\"type\":\"record\",\"name\":\"Z\",\"fields\":[]}"); + Schema t = + Schema.parse("{\"type\":\"record\",\"name\":\"x.Y\",\"aliases\":[\".Z\"]," + +"\"fields\":[]}"); + Schema u = Schema.applyAliases(s, t); + assertEquals("x.Y", u.getFullName()); + } + @Test public void testNullPointer() throws Exception { String recordJson = "{\"type\":\"record\", \"name\":\"Test\", \"fields\":" From ce9888491b24b295865940ec68a21a43b0bca467 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Tue, 1 Jul 2014 21:29:22 +0000 Subject: [PATCH 04/23] wrap long lines git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607195 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 75cdf115..da3aa21f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -20,9 +20,12 @@ Trunk (not yet released) AVRO-1522. Java: Add support for compression codecs to SortedKeyValueFile. (Steven Willis via cutting) - AVRO-1474. C++ resolvind decoder doesn't work when reader schema has more fields than writer schema. (thiru with help from Ramana Suvarapu) + AVRO-1474. C++ resolvind decoder doesn't work when reader schema + has more fields than writer schema. (thiru with help from Ramana + Suvarapu) - AVRO-1352. Schema for fixed types corrupted when writing out in JSON format (Steve Roehrs via thiru) + AVRO-1352. Schema for fixed types corrupted when writing out in + JSON format (Steve Roehrs via thiru) OPTIMIZATIONS From 11a18d9b686d98f7731904584ed8a809cd86dea8 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Tue, 1 Jul 2014 21:33:48 +0000 Subject: [PATCH 05/23] AVRO-1533. Java: In schema resolution, permit conversion between bytes and string. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607197 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 + doc/src/content/xdocs/spec.xml | 2 + .../org/apache/avro/io/ResolvingDecoder.java | 61 +++++++++++++++++++ .../io/parsing/ResolvingGrammarGenerator.java | 28 ++++++++- .../org/apache/avro/io/TestResolvingIO.java | 6 +- 5 files changed, 96 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index da3aa21f..f5dc34eb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -27,6 +27,9 @@ Trunk (not yet released) AVRO-1352. Schema for fixed types corrupted when writing out in JSON format (Steve Roehrs via thiru) + AVRO-1533. Java: In schema resolution, permit conversion between + bytes and string. (cutting) + OPTIMIZATIONS AVRO-1455. Deep copy does not need to create new instances for primitives. diff --git a/doc/src/content/xdocs/spec.xml b/doc/src/content/xdocs/spec.xml index 5e447f10..8c108c88 100644 --- a/doc/src/content/xdocs/spec.xml +++ b/doc/src/content/xdocs/spec.xml @@ -1079,6 +1079,8 @@

  • int is promotable to long, float, or double
  • long is promotable to float or double
  • float is promotable to double
  • +
  • string is promotable to bytes
  • +
  • bytes is promotable to string
  • diff --git a/lang/java/avro/src/main/java/org/apache/avro/io/ResolvingDecoder.java b/lang/java/avro/src/main/java/org/apache/avro/io/ResolvingDecoder.java index 62947be8..2d7eba2a 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/io/ResolvingDecoder.java +++ b/lang/java/avro/src/main/java/org/apache/avro/io/ResolvingDecoder.java @@ -18,11 +18,14 @@ package org.apache.avro.io; import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; import org.apache.avro.AvroTypeException; import org.apache.avro.Schema; import org.apache.avro.io.parsing.ResolvingGrammarGenerator; import org.apache.avro.io.parsing.Symbol; +import org.apache.avro.util.Utf8; /** * {@link Decoder} that performs type-resolution between the reader's and @@ -188,6 +191,64 @@ public double readDouble() throws IOException { } } + @Override + public Utf8 readString(Utf8 old) throws IOException { + Symbol actual = parser.advance(Symbol.STRING); + if (actual == Symbol.BYTES) { + return new Utf8(in.readBytes(null).array()); + } else { + assert actual == Symbol.STRING; + return in.readString(old); + } + } + + private static final Charset UTF8 = Charset.forName("UTF-8"); + + @Override + public String readString() throws IOException { + Symbol actual = parser.advance(Symbol.STRING); + if (actual == Symbol.BYTES) { + return new String(in.readBytes(null).array(), UTF8); + } else { + assert actual == Symbol.STRING; + return in.readString(); + } + } + + @Override + public void skipString() throws IOException { + Symbol actual = parser.advance(Symbol.STRING); + if (actual == Symbol.BYTES) { + in.skipBytes(); + } else { + assert actual == Symbol.STRING; + in.skipString(); + } + } + + @Override + public ByteBuffer readBytes(ByteBuffer old) throws IOException { + Symbol actual = parser.advance(Symbol.BYTES); + if (actual == Symbol.STRING) { + Utf8 s = in.readString(null); + return ByteBuffer.wrap(s.getBytes(), 0, s.getByteLength()); + } else { + assert actual == Symbol.BYTES; + return in.readBytes(old); + } + } + + @Override + public void skipBytes() throws IOException { + Symbol actual = parser.advance(Symbol.BYTES); + if (actual == Symbol.STRING) { + in.skipString(); + } else { + assert actual == Symbol.BYTES; + in.skipBytes(); + } + } + @Override public int readEnum() throws IOException { parser.advance(Symbol.ENUM); diff --git a/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java b/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java index a7054099..a4ae238e 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java +++ b/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java @@ -151,6 +151,20 @@ public Symbol generate(Schema writer, Schema reader, } break; + case BYTES: + switch (writerType) { + case STRING: + return Symbol.resolve(super.generate(writer, seen), Symbol.BYTES); + } + break; + + case STRING: + switch (writerType) { + case BYTES: + return Symbol.resolve(super.generate(writer, seen), Symbol.STRING); + } + break; + case UNION: int j = bestBranch(reader, writer); if (j >= 0) { @@ -161,8 +175,6 @@ public Symbol generate(Schema writer, Schema reader, case NULL: case BOOLEAN: case INT: - case STRING: - case BYTES: case ENUM: case ARRAY: case MAP: @@ -449,6 +461,18 @@ private static int bestBranch(Schema r, Schema w) { return j; } break; + case STRING: + switch (b.getType()) { + case BYTES: + return j; + } + break; + case BYTES: + switch (b.getType()) { + case STRING: + return j; + } + break; } j++; } diff --git a/lang/java/avro/src/test/java/org/apache/avro/io/TestResolvingIO.java b/lang/java/avro/src/test/java/org/apache/avro/io/TestResolvingIO.java index 1369dd88..d5f1b06d 100644 --- a/lang/java/avro/src/test/java/org/apache/avro/io/TestResolvingIO.java +++ b/lang/java/avro/src/test/java/org/apache/avro/io/TestResolvingIO.java @@ -184,12 +184,14 @@ private static Object[][] testSchemas() { + "{\"name\":\"f0\", \"type\":\"boolean\"}," + "{\"name\":\"f1\", \"type\":\"int\"}," + "{\"name\":\"f2\", \"type\":\"float\"}," - + "{\"name\":\"f3\", \"type\":\"string\"}]}", "BIFS", + + "{\"name\":\"f3\", \"type\":\"bytes\"}," + + "{\"name\":\"f4\", \"type\":\"string\"}]}", "BIFbS", "{\"type\":\"record\",\"name\":\"r\",\"fields\":[" + "{\"name\":\"f0\", \"type\":\"boolean\"}," + "{\"name\":\"f1\", \"type\":\"long\"}," + "{\"name\":\"f2\", \"type\":\"double\"}," - + "{\"name\":\"f3\", \"type\":\"string\"}]}", "BLDS" }, + + "{\"name\":\"f3\", \"type\":\"string\"}," + + "{\"name\":\"f4\", \"type\":\"bytes\"}]}", "BLDSb" }, { "[\"int\"]", "U0I", "[\"long\"]", "U0L" }, From b67cea15443e22db2e57c30dfdc5da2697e5ecb5 Mon Sep 17 00:00:00 2001 From: Martin Kleppmann Date: Thu, 3 Jul 2014 15:02:13 +0000 Subject: [PATCH 06/23] AVRO-1536. Ruby: Remove monkeypatching of Enumerable. Contributed by Willem van Bergen. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607665 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ lang/ruby/Manifest | 1 - lang/ruby/lib/avro.rb | 1 - lang/ruby/lib/avro/collect_hash.rb | 25 ------------------------- lang/ruby/lib/avro/protocol.rb | 2 +- 5 files changed, 4 insertions(+), 28 deletions(-) delete mode 100644 lang/ruby/lib/avro/collect_hash.rb diff --git a/CHANGES.txt b/CHANGES.txt index f5dc34eb..4aec9ab7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -63,6 +63,9 @@ Trunk (not yet released) AVRO-1535. Java: Make the name .X to refer to X in the null namespace. This permits aliases to names in the null namespace. (cutting) + AVRO-1536. Ruby: Remove monkeypatching of Enumerable. + (Willem van Bergen via martinkl) + BUG FIXES AVRO-1446. C#: Correctly handle system errors in RPC. diff --git a/lang/ruby/Manifest b/lang/ruby/Manifest index 13daed9a..fa2c7283 100644 --- a/lang/ruby/Manifest +++ b/lang/ruby/Manifest @@ -4,7 +4,6 @@ Rakefile avro.gemspec interop/test_interop.rb lib/avro.rb -lib/avro/collect_hash.rb lib/avro/data_file.rb lib/avro/io.rb lib/avro/ipc.rb diff --git a/lang/ruby/lib/avro.rb b/lang/ruby/lib/avro.rb index de70e914..902dcd88 100644 --- a/lang/ruby/lib/avro.rb +++ b/lang/ruby/lib/avro.rb @@ -34,7 +34,6 @@ def initialize(schm=nil, datum=nil, msg=nil) end end -require 'avro/collect_hash' require 'avro/schema' require 'avro/io' require 'avro/data_file' diff --git a/lang/ruby/lib/avro/collect_hash.rb b/lang/ruby/lib/avro/collect_hash.rb deleted file mode 100644 index 49750807..00000000 --- a/lang/ruby/lib/avro/collect_hash.rb +++ /dev/null @@ -1,25 +0,0 @@ -# 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. - -module Enumerable - def collect_hash - inject(Hash.new) do |memo, i| - k, v = yield(i) - memo[k] = v if k - memo - end - end -end diff --git a/lang/ruby/lib/avro/protocol.rb b/lang/ruby/lib/avro/protocol.rb index 321a4342..6c210e19 100644 --- a/lang/ruby/lib/avro/protocol.rb +++ b/lang/ruby/lib/avro/protocol.rb @@ -104,7 +104,7 @@ def to_avro(names=Set.new) hsh['types'] = types.map{|t| t.to_avro(names) } if types if messages - hsh['messages'] = messages.collect_hash{|k,t| [k, t.to_avro(names)] } + hsh['messages'] = messages.inject({}) {|h, (k,t)| h[k] = t.to_avro(names); h } end hsh From 3e997c3b63fd10ec27b1bc0061e14881da5e4dab Mon Sep 17 00:00:00 2001 From: Martin Kleppmann Date: Thu, 3 Jul 2014 15:10:26 +0000 Subject: [PATCH 07/23] AVRO-1499. Ruby: Fix corruption of data files under Ruby 2.0+. Contributed by Willem van Bergen. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607667 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ lang/ruby/lib/avro/data_file.rb | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 4aec9ab7..1d371120 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -107,6 +107,9 @@ Trunk (not yet released) AVRO-1525. Java: ReflectData cannot resolve union with fixed. (tomwhite) + AVRO-1499. Ruby: Fix encoding issue that caused corrupted data files + to be written under Ruby 2.0+. (Willem van Bergen and martinkl) + Avro 1.7.6 (15 January 2014) NEW FEATURES diff --git a/lang/ruby/lib/avro/data_file.rb b/lang/ruby/lib/avro/data_file.rb index c2a6a526..6c794de4 100644 --- a/lang/ruby/lib/avro/data_file.rb +++ b/lang/ruby/lib/avro/data_file.rb @@ -20,7 +20,8 @@ module Avro module DataFile VERSION = 1 MAGIC = "Obj" + [VERSION].pack('c') - MAGIC_SIZE = MAGIC.size + MAGIC.force_encoding('BINARY') if MAGIC.respond_to?(:force_encoding) + MAGIC_SIZE = MAGIC.respond_to?(:bytesize) ? MAGIC.bytesize : MAGIC.size SYNC_SIZE = 16 SYNC_INTERVAL = 4000 * SYNC_SIZE META_SCHEMA = Schema.parse('{"type": "map", "values": "bytes"}') @@ -98,6 +99,7 @@ def initialize(writer, datum_writer, writers_schema=nil, codec=nil) @encoder = IO::BinaryEncoder.new(@writer) @datum_writer = datum_writer @buffer_writer = StringIO.new('', 'w') + @buffer_writer.set_encoding('BINARY') if @buffer_writer.respond_to?(:set_encoding) @buffer_encoder = IO::BinaryEncoder.new(@buffer_writer) @block_count = 0 @@ -181,7 +183,7 @@ def write_block # write number of items in block and block size in bytes encoder.write_long(block_count) to_write = codec.compress(buffer_writer.string) - encoder.write_long(to_write.size) + encoder.write_long(to_write.respond_to?(:bytesize) ? to_write.bytesize : to_write.size) # write block contents writer.write(to_write) From 175a67d10cabb1672d4c966182432dec62e8d288 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Thu, 3 Jul 2014 18:35:42 +0000 Subject: [PATCH 08/23] AVRO-1498. Java: Fix custom encodings to work in reflect without Unsafe access. Contributed by Christopher Mann. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607711 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 ++ .../avro/reflect/FieldAccessReflect.java | 51 ++++++++++++++++++- .../org/apache/avro/reflect/ReflectData.java | 2 +- .../apache/avro/reflect/ReflectionUtil.java | 9 ++-- .../org/apache/avro/reflect/TestReflect.java | 18 +++++++ 5 files changed, 77 insertions(+), 6 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 1d371120..83a3712b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -110,6 +110,9 @@ Trunk (not yet released) AVRO-1499. Ruby: Fix encoding issue that caused corrupted data files to be written under Ruby 2.0+. (Willem van Bergen and martinkl) + AVRO-1498. Java: Fix custom encodings to work in reflect without + Unsafe access. (Christopher Mann via cutting) + Avro 1.7.6 (15 January 2014) NEW FEATURES diff --git a/lang/java/avro/src/main/java/org/apache/avro/reflect/FieldAccessReflect.java b/lang/java/avro/src/main/java/org/apache/avro/reflect/FieldAccessReflect.java index 5b79f2c8..680139ac 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/reflect/FieldAccessReflect.java +++ b/lang/java/avro/src/main/java/org/apache/avro/reflect/FieldAccessReflect.java @@ -17,6 +17,10 @@ */ package org.apache.avro.reflect; +import org.apache.avro.AvroRuntimeException; +import org.apache.avro.io.Decoder; +import org.apache.avro.io.Encoder; + import java.io.IOException; import java.lang.reflect.Field; @@ -24,11 +28,18 @@ class FieldAccessReflect extends FieldAccess { @Override protected FieldAccessor getAccessor(Field field) { + AvroEncode enc = field.getAnnotation(AvroEncode.class); + if (enc != null) + try { + return new ReflectionBasesAccessorCustomEncoded(field, enc.using().newInstance()); + } catch (Exception e) { + throw new AvroRuntimeException("Could not instantiate custom Encoding"); + } return new ReflectionBasedAccessor(field); } - private final class ReflectionBasedAccessor extends FieldAccessor { - private final Field field; + private class ReflectionBasedAccessor extends FieldAccessor { + protected final Field field; private boolean isStringable; private boolean isCustomEncoded; @@ -69,6 +80,42 @@ protected boolean isStringable() { protected boolean isCustomEncoded() { return isCustomEncoded; } + } + + private final class ReflectionBasesAccessorCustomEncoded extends ReflectionBasedAccessor { + + private CustomEncoding encoding; + + public ReflectionBasesAccessorCustomEncoded(Field f, CustomEncoding encoding) { + super(f); + this.encoding = encoding; + } + + @Override + protected void read(Object object, Decoder in) throws IOException { + try { + field.set(object, encoding.read(in)); + } catch (IllegalAccessException e) { + throw new AvroRuntimeException(e); +} + } + @Override + protected void write(Object object, Encoder out) throws IOException { + try { + encoding.write(field.get(object), out); + } catch (IllegalAccessException e) { + throw new AvroRuntimeException(e); + } + } + + protected boolean isCustomEncoded() { + return true; + } + + @Override + protected boolean supportsIO() { + return true; + } } } diff --git a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java index 799e63eb..113752c8 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java +++ b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java @@ -206,7 +206,7 @@ public boolean validate(Schema schema, Object datum) { } } - private static final ConcurrentHashMap, ClassAccessorData> + static final ConcurrentHashMap, ClassAccessorData> ACCESSOR_CACHE = new ConcurrentHashMap, ClassAccessorData>(); private static class ClassAccessorData { diff --git a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectionUtil.java b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectionUtil.java index 47b4f296..1457cdbf 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectionUtil.java +++ b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectionUtil.java @@ -33,8 +33,11 @@ class ReflectionUtil { private ReflectionUtil() { } - private static final FieldAccess FIELD_ACCESS; + private static FieldAccess fieldAccess; static { + resetFieldAccess(); + } + static void resetFieldAccess() { // load only one implementation of FieldAccess // so it is monomorphic and the JIT can inline FieldAccess access = null; @@ -60,7 +63,7 @@ private ReflectionUtil() { "Unable to load a functional FieldAccess class!"); } } - FIELD_ACCESS = access; + fieldAccess = access; } private static T load(String name, Class type) throws Exception { @@ -69,7 +72,7 @@ private static T load(String name, Class type) throws Exception { } public static FieldAccess getFieldAccess() { - return FIELD_ACCESS; + return fieldAccess; } private static boolean validate(FieldAccess access) throws Exception { diff --git a/lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflect.java b/lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflect.java index 183c6ac6..6c29ccce 100644 --- a/lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflect.java +++ b/lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflect.java @@ -719,6 +719,24 @@ public void testRecordWithNullIO() throws IOException { assertEquals(b, decoded); } + @Test public void testDisableUnsafe() throws Exception { + String saved = System.getProperty("avro.disable.unsafe"); + try { + System.setProperty("avro.disable.unsafe", "true"); + ReflectData.ACCESSOR_CACHE.clear(); + ReflectionUtil.resetFieldAccess(); + testMultipleAnnotations(); + testRecordWithNullIO(); + } finally { + if (saved == null) + System.clearProperty("avro.disable.unsafe"); + else + System.setProperty("avro.disable.unsafe", saved); + ReflectData.ACCESSOR_CACHE.clear(); + ReflectionUtil.resetFieldAccess(); + } + } + public static class SampleRecord { public int x = 1; private int y = 2; From f406cb4693a95842ae99bea8d9971513ea975b27 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Thu, 3 Jul 2014 21:20:34 +0000 Subject: [PATCH 09/23] AVRO-1315. Add missing license header. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607748 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/avro/SchemaValidationStrategy.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lang/java/avro/src/main/java/org/apache/avro/SchemaValidationStrategy.java b/lang/java/avro/src/main/java/org/apache/avro/SchemaValidationStrategy.java index 6c261f77..dc1c9cc0 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/SchemaValidationStrategy.java +++ b/lang/java/avro/src/main/java/org/apache/avro/SchemaValidationStrategy.java @@ -1,3 +1,21 @@ +/** + * 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.avro; /** From f3e482fd2339cd697d3eb2136f0d76b7b602525a Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Thu, 3 Jul 2014 21:21:03 +0000 Subject: [PATCH 10/23] add excludes for perl git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607749 13f79535-47bb-0310-9956-ffa450edef68 --- share/rat-excludes.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/share/rat-excludes.txt b/share/rat-excludes.txt index c9e54978..c123a935 100644 --- a/share/rat-excludes.txt +++ b/share/rat-excludes.txt @@ -49,4 +49,7 @@ lang/java/ipc/src/main/java/org/apache/avro/ipc/stats/static/*.css lang/java/protobuf/src/test/java/org/apache/avro/protobuf/Test.java lang/java/thrift/src/test/java/org/apache/avro/thrift/test/*.java lang/java/tools/src/test/compiler/output*/** +lang/perl/.shipit +lang/perl/Changes +lang/perl/MANIFEST* share/test/data/test.avro12 From d5f32e1624696c6a67923595da82d53c1103e6c8 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Thu, 3 Jul 2014 21:21:35 +0000 Subject: [PATCH 11/23] make perl build commands work in any order git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607750 13f79535-47bb-0310-9956-ffa450edef68 --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 25a62d13..06961c0e 100755 --- a/build.sh +++ b/build.sh @@ -117,7 +117,7 @@ case "$target" in (cd lang/php; ./build.sh dist) mkdir -p dist/perl - (cd lang/perl; make dist) + (cd lang/perl; perl ./Makefile.PL && make dist) cp lang/perl/Avro-$VERSION.tar.gz dist/perl/ # build docs @@ -169,7 +169,7 @@ case "$target" in (cd lang/php; ./build.sh clean) - (cd lang/perl; make clean) + (cd lang/perl; [ -f Makefile ] && make clean) ;; *) From 082fb97eb5d1c29b12e41115e45be357553afc8e Mon Sep 17 00:00:00 2001 From: Christophe Taton Date: Sat, 5 Jul 2014 04:34:49 +0000 Subject: [PATCH 12/23] AVRO-1448. Python3: Fix setup.py and PyPI installation. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1607973 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 122 +++++++++++++++-------------- lang/py3/avro/tests/test_script.py | 4 +- lang/py3/setup.py | 107 ++++++++++++++++++------- 3 files changed, 141 insertions(+), 92 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 83a3712b..9abc7c33 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -44,7 +44,7 @@ Trunk (not yet released) (Jesse Anderson via cutting) AVRO-1449. Java: Optionally validate default values while reading schemas. - (cutting) + (cutting) AVRO-1472. Java: Clarify parse method in getting started guide. (Michael Knapp via cutting) @@ -113,6 +113,8 @@ Trunk (not yet released) AVRO-1498. Java: Fix custom encodings to work in reflect without Unsafe access. (Christopher Mann via cutting) + AVRO-1448. Python3: Fix setup.py installation through PyPI. (taton) + Avro 1.7.6 (15 January 2014) NEW FEATURES @@ -328,7 +330,7 @@ Avro 1.7.5 (12 August 2013) AVRO-1261. Clarify in documentation that generated no-arg constructors do not use default values from schema. (cutting) - AVRO-1297. NettyTransceiver: Provide overloaded + AVRO-1297. NettyTransceiver: Provide overloaded close(boolean awaitCompletion). (jbaldassari) AVRO-1279. C: Treat missing codec in data files as null codec. @@ -490,7 +492,7 @@ Avro 1.7.3 (6 December 2012) NEW FEATURES - AVRO-485. JavaScript: Add validator. (Quinn Slack via cutting) + AVRO-485. JavaScript: Add validator. (Quinn Slack via cutting) AVRO-1157. Java: Extend schema and protocol property support from string-only to full JSON. (cutting) @@ -934,7 +936,7 @@ Avro 1.6.2 (13 February 2012) AVRO-956. Remove dependency on Flex/Bison. (thiru) - AVRO-1011. Improve POM structure. (Lars Francke via scottcarey) + AVRO-1011. Improve POM structure. (Lars Francke via scottcarey) AVRO-1016. Java: Add Field#getAliases() method to better permit copying of schemas. (cutting) @@ -982,7 +984,7 @@ Avro 1.6.2 (13 February 2012) AVRO-966. Java: Fix ReflectDatumWriter to be able to correctly write unions containing Collection and/or ByteBuffer. (cutting) - AVRO-977. Java: Fix codegen to not generate deprecated code. + AVRO-977. Java: Fix codegen to not generate deprecated code. (Hamed Asghari via cutting) AVRO-978. Java: Fix reflect to better handle Byte type. (cutting) @@ -996,10 +998,10 @@ Avro 1.6.2 (13 February 2012) AVRO-984. C: Resolved writers initialize complex array values correctly. (Vivek Nadkarni via dcreager) - AVRO-994. Java: TestFileSpanStorage.testTonsOfSpans() fails on my + AVRO-994. Java: TestFileSpanStorage.testTonsOfSpans() fails on my slow VM. (jbaldassari) - AVRO-993. Java: Add methods back to GenericDatumReader that were + AVRO-993. Java: Add methods back to GenericDatumReader that were removed in AVRO-839. (jbaldassari) AVRO-1000. Java: Remove incompatible implementations of equals() @@ -1022,7 +1024,7 @@ Avro 1.6.2 (13 February 2012) AVRO-1014. C: Check for errors producing JSON output in avrocat. (Lucas Martin-King via dcreager) - AVRO-996. Java: SpecificRecord builder pattern object copy fails + AVRO-996. Java: SpecificRecord builder pattern object copy fails with unions in some cases. (scottcarey and jbaldassari) AVRO-1020. Java: Fix builder API to correctly handle default @@ -1175,7 +1177,7 @@ Avro 1.6.0 (2 November 2011) AVRO-874. Remove experimental disclaimer from IDL documentation. (cutting) AVRO-891. Java: In SpecificDatumReader, when no reader schema is - specified, use schema of currently loaded class. (cutting) + specified, use schema of currently loaded class. (cutting) AVRO-865. C: Upgrade Jansson to 2.1. (dcreager) @@ -1469,8 +1471,8 @@ Avro 1.5.0 (10 March 2011) AVRO-647. Java: Break avro.jar up into multiple parts: avro.jar, avro-compiler.jar, avro-ipc.jar, avro-mapred.jar, avro-tools.jar, and avro-maven-plugin.jar. - - Summary of artifacts: + + Summary of artifacts: * avro.jar Contains 'core' avro features: schemas, data files, specific, generic, and reflect APIs. @@ -1495,16 +1497,16 @@ Avro 1.5.0 (10 March 2011) (scottcarey) AVRO-737. Java: Improve correlation between packages and modules. - Each module introduced by AVRO-647 now exclusively provides + Each module introduced by AVRO-647 now exclusively provides different java packages. This required moving several classes around into new packages and will therefore require users to change their package imports when upgrading to Avro 1.5.0. Summary of changes: * AvroRemoteException has moved to org.apache.avro - * ByteBufferInputStream and ByteBufferInputStream have moved + * ByteBufferInputStream and ByteBufferInputStream have moved to org.apache.avro.util * InduceSchemaTool has moved to org.apache.avro.tools - * SpecificCompiler, SchemaTask, and ProtocolTask have moved + * SpecificCompiler, SchemaTask, and ProtocolTask have moved to org.apache.avro.compiler.specific * The Idl compiler has moved to org.apache.avro.compiler.idl * ReflectRequestor and ReflectResponder have moved to @@ -1517,20 +1519,20 @@ Avro 1.5.0 (10 March 2011) AVRO-753. Java: Improve BinaryEncoder Performance. The Encoder API has several resulting changes: - * Construction and configuration is handled by EncoderFactory. All + * Construction and configuration is handled by EncoderFactory. All Constructors are hidden, and Encoder.init(OutputStream) is removed. * Some Encoders previously did not buffer output. Users must call Encoder.flush() to ensure output is written unless the EncoderFactory method used to construct an instance explicitly states that the Encoder - does not buffer output. + does not buffer output. (scottcarey) AVRO-769. Java: Align Decoder/Encoder APIs for consistency and long term - stability. Avro's Decoder and Encoder APIs are aligned and now consist of + stability. Avro's Decoder and Encoder APIs are aligned and now consist of only read and write operations. EncoderFactory and DecoderFactory handle all construction and common configuration. Some specialized implementations - have separate configuration APIs. - + have separate configuration APIs. + (scottcarey) AVRO-670. Allow DataFileWriteTool to accept schema files as input with new @@ -1544,7 +1546,7 @@ Avro 1.5.0 (10 March 2011) GenericData, potentially breaking subclasses. (cutting) AVRO-696. Java: Make DataFileWriter.setMetaInternal(String,String) - private. (Patrick Linehan via cutting) + private. (Patrick Linehan via cutting) AVRO-741. C: Minor API change to handling of bytes data. (Douglas Creager via brucem) @@ -1607,7 +1609,7 @@ Avro 1.5.0 (10 March 2011) AVRO-765. Java: Improvement to BinaryDecoder readLong performance (scottcarey) - + AVRO-716. Java: integrate AVRO-647 changes with top level build (scottcarey) @@ -1685,7 +1687,7 @@ Avro 1.5.0 (10 March 2011) AVRO-764. Java: Bug in BinaryData.compare() with offset comparison. (Harsh J Chouraria via scottcarey) - AVRO-743. Java: Performance Regression and memory pressure with + AVRO-743. Java: Performance Regression and memory pressure with GenericDatumReader. (scottcarey) AVRO-675. C: Bytes and fixed setters don't update datum size. @@ -1715,7 +1717,7 @@ Avro 1.5.0 (10 March 2011) (Bo Shi via cutting) AVRO-713. Java: Fix GenericData.Record#toString() to produce valid - JSON for enum symbols. (Jay Kreps via cutting) + JSON for enum symbols. (Jay Kreps via cutting) AVRO-643. Java: Fix intermittent failures in TestTraceCollection. (cutting) @@ -1863,7 +1865,7 @@ Avro 1.4.0 (31 August 2010) IMPROVEMENTS - AVRO-636. Expose Singleton Method for TracePlugin. (Patrick Wendell via + AVRO-636. Expose Singleton Method for TracePlugin. (Patrick Wendell via philz) AVRO-614. Improve Trace frontend UI. (Patrick Wendell via philz) @@ -1877,7 +1879,7 @@ Avro 1.4.0 (31 August 2010) AVRO-584. Update Histogram for Stats Plugin (Patrick Wendell via philz) - AVRO-501. missing function in C api to access array elements after + AVRO-501. missing function in C api to access array elements after decoding an array. (Bruce Mitchener via massie) AVRO-497. Minor changes to C++ autotools, makefiles, and code @@ -1963,7 +1965,7 @@ Avro 1.4.0 (31 August 2010) AVRO-622. python avro.ipc doesn't work with python2.4 (philz) - AVRO-620. Python implementation doesn't stringify sub-schemas + AVRO-620. Python implementation doesn't stringify sub-schemas correctly. (philz) AVRO-618. Avro doesn't work with python 2.4 (philz) @@ -1978,7 +1980,7 @@ Avro 1.4.0 (31 August 2010) AVRO-566. Java: fix so that JAVA_HOME is bound by build.xml for test_tools.sh. (cutting) - AVRO-571. Fix how we handle out-of-bounds indexes for union and + AVRO-571. Fix how we handle out-of-bounds indexes for union and enum parsing in Python (hammer) AVRO-589. ClassCastException: @@ -2030,7 +2032,7 @@ Avro 1.3.3 (7 June 2010) AVRO-486. DataFile.open for the ruby side (jmhodges) - AVRO-559. Handle read_union error where the list index of the union branch + AVRO-559. Handle read_union error where the list index of the union branch to follow exceeds the size of the union schema (hammer) AVRO-491. Doing doubles and floats better in the ruby impl. (jmhodges) @@ -2067,7 +2069,7 @@ Avro 1.3.3 (7 June 2010) AVRO-562 ruby side had busted client handshaking. (jmhodges) - AVRO-517. Resolving Decoder fails in some cases. (thiru) + AVRO-517. Resolving Decoder fails in some cases. (thiru) AVRO-524. DataFileWriter.appendTo leads to intermittent IOException during write() (thiru) @@ -2082,14 +2084,14 @@ Avro 1.3.3 (7 June 2010) AVRO-500. ruby side dev packaging (jmhodges) AVRO-516. ruby: buffer length should not be little-endian in socket rpc (jmhodges) - + Avro 1.3.2 (31 March 2010) IMPROVEMENTS AVRO-449. CMake-based build system for Avro/C (Bruce Mitchener via massie) - AVRO-418. avro.h generates errors when included in C++ code + AVRO-418. avro.h generates errors when included in C++ code (Bruce Mitchener via massie) AVRO-480. avro_flush() is in the header, but not implemented @@ -2106,7 +2108,7 @@ Avro 1.3.2 (31 March 2010) AVRO-490. Add Ant task to deploy Java artifacts to Maven repo. (cutting) BUG FIXES - + AVRO-479. Fix 'sign' target in top-level build.sh to generate md5 checksums. (cutting) @@ -2128,15 +2130,15 @@ Avro 1.3.1 (16 March 2010) AVRO-438. Clarify spec. (Amichai Rothman via cutting) - AVRO-445. avro_size_data() to pre-calculate the size of an + AVRO-445. avro_size_data() to pre-calculate the size of an avro_datum_t in serialized form (Bruce Mitchener via massie) - AVRO-443. Endianness is determined at configure time rather + AVRO-443. Endianness is determined at configure time rather than compile time (Bruce Mitchener via massie) - + AVRO-448. encoding_binary.c doesn't build on big endian platforms (Bruce Mitchener via massie) - + AVRO-442. sizeof void* and sizeof long detected at configure time (Bruce Mitchener via massie) @@ -2226,7 +2228,7 @@ Avro 1.3.0 (24 February 2010) - jsontofrag Renders a JSON-encoded Avro datum as binary. (Philip Zeyliger via cutting) - AVRO-272. Extend RPCContext to include message. + AVRO-272. Extend RPCContext to include message. (Philip Zeyliger via cutting) AVRO-258. Add GenAvro language tool. (Todd Lipcon via cutting) @@ -2243,20 +2245,20 @@ Avro 1.3.0 (24 February 2010) protocols, and messages. (Philip Zeyliger via cutting) AVRO-274. Make Java's data file sync interval configurable. (cutting) - + AVRO-346. Add function to validate a datum against a schema. (massie) AVRO-306. Add Ruby implementation. (Jeff Hodges via cutting) - + AVRO-135. Add compression to data files. (philz) - AVRO-368. Reserve avro.* in object container files, and + AVRO-368. Reserve avro.* in object container files, and rename existing reserved words. (philz) AVRO-380. Avro Container File format change: add block size to block descriptor. (Scott Carey via philz) - AVRO-322. Add a working client and server to Python implementation + AVRO-322. Add a working client and server to Python implementation using HTTP as a transport (hammer) AVRO-287. Make RPC interop tests work with new Python implementation @@ -2295,7 +2297,7 @@ Avro 1.3.0 (24 February 2010) AVRO-149. Add Java command-line executable, "avroj". (Philip Zeyliger via cutting) - AVRO-175. Split the avro_io interface into two interfaces: avro_reader + AVRO-175. Split the avro_io interface into two interfaces: avro_reader and avro_writer (massie) AVRO-179. Add units tests for all Avro C primitives (massie) @@ -2306,7 +2308,7 @@ Avro 1.3.0 (24 February 2010) AVRO-186. Full read-path interoperability test (massie) - AVRO-187. Move top-level source files into separate directories + AVRO-187. Move top-level source files into separate directories for easier maintenance (massie) AVRO-188. Need to update svn ignores (massie) @@ -2349,7 +2351,7 @@ Avro 1.3.0 (24 February 2010) AVRO-236. Add protocol support to avroj induce tool. (cutting) AVRO-234. C++ code cleanup. (sbanacho) - + AVRO-240. In Python, if simplejson is not available, try using 2.6's built-in json module. (Jeff Hammerbacher via cutting) @@ -2363,7 +2365,7 @@ Avro 1.3.0 (24 February 2010) AVRO-247. In reflection, add Stringable annotation to indicate classes that can be represented by an Avro string. (cutting) - + AVRO-246 Java schema parser should take schema from InputStream in addition to file. (thiru) @@ -2448,12 +2450,12 @@ Avro 1.3.0 (24 February 2010) AVRO-377. Add getters and setters for all Avro datum types (massie) - AVRO-378. Add example code to the C implementation and update + AVRO-378. Add example code to the C implementation and update documentation (massie) AVRO-379. Changed record getter/setter API to match other datatypes (massie) - AVRO-381. Update documentation to talk about reference counting and + AVRO-381. Update documentation to talk about reference counting and memory management (massie) AVRO-384. Add schema projection to the C implementation (massie) @@ -2482,7 +2484,7 @@ Avro 1.3.0 (24 February 2010) AVRO-321. Restore Java RPC interop tests. (cutting) - AVRO-402. Add method for writing avro_schema_t structure to an + AVRO-402. Add method for writing avro_schema_t structure to an avro_writer_t (massie) AVRO-398. avro_read_file doesn't detect eof (Eli Collins via massie) @@ -2491,7 +2493,7 @@ Avro 1.3.0 (24 February 2010) AVRO-400. Adding warning for unused parameters (Eli Collins via massie) - AVRO-409. Update contact database example to use a file object + AVRO-409. Update contact database example to use a file object container for C implementation (massie) AVRO-420. Add namespace support to C implementation (massie) @@ -2525,7 +2527,7 @@ Avro 1.3.0 (24 February 2010) AVRO-345. Optimization for ResolvingDecoder (thiru) - AVRO-363. estSchema had two tests disabled; new test for named schemas + AVRO-363. estSchema had two tests disabled; new test for named schemas named after primitives. (philz) AVRO-354. Performance improvement to BinaryDecoder.readInt() (Kevin Oliver via thiru) @@ -2543,7 +2545,7 @@ Avro 1.3.0 (24 February 2010) performance. (Scott Carey via cutting) BUG FIXES - + AVRO-176. Safeguard against bad istreams before reading. (sbanacho) AVRO-141. Fix a NullPointerException in ReflectData#isRecord(). @@ -2572,7 +2574,7 @@ Avro 1.3.0 (24 February 2010) AVRO-194. C++ varint encoding buffer too small. (sbanacho) - AVRO-210. Memory leak with recursive schemas when constructed + AVRO-210. Memory leak with recursive schemas when constructed by hand. (sbanacho) AVRO-211. Nested schema does not get parsed in C++. (sbanacho) @@ -2582,7 +2584,7 @@ Avro 1.3.0 (24 February 2010) AVRO-223. Fix test-avroj on Mac OS X. (Philip Zeyliger via cutting) - AVRO-224. Code cleanup: cleaner distinction between public and private + AVRO-224. Code cleanup: cleaner distinction between public and private methods (massie) AVRO-221. Mangle Java reserved words in generated code to avoid @@ -2612,7 +2614,7 @@ Avro 1.3.0 (24 February 2010) AVRO-280. Fix file header schema in specification. Also fix "forrestdoc" build target to work on clean checkout. - (Jeff Hammerbacher & cutting) + (Jeff Hammerbacher & cutting) AVRO-292. Fix Python skipping of ints and longs. (Jeff Hammerbacher via cutting) @@ -2632,7 +2634,7 @@ Avro 1.3.0 (24 February 2010) AVRO-47. Use void* for byte sequences. (sbanacho) AVRO-337. ant test-java fails in Cygwin due to CRLF v LF problem (thiru) - + AVRO-347. Add the --unsafe flag to asciidoc in order to include source/header files (massie) AVRO-352. Incorrect binary encoding for strings and bytes (massie) @@ -2648,7 +2650,7 @@ Avro 1.3.0 (24 February 2010) AVRO-382. Avro hashCode throws a NullPointerException when fields are uninitialized (Michael Armbrust via philz) AVRO-385. Initializing uninizialized BlockingBinaryEncoder fails (thiru) - + AVRO-389. ResolvingDecoder does not resolve enum well (thiru) AVRO-390. ResolvingDecoder does not handle default values for records well (thiru) @@ -2942,7 +2944,7 @@ Avro 1.0.0 -- 9 July 2009 AVRO-13. Use dictionary instead of if-else in validate. (sharad) - AVRO-5. Add java versus python RPC interoperability tests. + AVRO-5. Add java versus python RPC interoperability tests. (sharad) AVRO-16. Minor documentation improvements. (cutting) @@ -2976,7 +2978,7 @@ Avro 1.0.0 -- 9 July 2009 AVRO-68. Add license headers to C sources and improve C packaging. (Matt Massie via cutting) - AVRO-351. Shorten induce tool description; add check to avoid overly verbose + AVRO-351. Shorten induce tool description; add check to avoid overly verbose descriptions. (philz) OPTIMIZATIONS @@ -2985,7 +2987,7 @@ Avro 1.0.0 -- 9 July 2009 AVRO-3. Fix ValueReader to throw an exception at EOF. (Pat Hunt via cutting) - + AVRO-4. Fix so that specific code generation works under Eclipse. (Pat Hunt via cutting) @@ -3014,7 +3016,7 @@ Avro 1.0.0 -- 9 July 2009 AVRO-45. Fix c++ compliation so that python script need not be made executable. (Scott Banachowski via cutting) - AVRO-51. Fix testio.py to exit correctly. (Philip Zeyliger + AVRO-51. Fix testio.py to exit correctly. (Philip Zeyliger via sharad) AVRO-55. Fix two spec document typos. (cutting) diff --git a/lang/py3/avro/tests/test_script.py b/lang/py3/avro/tests/test_script.py index 544c4809..eb3c43d4 100644 --- a/lang/py3/avro/tests/test_script.py +++ b/lang/py3/avro/tests/test_script.py @@ -108,8 +108,8 @@ def RunScript(*args, stdin=None): # The trailing spaces are expected when pretty-printing JSON with json.dumps(): _JSON_PRETTY = '\n'.join([ '{', - ' "first": "daffy", ', - ' "last": "duck", ', + ' "first": "daffy",', + ' "last": "duck",', ' "type": "duck"', '}', ]) diff --git a/lang/py3/setup.py b/lang/py3/setup.py index 3488034b..426ad1dd 100644 --- a/lang/py3/setup.py +++ b/lang/py3/setup.py @@ -25,20 +25,48 @@ from setuptools import setup -def Main(): - assert (sys.version_info[0] >= 3), \ - ('Python version >= 3 required, got %r' % sys.version_info) +VERSION_FILE_NAME = 'VERSION.txt' + + +def RunsFromSourceDist(): + """Tests whether setup.py is invoked from a source distribution. + + Returns: + True if setup.py runs from a source distribution. + False otherwise, ie. if setup.py runs from the SVN trunk. + """ + setup_file_path = os.path.abspath(__file__) + # If a file PKG-INFO exists as a sibling of setup.py, + # assume we are running as source distribution: + pkg_info_file_path = \ + os.path.join(os.path.dirname(setup_file_path), 'PKG-INFO') + return os.path.exists(pkg_info_file_path) + +def SetupSources(): + """Prepares the source directory. + + Runs when setup.py is invoked from the Avro SVN/Git source. + """ + # Avro lang/py3/ source directory: py3_dir = os.path.dirname(os.path.abspath(__file__)) + + # Avro top-level source directory: root_dir = os.path.dirname(os.path.dirname(py3_dir)) + # Copy README.txt from Avro top-level directory: + shutil.copy( + src=os.path.join(root_dir, 'README.txt'), + dst=os.path.join(py3_dir, 'README.txt'), + ) + # Read and copy Avro version: - version_file_path = os.path.join(root_dir, 'share', 'VERSION.txt') + version_file_path = os.path.join(root_dir, 'share', VERSION_FILE_NAME) with open(version_file_path, 'r') as f: avro_version = f.read().strip() shutil.copy( src=version_file_path, - dst=os.path.join(py3_dir, 'avro', 'VERSION.txt'), + dst=os.path.join(py3_dir, 'avro', VERSION_FILE_NAME), ) # Copy necessary avsc files: @@ -71,32 +99,51 @@ def Main(): mode=0o777, ) + +def ReadVersion(): + """Returns: the content of the Avro version file.""" + setup_file_path = os.path.abspath(__file__) + install_dir = os.path.dirname(setup_file_path) + version_file_path = os.path.join(install_dir, 'avro', VERSION_FILE_NAME) + with open(version_file_path, 'rt') as f: + avro_version = f.read().strip() + return avro_version + + +def Main(): + assert (sys.version_info[0] >= 3), \ + ('Python version >= 3 required, got %r' % sys.version_info) + + if not RunsFromSourceDist(): + SetupSources() + + avro_version = ReadVersion() + setup( - name = 'avro-python3', - version = avro_version, - packages = ['avro'], - package_dir = {'avro': 'avro'}, - scripts = ['scripts/avro'], - - include_package_data=True, - package_data = { - 'avro': [ - 'HandshakeRequest.avsc', - 'HandshakeResponse.avsc', - 'VERSION.txt', - ], - }, - - test_suite='avro.tests.run_tests', - tests_require=[], - - # metadata for upload to PyPI - author = 'Apache Avro', - author_email = 'avro-dev@hadoop.apache.org', - description = 'Avro is a serialization and RPC framework.', - license = 'Apache License 2.0', - keywords = 'avro serialization rpc', - url = 'http://hadoop.apache.org/avro', + name = 'avro-python3-snapshot', + version = avro_version, + packages = ['avro'], + package_dir = {'avro': 'avro'}, + scripts = ['scripts/avro'], + + package_data = { + 'avro': [ + 'HandshakeRequest.avsc', + 'HandshakeResponse.avsc', + VERSION_FILE_NAME, + ], + }, + + test_suite='avro.tests.run_tests', + tests_require=[], + + # metadata for upload to PyPI + author = 'Apache Avro', + author_email = 'avro-dev@hadoop.apache.org', + description = 'Avro is a serialization and RPC framework.', + license = 'Apache License 2.0', + keywords = 'avro serialization rpc', + url = 'http://hadoop.apache.org/avro', ) From 0478e9cea93142e1ec0eefb9e0d7d19962a8bf0f Mon Sep 17 00:00:00 2001 From: "Thiruvalluvan M. G" Date: Tue, 15 Jul 2014 18:32:47 +0000 Subject: [PATCH 13/23] C++ doesn't build in Ubuntu git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1610798 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 ++ lang/c++/api/GenericDatum.hh | 1 + lang/c++/impl/Compiler.cc | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 9abc7c33..41f8a330 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -115,6 +115,8 @@ Trunk (not yet released) AVRO-1448. Python3: Fix setup.py installation through PyPI. (taton) + AVRO-1540. C++ doesn't build in Ubuntu. (thiru) + Avro 1.7.6 (15 January 2014) NEW FEATURES diff --git a/lang/c++/api/GenericDatum.hh b/lang/c++/api/GenericDatum.hh index 134ab3c0..5efcb7f4 100644 --- a/lang/c++/api/GenericDatum.hh +++ b/lang/c++/api/GenericDatum.hh @@ -19,6 +19,7 @@ #ifndef avro_GenericDatum_hh__ #define avro_GenericDatum_hh__ +#include #include #include #include diff --git a/lang/c++/impl/Compiler.cc b/lang/c++/impl/Compiler.cc index 19287e5a..01bbde2d 100644 --- a/lang/c++/impl/Compiler.cc +++ b/lang/c++/impl/Compiler.cc @@ -298,7 +298,7 @@ static GenericDatum makeGenericDatum(NodePtr n, const Entity& e, name = it->first; e2 = it->second; } - for (int i = 0; i < n->leaves(); ++i) { + for (size_t i = 0; i < n->leaves(); ++i) { const NodePtr& b = n->leafAt(i); if (nameof(b) == name) { result.selectBranch(i); From 1de668f8390edef0ee135b1c02c490a40e1a165e Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Wed, 16 Jul 2014 20:06:20 +0000 Subject: [PATCH 14/23] AVRO-1448. Fix failing test. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1611164 13f79535-47bb-0310-9956-ffa450edef68 --- lang/py3/avro/tests/test_script.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lang/py3/avro/tests/test_script.py b/lang/py3/avro/tests/test_script.py index eb3c43d4..8fc72715 100644 --- a/lang/py3/avro/tests/test_script.py +++ b/lang/py3/avro/tests/test_script.py @@ -105,14 +105,11 @@ def RunScript(*args, stdin=None): return out -# The trailing spaces are expected when pretty-printing JSON with json.dumps(): -_JSON_PRETTY = '\n'.join([ - '{', - ' "first": "daffy",', - ' "last": "duck",', - ' "type": "duck"', - '}', -]) +_TEST_JSON_VALUE = { + 'first': 'daffy', + 'last': 'duck', + 'type': 'duck', +} # ------------------------------------------------------------------------------ @@ -193,12 +190,12 @@ def testHelp(self): def testJsonPretty(self): out = self._RunCat('--format', 'json-pretty', '-n', '1') self.assertEqual( - out.strip(), - _JSON_PRETTY.strip(), + json.loads(out), + _TEST_JSON_VALUE, 'Output mismatch\n' 'Expect: %r\n' 'Actual: %r' - % (_JSON_PRETTY.strip(), out.strip())) + % (_TEST_JSON_VALUE, out)) def testVersion(self): out = RunScript('cat', '--version').decode('utf-8') From 2cf39f749f0e58e0a48754d71bdb106540b4ca86 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Fri, 18 Jul 2014 18:37:13 +0000 Subject: [PATCH 15/23] Prepare to create 1.7.7 rc0. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1611759 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 +- lang/java/archetypes/avro-service-archetype/pom.xml | 2 +- lang/java/archetypes/pom.xml | 2 +- lang/java/avro/pom.xml | 2 +- lang/java/compiler/pom.xml | 2 +- lang/java/ipc/pom.xml | 2 +- lang/java/mapred/pom.xml | 2 +- lang/java/maven-plugin/pom.xml | 2 +- lang/java/pom.xml | 2 +- lang/java/protobuf/pom.xml | 2 +- lang/java/thrift/pom.xml | 2 +- lang/java/tools/pom.xml | 2 +- lang/java/trevni/avro/pom.xml | 2 +- lang/java/trevni/core/pom.xml | 2 +- lang/java/trevni/doc/pom.xml | 4 ++-- lang/java/trevni/pom.xml | 2 +- pom.xml | 2 +- share/VERSION.txt | 2 +- 18 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 41f8a330..80fe1b93 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,6 @@ Avro Change Log -Trunk (not yet released) +Avro 1.7.7 (23 July 2014) NEW FEATURES diff --git a/lang/java/archetypes/avro-service-archetype/pom.xml b/lang/java/archetypes/avro-service-archetype/pom.xml index 3aaca743..361a9092 100644 --- a/lang/java/archetypes/avro-service-archetype/pom.xml +++ b/lang/java/archetypes/avro-service-archetype/pom.xml @@ -23,7 +23,7 @@ avro-archetypes-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../pom.xml diff --git a/lang/java/archetypes/pom.xml b/lang/java/archetypes/pom.xml index 9bce9ebd..5733d157 100644 --- a/lang/java/archetypes/pom.xml +++ b/lang/java/archetypes/pom.xml @@ -22,7 +22,7 @@ org.apache.avro avro-parent - 1.7.7-SNAPSHOT + 1.7.7 ../pom.xml diff --git a/lang/java/avro/pom.xml b/lang/java/avro/pom.xml index 7d982e16..0e672117 100644 --- a/lang/java/avro/pom.xml +++ b/lang/java/avro/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/compiler/pom.xml b/lang/java/compiler/pom.xml index 3f47f252..c834ff67 100644 --- a/lang/java/compiler/pom.xml +++ b/lang/java/compiler/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml index 35fdeafd..17e9e0ef 100644 --- a/lang/java/ipc/pom.xml +++ b/lang/java/ipc/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/mapred/pom.xml b/lang/java/mapred/pom.xml index fa198bc7..6424271b 100644 --- a/lang/java/mapred/pom.xml +++ b/lang/java/mapred/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/maven-plugin/pom.xml b/lang/java/maven-plugin/pom.xml index 861d0044..d141ea6f 100644 --- a/lang/java/maven-plugin/pom.xml +++ b/lang/java/maven-plugin/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/pom.xml b/lang/java/pom.xml index fcad2804..3bc937f7 100644 --- a/lang/java/pom.xml +++ b/lang/java/pom.xml @@ -22,7 +22,7 @@ org.apache.avro avro-toplevel - 1.7.7-SNAPSHOT + 1.7.7 ../../ diff --git a/lang/java/protobuf/pom.xml b/lang/java/protobuf/pom.xml index 5b3ca623..e950c05c 100644 --- a/lang/java/protobuf/pom.xml +++ b/lang/java/protobuf/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/thrift/pom.xml b/lang/java/thrift/pom.xml index a2b100de..97275d83 100644 --- a/lang/java/thrift/pom.xml +++ b/lang/java/thrift/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/tools/pom.xml b/lang/java/tools/pom.xml index 6e0fe833..77ee4e81 100644 --- a/lang/java/tools/pom.xml +++ b/lang/java/tools/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/trevni/avro/pom.xml b/lang/java/trevni/avro/pom.xml index 1eb9fdf3..622f442b 100644 --- a/lang/java/trevni/avro/pom.xml +++ b/lang/java/trevni/avro/pom.xml @@ -22,7 +22,7 @@ trevni-java org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/trevni/core/pom.xml b/lang/java/trevni/core/pom.xml index f0ea413a..73c2e83c 100644 --- a/lang/java/trevni/core/pom.xml +++ b/lang/java/trevni/core/pom.xml @@ -22,7 +22,7 @@ trevni-java org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/lang/java/trevni/doc/pom.xml b/lang/java/trevni/doc/pom.xml index 079d27e6..08c36716 100644 --- a/lang/java/trevni/doc/pom.xml +++ b/lang/java/trevni/doc/pom.xml @@ -22,13 +22,13 @@ trevni-java org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 .. org.apache.avro trevni-doc - 1.7.7-SNAPSHOT + 1.7.7 pom Trevni Specification diff --git a/lang/java/trevni/pom.xml b/lang/java/trevni/pom.xml index 8be5d6db..ee99b023 100644 --- a/lang/java/trevni/pom.xml +++ b/lang/java/trevni/pom.xml @@ -23,7 +23,7 @@ avro-parent org.apache.avro - 1.7.7-SNAPSHOT + 1.7.7 ../ diff --git a/pom.xml b/pom.xml index 8eeb880e..e188eb06 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ org.apache.avro avro-toplevel - 1.7.7-SNAPSHOT + 1.7.7 pom Apache Avro Toplevel diff --git a/share/VERSION.txt b/share/VERSION.txt index 0752e489..73c8b4f9 100644 --- a/share/VERSION.txt +++ b/share/VERSION.txt @@ -1 +1 @@ -1.7.7-SNAPSHOT \ No newline at end of file +1.7.7 \ No newline at end of file From def5dab27dbd1f17f9124df5845f469b5c7a8aa0 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Fri, 18 Jul 2014 18:39:09 +0000 Subject: [PATCH 16/23] Create tag for 1.7.7-rc0. git-svn-id: https://svn.apache.org/repos/asf/avro/tags/release-1.7.7-rc0@1611761 13f79535-47bb-0310-9956-ffa450edef68 From 06d463b1a119c5d8bc4347fa9e280f4096551080 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Fri, 18 Jul 2014 19:11:17 +0000 Subject: [PATCH 17/23] AVRO-1546. Java: Change GenericData.Record#toString() to not escape forward slashes. Contributed by Brandon Forehand. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1611772 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ .../src/main/java/org/apache/avro/generic/GenericData.java | 3 --- .../test/java/org/apache/avro/generic/TestGenericData.java | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 80fe1b93..188ec44a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -66,6 +66,9 @@ Avro 1.7.7 (23 July 2014) AVRO-1536. Ruby: Remove monkeypatching of Enumerable. (Willem van Bergen via martinkl) + AVRO-1546. Java: Change GenericData.Record#toString() to not + escape forward slashes. (Brandon Forehand via cutting) + BUG FIXES AVRO-1446. C#: Correctly handle system errors in RPC. diff --git a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java index 1be8c4c3..4c361921 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java +++ b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java @@ -502,9 +502,6 @@ private void writeEscapedString(String string, StringBuilder builder) { case '\t': builder.append("\\t"); break; - case '/': - builder.append("\\/"); - break; default: // Reference: http://www.unicode.org/versions/Unicode5.1.0/ if((ch>='\u0000' && ch<='\u001F') || (ch>='\u007F' && ch<='\u009F') || (ch>='\u2000' && ch<='\u20FF')){ diff --git a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java index 4e2f1839..b69322d9 100644 --- a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java +++ b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java @@ -318,6 +318,11 @@ public void testToStringIsJson() throws JsonParseException, IOException { mapper.readTree(parser); } + @Test public void testToStringDoesNotEscapeForwardSlash() throws Exception { + GenericData data = GenericData.get(); + assertEquals("\"/\"", data.toString("/")); + } + @Test public void testToStringNanInfinity() throws Exception { GenericData data = GenericData.get(); assertEquals("\"Infinity\"",data.toString(Float.POSITIVE_INFINITY)); From b1e93f10a08ab95e79913580441f8a63c72dcc20 Mon Sep 17 00:00:00 2001 From: Doug Cutting Date: Thu, 24 Jul 2014 18:49:05 +0000 Subject: [PATCH 18/23] Tag 1.7.7 release. git-svn-id: https://svn.apache.org/repos/asf/avro/tags/release-1.7.7@1613244 13f79535-47bb-0310-9956-ffa450edef68 From 54da97facce8c6099ea400f4ad0eed519fbad9da Mon Sep 17 00:00:00 2001 From: Vadim Chekan Date: Wed, 23 Sep 2015 15:29:56 -0700 Subject: [PATCH 19/23] Use nuget for fetching dependency assemblies. --- .gitignore | 2 + lang/csharp/lib/main/Castle.Core.dll | Bin 430592 -> 0 bytes lang/csharp/lib/main/Newtonsoft.Json.dll | Bin 319488 -> 0 bytes lang/csharp/lib/main/log4net.dll | Bin 270336 -> 0 bytes lang/csharp/lib/test/nunit.framework.dll | Bin 135168 -> 0 bytes lang/csharp/src/apache/ipc/Avro.ipc.csproj | 172 +++++----- lang/csharp/src/apache/ipc/packages.config | 5 + lang/csharp/src/apache/main/Avro.main.csproj | 321 ++++++++++--------- lang/csharp/src/apache/main/packages.config | 5 + lang/csharp/src/apache/test/Avro.test.csproj | 290 ++++++++--------- lang/csharp/src/apache/test/packages.config | 5 + 11 files changed, 414 insertions(+), 386 deletions(-) delete mode 100644 lang/csharp/lib/main/Castle.Core.dll delete mode 100644 lang/csharp/lib/main/Newtonsoft.Json.dll delete mode 100644 lang/csharp/lib/main/log4net.dll delete mode 100644 lang/csharp/lib/test/nunit.framework.dll create mode 100644 lang/csharp/src/apache/ipc/packages.config create mode 100644 lang/csharp/src/apache/main/packages.config create mode 100644 lang/csharp/src/apache/test/packages.config diff --git a/.gitignore b/.gitignore index 8c6b133a..621540a0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ target /build test-output /dist + +lang/csharp/packages/ diff --git a/lang/csharp/lib/main/Castle.Core.dll b/lang/csharp/lib/main/Castle.Core.dll deleted file mode 100644 index ccc7d5ff62ea9926e4afb926cc0c6be4f52504ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430592 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 ifa z1-3~s=47O!_cVttyqX`U-eJ5i3zC~D2;Tyk6ylt|xsGvNYe4zs%nMJL)$Wqe7e6t!Hoz!_ObssFU#MMQu#J-ICz&Ast2xC8sRc0x2 zb}(KqG12c_Wcma#Ose8Jy3r^a*K*GpOf6m(DlJ{mfPH5!JjKc8cK+GHA>tgK2>bp1cE?WHnE+0y)f(ztln&$lxB? zx3R;N8GkANI?mqWA2CHHbAWGb6)JCHnjsj{tIg?e)vAndzh-*@XN4y13#gadFBcIa z9Z~k}F3Rmon%B|p8h_xMrM%(W6mlFjg&pUcLJ#7d@dNszsfxT{Ve;;@r~{&MQ!o`} zMg4NCr~(;$;R26N+i1U2x7)Jr7bI^ceN7T*6_$@2q*d1`m$Y7Ih#)I});6*=Ypxtj zPN~d;S(*L5#p_k(Kc;0Cf=cOqAMdP`m!5!(Wzm6ieH;BfADGecr#-Ddj z;}mF23uW>OQJODGvN899&KpJNFDV@%A%9_s++TN3PApw1LS@gA+0)|bO``R;l$J0= z#?Jiw9v+t^u z*NZRiI%Ir}Libkj#R|XmS0RX#F2dGBlaF<_UA4O#gfjVJQCgD8OYQEhq7$Taghcs- zC34~J$%&Dl$J0=B>%`nxONrkYF=l#-Yyz(N<#>uQJ6_X>j%wRFU)C}^vd7HFoW4(rU79tH;8d~1PtFOJ{wv7iym>y#iiz5Y7_5( z$6zX-sl2a{yB`V!GI&{+Z0=@rBu+l%Yr?G%h4%(iahB|>tz-fjyv&yZ#Zi`~WgA3h zhxmL88G*002naN#pT(BGG@ND&uR7y(Ebf!VvljhxiFO@MbR=;a!#*vumc9@UTbio{2S~wyF19 zHsiii<+lkAb3j?D^z*3@l=;MD8=rcxOll+dUrMbpdG%q*%9uOLbg730Qr9 z=Yh4(!*~^c4vz!SEBu+YfLElKY|Q+H+?nTlKlh&W`9EE-=vUFH5C!F0_*lR2bEzGb z(5_`=T?ZueJCkRITNO{c4sVqw`GFA2l{FqU#X71pq}5jLb}6sWKeq8NAM%G0vV8|* z!hp4E5Olu;Ze0 zDFXzq$w zJP4}z6yj{hI6JnoB-IRltSd!q{})4M1WYX=tFQ|&I$9*f+JVC&{D zb^~WPOJyEvS*g?SrmW=!00rrB7Ryat1$ALnt_vW<6-Hx)*U_nj6oEOm5csyJFpe!> z{~9&4)y!q47Xa@p#zKWv4D(QoMH#?602XHe^Dy5~gkEeu*1q$~(o&Fc%2#a|$Pyy$ z6_2D#Fi{prePn4y$UFd+WdQT|@kug!x7wsW=nAE|V?l#k-Fo3pfVgtMkE!kBT~{Zv zwxT02yqbn1+_D=d&i&o@ui?ty(v-_*AoH60EM$LQw+*y1c^wt#eW~1g#Gg;by4omN z=|w&zNcKm@$pQQrw`oTEz(!AXPQjt$=vG#5=`HQwcIq-OB2}*>F$79c*H&yq`%K1<&c(mZEenoRSAhVo2X4D@}zqq#+l9RzbUB9;UL zE8Db+tVZ-liI$37uCS`wJWS~SO~e*8IwtfMn=%(B)*_kEb4K0XANqY;?}W`2qN8U= zZ`B+#oK)BYIg`<&_OvQ6pzGm6l60alLN_oYv}8tTsX{F9T!6NM!#zlV{@zngGH%@? zm=w@n;?c)T7bp{h)HF6_0WGPv0=BihDVP))yAtjb==4wv=O|8VwgL+}V-|J>7AcUv z36SNrL@-JxF6@zxHlbymX-7H(qn&}V85H*FjH=Q)TYRy+){)a=XM~QK5z?tcG`Hs| z@(1`@EbcKQyFC?Jo1y0I4N~6jk?Du+lv?*`kY9}pBa7MKx6lN{nBZ)hM_g2XF&^_gck;qjY8BB3HMBVBc;`< z&IQQ@DL8h2C2j4y{tSu6o%fSAT2E0OC_TYcg^GxhHRu$PiPp#CY&5z{i0qB{ScLIb zAf(TE@S?*nAy?($-u21T0ER2wuK{2&{zi`awbuNfiL1Y0*fVk<)qfm?v;)1tA_MY? z4vKe#k|%+YmU*dvh4tJjo2SW>)0DwdpY!kZ zg`qHcN(NrmlFV@Bb|TKqB20XBj;dY^WMWvAbUYl}Q4qHoSoPbIe_(f**hgWGBZ2ek zkGYG+d%TCQyV+NKIn@&;XM<6}Jxea~Q2lA0`vXd^+B=5`tGy*DUsN7PG0#iET#5Zx zCf6+O2bGqj84fG9S!F}At3{HhGdt2o`qoPB|5W!w8`#B4&dqZ6ZKc*j-C9$*M~$G) z?)JmvjICqlnU1VPQ+un=o`6*JHosekhZ+}O7)`kki8k%Zu%hI^js~@e_gOtXGEuU2 z1M=_iF>K{Nta4eSECnOozD)Dk2~go!G#|1?QH{z-7u%cX$v6zaiKo~%)zG(8z7eB3 zIs$q&4@XYtX9Zp8Y4(P-Lde|GvjEjVEk}w1^__X@2UYAKtqeBQX)i_kn{N`bD5;3I#u+eD{j1n7}Cep29JCN~rxv zW?{Ki{9DJrbNN^OewIoEneLD5v+rYzBYW<Q+HYFj+9c*0+aVa5AA&T;b5Wn{|SGbY(X5D_QM|bQ-d{t z9df5o7kTg<2Hq<0Cj?F=@KT3jDy_;&JhImjZ&2h&_bm8|Bd*#FJQ(TmyjkB=xowSL zrPa6D0IGOw0M)cD0_aFu)-)97PF7pcSIiZ{29Q%Zb7V9apEuGSjQ5Pp3C0<00;~`z zeYNRdkdOXGjtutYMB}El-&Noo3v65aB?Zn34*fLl=x6u|_U#EqzmI3FYIgLl4D>gF zn0Vwy|B->%$IPw0N}$a&3lSV;rzE%EWut5Z`0&FcgfAHF9Zkb?@a%W`=;kc^;^l;o z9o0j1mi~c#2(KCKVlcJv!#^NAHk$iq8vYiWf%}z5|A-UtNwCp}SjXELXcM6A3g z!I1s}tLXYsBlTeXu#xd#{GgG2gMIVC$ie%KkA74L;}Fgmbz;0cdiZEc_y|00!bj<0 z*Zr|8v89fa$nOk>`1a6cw2A-n>C$7tW>$1EYjW!C3SwCKQ?5RAW@pI0=xI;d3fr=p z@TuG>RDJ4w9A3Zr!&LDh9co&e#>h-czhkPb%xrq3@0c3GdNn8;KbIg9ji1?fOs}AD zcC1%;q1zxt>_bb%Q-7^>Z=E$e*v5zh5D<^M8cMphl&&hd$CJR%{#&_bg^}Sl7JHkN zE&HJv9~*rkOfXPK$<^|}XI|&b()^}?X^o_YI^WhQ#oc6H<28L{9a%xrVp!IkJ2*%+ zo3X0%LMd;vz7iU_(^T%;{a00MV~gwm=QW%AP9SPZ(80idc?qh17JY65Qy6lH$oB?Xv{(ASPeHNb& zZPB*$xbkXiW0AWbw|N3`=MkV2<@Dv7C*g((^5K-O|32?>%pb|i}w16wp*JIv2fSJBEY zE^^XCly{qKo*jWqnnGah#*(o_r6OcU_tpM%bl>9GrD(%;hawNB5@{?mW6L z#i7%;DNEl$4lsJ9pfr}`c^&Ef(f#KOvMx>FkM6%rAa9qiqyD6qg5=!*gGotGeNV1U z-09jrl(MSh{K?zFQe_aZ$GM)1dot=rX-BSqGD<)^=S{m$odR zc^eP)h@i~~W>?p$&-iL#*&Y;*W3$KZG5zzzru)qv4|02wr~0{Hf#8N;y7o}hI3G7v z2|uW(B86h)4Qa*$mgJQ z(~5iKbJNB+tor80pk~eOXz|?_Bsa;;j#AI=mB~kl4crI$)wyYv)y_?SSO7YJqOA=E zIjkT5_PllMFyTOioiJA~wbRPj8)iD(mWq;FDjy|zwd{F-Zt`)3S*+knFXl;NxoFSt z9B6+6nd*@vH4JB?9j2q|ldmfGT01C~_r2SDbgm8^p^K$ ziKZy&n)d#=xkvjo?b`x>THd}}?mtzo)wZ;O>m0p5H1E0B8{naR$KaD{1IcYreKZ!V zpK4Cr8XdXi9k&L;#}nva&abx@a&ya`w;R*8ZUi#f*x->C&PJ8@hJMz~#gZubq>353 ze~=|JUI3pGK%U#>xrVX*PsD}xE#DzKSft3$5NX<)mqury*fFpcik+?c;Os9}Ux4SU_;`lOm1lpEN1auBetvJ;7QNL4MccOMDYUQ{+Ju$9 zo_=@dPA(PeWw%#u&lA1uWJ_qBq-1&ilbrM!R=XI{uIkV!!oCWw=jxwC#jA~IF7gyy z{n1YEP^nDUbqsyFIpWoDXZ6~mUsk=gSg7v_?ViG_Py3_SpEvTRXKbx6)R~3c?bg1& zNSs|uE~R76{+a$$Ehg6x?YADR+sN4N8OWu4{TYmce?s4S6$=^K0mb>A3jJh|>xT>5 z($2EkJJR{Z$*eP4SM-KJdEd8seXlEeHiX(LypdBMLUCz--+%c1S+I)jpXnoiF#7aR zmO^VVOZJDcZJHZJ_AO46|Nm?YjkH!pF?b#)m5IT#UT%V=nT^qm&)&werZB@4T9TSV zX)W7TOPNB=Qy`*tp*D3Qu8r}Ng4P(3<@(VbqgVMQc1w@lz*Y?Ah`+7p2l=mxogn!d zPVJ-mc*BhG(66(uA)kxY22wKG2k=U1(#qzC@LYQc_jXn`gd4AF!~fG5DEat&Y88&~ zdB&AvIuN3}#q1bOzE!6BU4Br!EKP{{-;Vopkf@MjYjvR09|Yy{OEs}$HyEIDX~b{cf}R2HA2*+Bxk zSoAYI+=aMXPMG}MJNMu~M0Wu;LqmUIa<7m3BN;SB$g{;c^&t5*QNAc`&g;V-A=nxJ zgXqSYNY80g&liKQ%=`GMqv@P_dM!37K+STO-TMpAhP5HqKy#n5vgq*>cNWwJqcUHu zJyMTn-h}CSHlUuu#0H7?FS4-a6eeDi1z2kBEwXeQyLBYz^U+3}R~63CN0$1d8!lY+ zQCn|aMn0dle6E(vSTqK|-iLKEjt6HI4wpA4Rmu8vmFgrdDKCIdQVx5I{5a_7FPMCS zggz%|oCAMN1*)Wy8#*h>xxg{;QUQ0wgo$MB&Lduvg9iv8ZA+9aHx0#%=mO0Z&gFG| zj=hD>!5nY+<4*$ZHT!muz{ls*R*LBvIU&SBQ)&2ycVC|4a@{&E_iBi3P`{7ueDt$P zqdDME-ey&3?B7x&e7@S3mz7l&zAukjaa@s#=Y@GB!dJecDF7%>8EYdeOuoTVmF9{7}r;WR1XT3g1u4-DeF60Yy6^UO{!CGUBt+a zv9J`5)b?FO+SJ>Jx4})CxZ<~k)o&ur+wBh-B)?P5m1N)i4!*eel>8pZ2EI)0c-#R~ z7l9q3MfrSfKtP^c;3{UuizOJ9$t59+#^w=uZCZ{k>ScVbo2P{2stqKf7Rq zvEHLqw~+ZxHZM^&kFhyS!QBgoSU~s5arg7fXFLBunPU5pb4Xo3H!VL&dFyxT6-rJ0 zRO`=3A=e7R7Fo5vu@iE*AjhQ;*21IY2tf`=A+HnUNI~}KgrF*`4B_Xip1-Poy0swOtn?7`#lJ%ovrfRs-K>M0ku~%qMkR< z#W#=@;hswG^z-8=H%&fYR-1|3rBsAFpSa|YNR$u%MQ$@7?ibKn+yzAN-R&5E??8|| zjbLptG!3GMVV({o-BJ97$+!UOU^EbU+$F*_P@ZpXcOa`m3bdEd&YUu@(|i7{2FnX# z7GU@^{lmrk3zfBfy~}HqVC%nW=|ek1?tADXWjvE--YE5sPka%TYAf$0Ac_a<<1Rb~G7&AnB( zmhMhc>83gxBm|ONdI=-}42uW|$SxotqAVhdLF8f;K}}I@3y6pi6%jRpOWgMn6_pv+ zao3SnaT$e(j{82NGw$L4{XNgURkuSjzwp1Jid89h6|E9>E$ya--s2aV(c4Vw|Vk1A? z&&`j`3R$6U5ckc%agbR|xQ~J>=?kEcdAAs{uR^NnGvOM;)FQTDSIWx`;7#aphbxCB z%C+J0_SFPTtHj%RWs6(*e8RK(0|nv?Q-it1_gq&7t8UNV7LS4^<`Au z9tOdE;-57^tqjlTF;J_%r}Vy9Ctj)s?9+euN%Dv7I<2#NiTwV^%Ej`QHvI=*Ws-swB>&MiY%G(m?t6CVB1uqm95X5#PwjWmyz$wgQou^n_A+Dq?Fp@*}sh$o4 z@{dI~SCI1s2|Eff&C`wm-3$1k5$_e!iuKe?_cBH6_^msxo0%y95+>T5Q>YVGq>npbA)YwGDBchYH#+WWiq^NP?4 zGO;j=AXX8<-^K5KRkxFhU54Z`$j*41i~`fyN`ZUT^ABR1Kc39U0`D7OdK*-k661U_;4Y+~^$ z;l6aK=irsJO}e3j)k^y{G+O$Fs-%`~K z;kB<5d@uN*wTGqc7>KKOlDQg@0^m3JkXZI+SloT1pre-chIc~~F$A*LW4f>RBy#L% zs`~~9Sf(9)tbvgJmpwi-!5OAgs|ZFdXEt404dm)~;&?I<&h9G(TWFb&*0*oU=*Wv^ znf>=gb6TgF01tgEV{@2{z;x$8dL3owiLC7Fda+Vv-|$D2IGXkCw7>?DABe|}TFQ!@ zqU+yFs0sa5{4-$O5s{g#yUo^zRuD#bR-de^Ts?+Vf&RvXT6E~bwD*ODLAcma=J+^? z(>joe)+)WWewo_qvK@I#^hOwU)d<~g%_PKdPS+@O zCWu|nG|a}Pt|97F4J(?Q)P<7A>x(Qn!;%cififzL& z5=?JY4$!3WN$c(VMO*tuE1%mswTxo3E9#lXt&6ZfoB6vU%|&Q-26~$K2OixyH~{w> z!Y5I>z4tmW&h>&p=HNOK9T8EVu z!<5qN_*SZMoo9%c&XxRb)xA%%3}1xZA{gVXVknW1d#q!EZ;DQD69Z=6*Q`8lrXFt< zFG7=K4OF&loQPQ3GGRhm#MlNLNQK zbe1gOfzoiLIb0n-t-+h(TlHuPJE!`@VKtY>)tbZg@l}mlqrP>x#51`ppV?AzZ4!Tl zgV6!USZC2!*JCzF7rxf0^2ICV4Op=5ZSmAq6vfmCkARFe!$W;qAcH4QppK@VmB)CD zV$j3u(*hYhIg=R4S*l9PD)}V<`^Qiv-fh{43YcmM%@9=A!Qd5FPptWd z6Pb0STfaxFVZT0=5`{w{b2;?!BoqNc$5TfAY^`!3bbqIZQ_BvX4Bo(gfU&SHb3H5> z>V|Qk;yC9?RhMb4o*YJgIwKV)Dn>u)-a^Ra$62w2JDLyoS1dk84+h7c-e0fmL*5$i zTCZXW;k974KqI#Z`W$*5RzDwthmtY)JM@Ylnv55X9h32zPV->wGG2W!5^~MhxY2&A zzSp!h4NQw85};;t!rKT!(?WuQ@IVCf9AU29HTM&S5){~6*eP>-;pu8WGTDvBW}pT zRBroje!A~h>QkA$KA@nEKGP2hR?qj+`%;DnREEwyz*kN#)|SoUeTeV&hXt&66=qjh zEaW46p}SGU>Xne*tB~tZ)$ix$tXj4OChG!=6|0q$c&F$U5r zKaPK5IJp+KNe}K5e5RiiiY6~^71KFoB})K)olDnQ-E6lq|1%$jb?gtx_yhcH_#Qv3 zTolY=`O|X3&S!9(HJ`=T{hXkq7H7kaiXUDpQ1W>NenElPeo?=k&g!Nku%wV*!cEm? zLIX(*`DMP^|H9AnSxGPPwEYreMsw8Y7~cy@gtz+@C0}Uyv*tW3BPAo^J^~ND+*Xn^ ziq}yYwER*b(y#L4E61yp5U5xGKTQ>}{>WA-71>jzv9jM~lB^s4aCSG$_MDYq`D))oEY>!zj$%R4 zS=0JezI@P4XU@j3^2#Klv;Q~WjU-{VZ1zlST7j8bO% zlMc&@*6QKx%$uj@V2OWUs|5#(muW3**x_`|bFL?mwoa+FpVDm>Ci;F!?=EVOfKK&u z{q!MS&jL0(v`Fuw6s%RA!naPhM%vHdm(!E>ZDiz+zhtTO_)8Wm{R7xD@ZNwc_99FU zDWH$-xtDmXJa*|W@_rq8OA{hljwD!3A_c$_=lZOS&(F)4c}9~LD5M|pg;~Vw@`&c4 zyeju1+|b&Cp&h+da}5`Eqiu2W;@NoY6Q*9D<1r8Uh%g9xiK1VWeYPgyZ2kY_Tq9;mGP=gj+75u<15voY*J%6Oj!tpA-40G%w2P!j7A6rv6ry$JRYh z$#(3abUl1I-mOkjG<7uy(@p$v_OTW=w4aNg1#slbcaD&?=OZ5 zjXx`vg?^zQnm(T*_&gZ}OpU=$$Rpac2NMRzOZ(eu*zw1fOZqU#CPr;N=mf?_X1*qb z*2wOBY0g~!?vtNCR$so~S!caDKDU4>Wu&d2(+kkr(s8A8EWoPN2AG4xFb#pVBYws{ z6{RIy_Pgu%ac^^LS_WcsUn#wj*5LXlZIw!$D~*+qa_N1#Z_@{U3SFEswf95bCN&wJ z$3y;AKJ;UR%`G4LAspuIWE)k;!H&7}qYe83#uy#Im6MHCjk4xilt|b-z6BV&;y2?Q z5)rH7V&)0PiZ*TQ(BF`E`Ou&7+e>Aq<|*A0<&q8e5mNE@y@o6HijqJ2OORH`cuoClPkQH+}l+^(*hYhc_MpbUYMEJDDQ~JC~Uh%xOU;mIfP8z zlBa!}($c ztFwrb@WsQG@+MY-b0(VQtL3HxWR`gc@nYreJ{4+1g(Y;U=-0!!X zqEI!)UpBC=dx^0J3s8O zb1QXNh%)G~A>(|TY`u?^gMXrqsm(@vTn&iK!>(eE)Va7DS## zZvDz4#gL20*;xg-J<`!KIJc7Jj8LtgbKPBTLa@b)aIyU zW_24hsqJYPTkP#m!xGIe9xd~;Fih^Ikhh2xd@d?1()hF%%3{p;wuC}3NHof)NhL^n zaHtG=^5hyA}`rEq-KHvAPw2837SJ;^*LqV+jgrk={DC11*#khQflX+yt(UXVKqukfpGeI;b^~F>yL7CjN>-aX5(Vo78qp|OfykzD9@X8!u9snFt`(S7u0I$vg z=DEi)OKGTot&)76D4n3KL}kA&r~4Wu`*lBdc_i1-l8Vt#?`u}tlH;+oWGzIZI{&^? z-&%N^2NtQ2SiZSS@KwC@L@BpyEcn(nZ>1s4nYIWpg_Rrwd-t`(XI+jx1w*e-WnC?*nhDsN*;zA zra;PRpB_vdP&1OZ?B3b2pUkq*V_RQr(6)aIO{F$79HRLs&JY~Tjo^#Hlstt56f!FL zr*hkgfS70*N^q9#9w0|M;IumcAo?_ee*1EwP3a6ac`-iUo+n6aVk#0-;#K*)1og~2 zQcBDVjgpaYwjKOCc-1K1!OdTv__NdP`K>)@YYx}@aGTLRATN8xn#T$|Z{R~}CzI-w zRTNhrd;#cKf|eQ5%RZ!MN%WdE~Q}R<=Asq_yqntr|OZ zQrm2;-h&lYqi*PiW7ZLdPz(Jf2ULSSS*QP=@+@oCORc97b!H}~i_7xlJWxvJQTV}9 zHJOiVt#h~(aYD=)5`f`yd17S)zP^x;yE3ykAme7E(s~wz z>+!Vu)q*{CoHI!PCjH~t$%-c#l0Mb2t_1D`DFD^}*^3#;r_Mn-Q{*`?IjY}B?j z2GS$J$eFm-puTo_PO#5wT!yT+a5C`!Qu|uYjyxEhdb9e`QKVrpc{C2EuaCt^kKv~> zb!^{z9NwunDfZ(m==eNHZLDnf*8U*8R<7lDfP6-KQ!B0KasnyHxts(9D_8th zrg~^8fbd=gBFB3@{Bn&IlSVE7G3Ad;-ZzpKQJ2z_!89?qGIa`WDdi=&`uOOqVm-bW zP{@#LO6h3?=*c#nwY#1)+Z6Obji%1w*Q&(mI+O%|HeQP- zuH$VyDfkY^r;r30KN!7mf_PZ>|%av97^Y}`jS%>U(4@!~(){-(4k)$_j_C7e= zbPwGQ-6)Ar5V9H6=UC*Z!C%#$lZ!OKjZ*(M$}xkOa6L|*Cb)*eu*0c$$-bxl5ub^& z4v;9~Dsr6`$l%Gvq_Dx0PC`iXN+C7O$ZN;@V=HpFMFcJ2?jQ7yPjLwDNY@H!OGpJW zc*3TCJbAi)u43PgO}~xuU(QeZT#)cAa@hF@v6D9G(q{{lK3^F>Ls6~8vmj#bzaXm#ESG^L+DZ@c1PY=tM`?9u~x=1%ND z6t%yqYBQ813qc$kgEY@*{d+j>4(RSHKZYIj6HMopQ{i0aR$g>&E6w&HR=%)VoUpt^;a%wyS8X2dZy&lq55XRwk1_W`D25{VsnSSlQ_O(lCb|VM^`j^3(V@VHAAB zM-;~t07`y($yqoOME!1BP0&P_W62DIfL9Bcvd)Tiv@UaEs5_L#9|I2i?&x!?^bWLF zlGFXD{EG|;XPZ~_@hK{=#K;LPo#Q}K^u91TjPjZ~gK~8oi*p=FMtw&2G;R0LN0~aq zp``L7(nsNYgzkdYNBXN!YW-tdBArY@PoLT`!hnD;-@0 zw3hGY-nPkD+;1XXwGcaEwE!t-n1ye-wtQxz=rzc^ z7us88YGdfhX04~I*2De!skhOz!?Z)&bahD9iILvl4jv}HDbj1Pdkvix=K`GcTH?l2 zY&E>AELB(O0-F}d;K`MgGo1o9G`_Z$J`WG?sg0!5c>FH#u-ye_caT0G*sR;VKgtA5 zpW9xqO|T%g%>YdDK7VxZ=;!&G|4OV$k@W;ant9s4Wu)@cP0Abv^SwqI{l!%4m0CDn zM~2f{oA%f4Nd;JQ>$DbWK7S3cfWMCl^96imT8q5`qBjW9^+Kcxy%6w`UVvsH(_Ckh zK<~?zDbp};RXnpaN9|hd@eB=ac8qvuz@9rNsqY+PubpG`R*_jQ)2eIs?d=<&ysKSU zm~3ZP*VUFVn+;w5%9th{9%MV3A`w!ofYV_)*;fwNU030jC+g+&Iz0BsL@DKQ-#AGW zfn~A$2kB>wpD`c`jgtcfD#VGCgL{$aYwr<#l5m&@zw%F4loaZ_vHZd0Ju8` zm{vy2fzn&fO!DilLO3iGVINFhowx3C**xXz7dH-8Q(<$0ZdS4t0CNn$l8Z(|n9wqX~Xtk`k z1h1^@@;}l9yi!){XTo5>H4?7%d7-@bW`+J4MKiKkI%plh!eLsAkb7oJC#sN>(X&Tz z>eE~{faFX3nRX6Hzc}pM2g%#?p_CHg;Nf!0$q{mB+Q*n%PL4A-PL4LWk{oGnwfkY! zUUD*D5}JKPELMv(4}g1ffO!D?V-7G60M6PxiFp8gGzXXmz{hfcc>sJo2bhQU#DQ+V zJ?Xr0F6+|53CD&VV zS5+s5YSqH3&i2KcOD+U|toB+DO#po=d+#?M!8&;$a{cuEGyU|6UEEGrGAvK*p{KmJ zY;13#A|^~}~9KQ?<$VP7yA{ehvx%LfC zm49cQg#nd*vQNCJ>nf@d|?N^f7v_J-*`fMI}t^!}BK!FUNTmykJt+gY5vO>2K$}OH}1D*O@ zp6)3Md5zKuWN@7?j3>|4&mw-hpCW)oFuz+iHrF0mN)ceAzsR+Oe+E{u49*jp$HQti zaG!(ftB;|$U4?t0SpDKpPa}r4+5O-NQ#k8(F{*GsU+H*XTTt%j??L|bp!MH#9=d(G zozs0G&u>@hkntN+r=eM=Z2E|F?jjxS@d}&Lh9pX0=6G`*EygLc?A?a{ zby>UX%Ngg-L1kU>+NY3%j^(UuH>fm=+dm+~%_ll6 zD4Kc$pZXWjC0&7bgo(uetgl*fY>Cki4rl%~U(va=&h##ls}(hQnbM!1_ZfS*w~yE6 zyE|1m{LACm{@XK(yibb;Zb?X^$Fcf>UGhAKZx&pqZ@j7UMQHBohxpGCT+#&m*T^q1 zLe%*Zq1?N4Py3A&y(>^@Vo}ujavmm6`%MayPmDho8{VXMYnk$y++Y`A$qO_Ve?{A>YmAynFl;y%>m{Cz!eYA$vgnQo&(GS z;Qkz79&Z;65V|8k-YWjAyag}|4=TK^C%ZH>70S4Axw{x&oD$f-5=n!!hEx=So>vH( zo*hIB?4`PHcF^^OAju~R2@J2$*mg@}?Dz(TZMOawC692(!F zTH|=WvZ=H8tpg3W@+_nl@!LOk2MG8&B=_+ zFw$d5Bz+4Z+}x|AZ^dKlER(D$bg)|6zhRg78m09QW?06mwe<(07idwrbe4x#^YC4x z8vlHZ4#?Zc!_R8LuYGkRQX`nJB^6RhD^zba^>Yx1qQb6H)qhPz;RE!{RcY zUZPBM`)5VXZR3gWFX~v-$j|peyO*&*Jjz?kc)u=}W_2k;jVxg&P&4wqL{^Ir$(FP4 zYiy0Y2HKcq*xzczNnXtlL@{kASLu5gBF6{fPoCP%x=%e_N>=%zF z2ii(oxT0VcxDZ%1!Wp&>E}R%m->vEs+IZ?4;zHcqdbNTfKyTMEqX&Cf{x7ynCI;j5 zJtWcFsddbsGhy|ZW=%1Bv+n5S4>PW{5gXN~4e#CgtkwMoQnDI+pPX{{ZaL@-z2Dq& z_XD_$pEk2%Tpf7;fb@g{#jx^aH+hBlQMJb+B<$nAZ14v<9HKS@ z2Hp>osH2pVS7aX|W8#9sM=AXXAU1sbx<5twoGt$U5ujG>9^C#XK3UH6qsFeHvx5Xh zDVL*fI?Y*LD)Aw2gsj5%|Cl$rhV4S$!!V|wd8Lr~DMj6_EC=y+;=sa3R=ke_&v_%h z>q${#ls?jrDb(-bJSSN6GVixx@Snk=xw(u!3MA_or4B~w?T-_G06kM-sFbc=$)M2{ zjb4QlODjgPuhl;Ry!}ajI6S1L>K=x0t?B1LH@;b|J>-LVWW@faXt_)y)P~AzV`s2XhmgFTRsdy)xwIIuo)r^d*u` zzOSjR-IwJZ#?;Zj;OUAI`jLR>T{g{w!4!e%S7D&}c9GGpC=)DmS^dnWa$ZK727W{b z5;R$MKjpZeiESx^qKkPmyjd>!UAo1=(u0G!WP?0D`HJ$zy)SbY$rV3Etf-&C?Nk3% zzMx(}8>7O20Vr5(^eRlemYeZf9Cu!ezm&qloYzO97~f;?E}317unTSztYY`s{hp?A zRK!toWi|E|F90e}$vy%*16 z<89T2tq+XKzsL)`t-84Na|0ybCh0)Mue&>D&z}d~{)iZT`@Ed)CmG$G?D#rn&)^-O z3+6#?aC0>C>^a$~Li(?ui&{r4gv|EKNuPd4wZ^zpvNp=pl<|e>w%R(Ac%u7GxlWpy zElj^lDqbeB+DRYK$K2M>i8Rm(7X?>gFtUZrg0Exr)w+t`OvxC%-DbQEsasaiMrmP% z&qXLCqXh(_p<4SvoXxE$-7dTfqV#*X-a^uc@Qy`eXH5M&%tv`Zqwx2ENkX6(3eSkJ z7HZ1Y9C)#ivU>@vn&i)}!P`3HAo#KuWnE;71L%6sFc15BV_Q5rLva4FaEA3{{xPj= z)%Y*fIGVdFFsla*s|5JDn$ljS^xs5i;roZh?=x85&y_vNFA|$h@E?w~WA2Hexz3+t z5p|^DTtUgxt9(Fz7-;Rq`pxw3PFj*53b3hB|M78n&RFXLLVBhWEZzQDI!8Fkp8f%m z;5p7t{J@@t#KpI~GTTVMC#P`g(VXaY|5M)fk0@gIzs&n%dH-PEpUC@1d2>l_x;Ayyia z({i1|jo56-{qG16Tn!S9ICF#TzjXf+_Pieiw%q!!SYQkq8sE2O?15|FsY@h|+Egjp z5qD}x#%`t*NyJZf_<8^AWuc1Ug)EIXAX$YR2qSD4%^^)zhRGk#Ei87ZOcKuvxaZdN;sAPL)%3?evl_&p(X8X^Y%Vw;Se(7dd@hGhfAT@+&tPX_{u7RmDaS+0 z3TWvc_=g>=JD5($mvJ*YZ1TDtwv*5#;CMrp5lXV{AUkX`@?*-u^+S#!2J1ECF$}M+ zAEM;whm^>y%wNji1_GJXgAMEXVf|n^um};#j>v4E3=_K8EnrLGzY0qJtP$ccf*jh# zd;k&rS0tp5QJ6!zUs50|N}SR9gZGndFDK7PZOYUKy5CgPg%)+g&59Uy1TvL^F6JjV zAwW(iLW@{p{bSe_BXTLVjkzlbAzU&Jg6eUmJ3=bkrJ7AOWwWch z_&L75&WKfBzX^5Kf=p+`0*sNmmTwHbMYE{QOWMP$?V&4@wJL8=QCAI0&m*-iTh5`@ z3)BP7;o@L=~i;9&wMOj%s2+uH5sZkqx2i3(<3bPZMEzpj zJYl&zKGHsq?*U|W`!l<-l?$t~x@rA#ezAa!ynur-qtXFHu0l`AY;5h@rzg`v*FtdS z`*beXc4?HdL2e4muceA-I*5c#nIc>ZYr2n6PAX(F6jy78zqZ?Ufi_~Wk~}R6wstU=)ZPvRGWgt5#oNKUjDLTIe}$9X9Ykb|eHcgW z+|LMB8C~UM#K}q);Ic;@#!<5-UMV;dcQx^%g|{Bg+FhDK^haNYwuh;SAes68Mw2olRP*+W@Ityj{@mvcTDP>&+9-w=|^L`C`>)p#ZSfg$>< z5E)(NfD_qZKjG@9tGC_^IyYx-$0%8t+O>V#J*k0G`WgV0^iF;UBWs$~8AQ8Y0=xgb ze9oLOXupz7hiXM6&jNxbfXafPI~bdtzujs_A^l2XSznnLLsod}KA_Id;3KYs+U0gD zUH|Imk1C2edXB}VLxdew)HYpkTY`SU=s6LqoMOscS%6gQw%6E3M?RUBx-49D^Z<>a z*)tu7#{M7}%HWO7qu9vF=TUim9zB!6RrBa~fOPeP{{i{GE5CLTrx3&B9$Mr1JgVdc z`!FvdU=x2nVeQd1?2gh_OFpxGk3>v@3LHP3Nlf29tv#raup_5^18tzYU4V}NijI6T z6{Pzu1uir^nPnKu&+$!byxJBfXF;@2O=oEKu(qwesiyvSy{o5lC|tXlkA!sBwqb;O zH}jF<>(56ah0wE_g9PKG|3ucIW}6iTxH@lhh^G*<q<+$rz#MI>L@Z+6NNL#%&JaxB!EV z(B3XEQp!@7JIIm?mE<57D&yv3;1Td9Oo%My3v zR5=%DU&!#%UaFyI8=zGcU3^tU8}riZeN2o3Mu%XHa8pyOggi2&w!T0>oU8yAw@(9) zk2`Elg8hjf*?2KPB_K0Ek836IEYEFGGae;0`5RgIJbVXf4p5q~qhhuGWK^r9Hs|}; zxLFbmjfq)#x=>vonHr##ExJ|t*tnz;v{PbjtBp>*o{w#{g<;1~X%26nX+cKsK!&N( z-cKQ71;gz|&^nWxFTQ>%+5Nzs%BA~hJ5&h9L)8wio|4$GZOi5-=ik~MKQu*Ie52E* zryiEv6e3~{%o?c5t8&WS8qU}X)@-U&Rg;1X)kOb@>}+S9>WMa$Osb*~S&ZS9ymIQ1 z>L<2)%MOm$c0Z+53}->cL#Dty#*!W60a;pd%P^9K-i=WfM7bk=FbW_9l-~Qq*g4+F#Vq zTF7z+T0Qys{=t-^eV>wNsBF>s64eiicZS_r$9={03@}vNmkQ69N#gA`vUlYl)yI>U z-7sw+UNke3FOJp^#qEpp^y7^a+f4_Ob9x|1tsDTvb||4R5_W&%ATwop0Vy-iCQ2c^Al= z%gToNkgQAyOjc$dnu}tkCE}~O2vJ(jK7>k-uGZ1?=_t3!#jT;expn!Ae6ej8W<4hgjPaHOme(jrw}5!`=C=XAmWiC0Xxi_~*XXRk}lq z=_(MlQ@Udwk*;L#As$vpmwW-Pd%6W#exu2;BaA3x@*hRk4jJTwL5$o(KdXDI?lOdI|MmiAYuNJDg@5NY3GqAl!`>l>V!ngHGc)x}d?)X!;hlNavV-E4(4L}-gvQkG?K0mtW+y!KHe{El#}zpGdT~z$v%Y2a?V{0VWirZ z&&f}6CeD*(7xd1=xg)ibfYV(`KR;7k9X$4OKNHtJ7k&QVSkcHOt5rl+aWWF|tOhcO zU9KiaBpXzHvdEMsKt-B+cA{)Q0&~iwOeULP4ehl*0Xbs?_Q-*+vFQpOC%$HupLqI? z>Ak`lrm{7862+ya&l#u)!O!w_!@bb_IMJMrgAYp(_8Q&^c6opaUlYY7rernRa{xMC zvHHd`3E!j1B)^lRmB{(Zj7#j~$z+5*iA!c(D|qh+MK@dctKAlUEkn%_k)y7axae>$ zX$NPSxc_Q(Vx;=W48}^yQ;2KN=TY`BIEHed>&DU1aLKN=`t)ZHF`}i&K=KEw*MaNH zjIYs{fAp`jXJBoHZNMpna3ubGiDpB_tf((zwE}aq?A!T>vA)v0MIU3aS%JfrM>APN z`7kR6qkU9S9DNXH2!2iQ`DOonsTQNl!h~QXt*}T_Gw+Q=-}U+rtuN}_G@L9)sDbf{-G|6slUp2_ zH@QH3W~zSXE>C_RMdO%sW_mEq?AigHn)>6{gY=U2WeN3hS(M z==|{5Wky;9oS=3&S+u8u(t#ReqcyTpmhiui7K+2PjtBr07Gu#z6g zFV@6*;==V0#MXI?j~A2AiIz`nBDXQWElAHfCai2lxO+&|tuC_tu?u_?N!3*O?AFa5 zNX51?JnImT=Cvx9hv}(?A6jSQy3M+K;v`jZ)piz;pU&A`PN6;Gwm7*&p*}WBY;_Xh zQF;($PYg$93=Q_bP%CR~;9#o+;1dkBFUOTO&y}R-IWLRai*&HkWAVj$Yad|&`exwxNd~m?IbX71iN=)+~8jLK={ig;i7U4hD+2h<_Vk4#1{{~W@qV~oZ&3rM3>cg8n zhKh}+_F&0itL3Yx(Do5fGcAz86I#Z&w;^=lf>XiK)BwMX1L&<*lY>?HZh)f6II2{) zjn=INB7<2+cZZ-OK^WO@Mi6+^Ch7myCd2e7Vwj{2vYP49e8p4EoTz7ssK<&ZfefC| zo*?R6)?d#hU*td65Q!tzt8uhV8zrV~)64^aCuSXB9_2sB?vp)UJV}lL`{aUf(`_a{ zVfak{#Ij+2pm8@e8?vYM<4yG9t?+p0TP{RYB@Xc7owZf#{9_d`c+)+@^U&zzsr3lY zaWl%#j$J~#-609HDYT$P$ayTytGifqL%+H3OS&1VhtrLou2_RAYrWn+j$h{3^l`XX zKaKUn;C4n+f`8}R9z|}s!h$Tu-;1ioO{0>enf`&pPmxhoV zEDCGsNyI2-WNj7MGOq>(8;2XEa#FqvmFcqQ*1jOerGY-yMs$GtlSco$SY9{PH{=ekVTvrHV!1vq=@qtx9KNBv1* zHb9u?^02cUz~n&dSqVB^4>2lYD@`C4W#&!{w0_bLinjz-@C z{~7mY)@ayfu&r}3<<3NRVL} z?dk%C`hx2%4g^b9dH+2at9KG$SQAH!KT6&MQS{H`y&{npY;de?M7qNmoTYs21b^ld z1|nmDoe${MFV+y_W9LS#`=EYiQ(nQT#O-5ugvlE~m7c0D0^O~@DbjVlNIGL!C7D(! z*q40Rt|HU-Bq>1{%G6A30&vwcvJF-$K3*fPCu*WtwqU8S4#25q^`NIP-AS|o_u;Z8vPYH8t zZwKEv%6x`6eJfv?zu45MW7YKmxKD(~5_z5tO)i35?1GQvUh0k4aHC2&xf^e9tML%^ z69?}g?KzfqWW*NQBk2QZ(V3U!EwOzzbx}Os za{e@DUY^Hj+H$68Cr9lkDfZ%C7jk@Y`Zh}K{$io`iqhv1pbNM*M3~|QWr>21QWkWG z8vSL1?GEcv0U#Y*RDfIKXad+iWnlc;tc#pUQ!m6^!6z3zy!-4FwleP(gRO5&1XopU zq>WvFV0@xfz>?*+@0xyogRT4a?|rpe2LxAD%*tB(Sg>wB!@K@6Ohl@$Cs*)eV^%rf zJR&%k^7){bt`QNkJIP#@+(R@v)?r!yyc?`8*VN6oCbps&W-+CVBA9x9{%JBt-cEh+ z0azECp-K%~yGJI|%Q>=mHZm8K3Yqpw866{Q^Kn95jf1*E?k@2}bKc7NJ_?W(Y?3my zt|es_-KMcS`A$|dj=N$;2_wQ9`cp+t?^4@2ho&h@n#o&%V-2#n?2@@m(>G&`GkZVm z3#1?7130j6W}?>dOw@|$EfcXWagpl;8$Uak>d8#m8*$~4{uh~C{K?cy)Os64vgLo0 z^`MExu4~fYVy&SAnGU*yw5@ykk*T@Gm7VruYj~hJk37nGG^@SWibw6c_-#LqVkg`5 z?G5xqz9GlP1Fb2ZqIP23M!oBN`inL+JK|3$?YWSbd<37-UkYv}{&~c2KUs8pD&KWa z?Vz!=SCE_&NmX5`{YlbkFPBXee?hR^C=IrsV$ApIJr6%do@+djAOicnp;EKCKWd*( z3^h!)?D!hxO6HzkOD_bF@pTDw`CKWLx~ws1j?3ps3ZT1dtoefTRo(@(?2nPmTVnhDgiQcI-#Jt1wqIN^VcQhY=b}F&PHta zf51pC+sK@}lMjj^t-s-curZK)SbzcKsY|tvSQxB+Os?Pj-eBeZ?mvQkWu~LMH*JG4 zIJC1Hq_eYhihh8OfZj;vWvN`JNM6?|Iu8XI=@jv{RH>^U{6CWahw^L9dNwg^e3wp@ zuf>(T9v`dDtiQ|n8@~cISwo9aZg!`hiQbUtC?Hn|vR$>q(4pJc2WjiL7`1l@fpHg2~eOZ{q!|@G)|O*^T2f>G-NtGu4!Xxjf@$)(4};3 z5DkO>lQw8Uu`=JXlb6QIGjsZr&p{vyOh0Mp?gM@7=Jv(O7V!J&kp6HO)a9UO z1TdUR2#G(X%cC=NiNSX zy~=euN;t@*DaA@o!;^2T&7@!F7Y-Q)7Pi$|@_oUHC!q%#nW8A!4y>9YI~kX7NAyTG zf3eXc5;2X}kt@RsbIa*oL?6SBzs!2F9QW=9rS% z!4<)(H72F2AZvUQVEGY9hZ;jYq(gnAXm(+tfr35eAQbzn>9fGlTnl9;RQe_D&U2&& zc|EP1enZ8pjtpZuOB&pLLDZT9*_8=oQqp1U>hM68(Lf<12NgFXCingbReCAy z0VA&P!UPJ&i(mJ6QA%5c42?enqit<`dYJfX+yUH8xG26Ug_FAwau<5Ns$W#HdM%Ci z7m`(@yXs1WPPRAJ0$-FP%{aD{)MHzVg`Q8L zv)!PS8T;k1J{JZDLF3b*Wol_Z;wgDVq~~H^uEFKyD~M!BtGP!qev``?S%{*|P4^Tr zK4{RD5x!yFPmI&U^|a8N!0gvKwbz!88E0UP)>l})GYQ$IKpPbNa%>MsQw1jF;R}C7_5$@rvhRxbPyah@y`FU2**iv_Iofe zM9lb*7|8@$DmT&7oH4dq+qj%EN>3EkD5yPsiOZL`ZY%YClhCZgHdn>wCP`O3+QY3)=Q}k zmxvYtzfe)jt+yypB2pTrHiyj6zF#ccv1XUGy35V|9nt=N(Q$-dc;POj!*)Z-V!VBBx|#FlF6ltQYtmu|0xf9n_^t4 zx%r;yiImSCH_N^ytx1>bM}l28fKO*%C($miua$Td>Q$2Qv8YlJ^UtN44Np_QUl2C9 zw_`iiDzJwcC#80g{s9`s_v%F(F`z<;-za;6d^`D)+1ts|)LOE#b@{Kr;_GsO4Bl?4 zbUd|CEZx9x#R(jq+Z>)Zetu(aW8PMFils)?>4%c46MQ(2IP?gv8o}d9ffdA)Fl&;n zAYP}q%Bv72bZ^WHoBY-`-edTS+l6`4H4^53)@?E0Jtd&$U_K z)pMgb^W<)So1g73UlweN-403+%*+}2;he_)bRdn{e~%16`%cL~r7zJJHek9<8+&e- zOW4AAhE>_- zP5%pY>2qn?xm@9&|6hg@z46EL$-vsGm^P2VI4sI zzW2rH?|RxF8~zR1Zb{MW>tkn^!mYN9V>@@O zRx-K`z7wv|@3Bl^C+@H&*= z;$n^ugB6s~WpF~e>pO44y_-94hOaLnGr|fIGS!6L!R}M6J8wq0^fc7wU3R8AM0S?d zj#o_7RmI4bs5P5xao$ycGrpJB6kA9j{4%{0yp&a zu!!6unxGGJ4$x_zB%^#KwLO~yTc!1SzDGwsttMW3AKf0%wsWRBlA_;nf7G`pelyMF zHSZ$*tUG?n{Qs{ze#-mrxZ_v63ABMEIWJD3ENyrgb_8WWT?^k*y9-oQkg>}=+3wNd zyS&k3V|T)lRP2UHbN$ zm|J#EU8c#WZ`Guuc81=1@a)~D|L`u-)0sTEwbR2%|D4^XfB!Dh_xD^mBJGP#2ao<` z0^=pE#WZ%;_-L)dYsZD{E#T8jzYAgDpkUmgrslJWpI3M)$F+paM^5{2-#E) z2dWc%m@=Kp;qs)3VDWMJ+*>yN?1L=7I}c(--rGkPX;nA6E z3SYT!!(}L$xS}s2utgWgj>@?@GPR1?$nVD5;r9%6nqAJ2#%FtlD3ch5ClE(RP1$@F zY@sWl&w{xawy#=}2~4K;A*)OltarP)b7FX_9=|VaiP9SgNN*tj;oA5(lFt|5Ma9;X zXHI4vJlV`XZdBu{g%wQpEF%q3r)fQtUuN&XD;j)SU1#;haFFRS>G~?_JH`W@HmbF4 z+1S_F-&r+8Dm?4+=)6a038c<5n@0upkX*4R$Gz^8IT!YZ3z_89o_qW&Ra|6WooCB4 z&eV72%r0=~@xxa0;Mq6^(93(ecsQFro=E&VFiK9}n%D{B;Hay7^lirUg!ui6+XZ=& z&$rIs3E2=z8S3!GVrRnpJ~Cb$R1@VSS`B#=LF{r|2hNiI<^8xcXT#ySol>`9rMuW1 z!I3PQ>a!iyva&ZN$wCV>@K(1o-tVgS#k;G<;<2xUc1+$q3c7ip6hYNu;dLp*9xRE` z!e;%;8h;#k_Xxfao9PV1aN1aQ;jYHAjuKAH?Tu;4ex(1u8`^waJ1kgyRyMYW9g$s5 zUr2YcMWZ^4uQzpv!S1Y=rk3?uCM;@go?U5Dq*0;lib|1bJGUs0W?GcVYGq>?Ci3Zg ztHg+Ut;RNuG==Vn0#r}>=-10friS_hhQ>S}X8m$FM@8CX4q}a@AR8W;Lir{iW2DQ| z8@nv_P!!i@#UAXHSn3VUes%Gj>u8?V$0yFhxJ^|^T`DvwNeG**J7;sOQ5)qB6y@gG zSId6595u?tRwaI@O?2Uh7p|oN--mgL$@_ym25S0ad?me!ibTQ0#}Rv}(K4#$Ex6k5 zojYXn%5hn}%%MJ#F{^&o4`tc)38u)upO?vg>;3HPdmyu&W13o&s62|H$+Df8WG5_P z=SZ4IHnOR@a{k3VHpK1Ky@}47q!03y@y*C+Y>eYzS|LJzs-_BUe(ujsdO08H@LZyk2RIx)4-o6 z9`=-lGr1lrRB(F&YIM6P>W7WD|jPL1r^L*JMX zYTE@ncaIg4Quk;a-{&4r*{3Oce}jxIN~%z@ir?dAvI==!R&f;@Z|Tzf7m%)g@c&VM z?%27kVk0paFN=2WlpI+_iOkCUaj)VLcJ3?(1Q0^m5t(gW@9qAL&#>da3M#7A2-^LV zMetvdkc%k<>HbcEqg~nr>1@ZP?X`dYAWiVSFfAr{0^}xLdD*(|L0*)4un1 z@nF+F*{r1B=i82vx%sG7SEd-Eo1r7s zn!{>-EbAH;d9-!k_pOZ0piIdo05&@#wg+N7{_OnaR5UhxY%B6Z4C;+Tg=f9Sdq|-trEhWE{*MOYTT)gS6vrVyM6{S zbqs<12Q9+%MdCQ+iA}C^y?C773~WKLV9tUNEsV#2l$ZVhC6C6-a|7uud^C8Vq*^mu z0dyd>FQ&La_r$~WR>J+R1~&=0v=CO(ElPg`>HV^}$65D7bv~T~XfJ;QY3BvWONd#= zeJQTpYcNfQt63Q?F#-niFewp&_ei)lICvNsn!3zv`~XIcaFCB6(P zSo1}_VUo%)+bl71)H%PS^l~Y57 zsWO6-J0P%I!pEE^Cw-*=RRKmV;)bdcVL?iPuTmiQ{}o$~H9Z^by0M@g{U%4#t`7Yw z#mZtOhXd%Mnpt}A6+r8)+hK9RFuEtpZV_nK6=n8Nx3ubd9~NP}+*&=1bqWlqd(bAS zR7{SVXgZ6mC8!Oa{m6@Emi5FXetE&ou5*XeZ~bCHi%ci>f@FER4>K?EP_kGxI>-d= z%*fba_5afy4?i3xn_+u%P!9}0TXQHa{3r=T`KNQNCV#KyPsP?5w3bEs#~GXbarR;V z5a}wzS@ZTPLT>8SBSxW~bS%;)-9@&&qFl34D+>B^_tGHTOGhf)|IBdq=WeU_elzQ; zmD${F0anAByRD}Cb9Vz=YM;#AS+SbC2v+;W zE<&k0$d8?Sb%4@-Lwhb87Seu|q;T%_K?r#be;fXRADXdY3_HS*yjl%&E zNw1-wB4Xyy^C_h9b)TOJ!kb2aR7uFxUe=Dn9$S$AKo@1lO^) zlSi@nOt@ccbRvMR*KOA2CEj!^&1RyCGTj+W;$z7nq|f|5hwe+dTa=FVmBtxe#h<4M zbgSKB>|0v-MLc$P`!!&j)`Z@E8t8n!Kil6%Kz@E40c^+~r`5paVMm{?%pGkWgWD2M)q$w?GZY7l1~ zmM=l12JwzL`4@;zP|l_9i8$Q%JcR`7E8$2Y#W@|zCYuP;J}>68GWy=E~vkbV44sgLeAfaF{uSXYQTc2DnI z;$)>SbssN>wRF77noIW-eWOQyD(={tFdAW{s#^%iwxZw?ctJyAj8STPAp^>lBwImm z9f+6hS+Rg~&gmOe`El40zKO=NJ>zrT?{P>i0`dU)vw&V-;c{%SMR`W+Wi@5fawa5c zh$4Bgw6Xo_DNi%S<)p<%U;!u^w``1!)-4-lYlSAcr_)~9>Tv8s z3?7|Qd{-K*R4kQi3@S8qK;Z&*rd4P+zdW#%-#6n4suzH{pfBipg4|&YUMjw#QCv%3scd2nQ!1NOQcqC>VswN$jmNm@zQKqUngm$Z4#2li5x+hcB z96CL_k?HN}_TX9NTu<{$b4I>5XGm-0{~P^F&2<;j1oSUVFcw;G-vx2qGvRb^!g!KC z+P|S1x=%FkcjP_Gyzi9v4Dmn#QKgJ~z`%j`h)yG2E|D1Cy|mVZw$#@$CaVzb9nJXzI}0h`v0^KZ1**$?t~ z9SsKi9pqD>eP-RNr0JV0+zYP!TJ>3Ug zwW}k3n+CYKV%67C6(pYlVe%q=U>oba&}1IBi>6ss zbMfK5s)^d~a{^TfSVxAic^}e1W2v*m>05iHUz$t_?a}3B^DpG(VaW=;s8&~81rA;< z9PKFzN1N$a3C7MYC#5YnRo#&_RiiI7nN|e!{nj33H!!zvM5GS zdy$#1*Yv{C{1KZglk;2ep~qC1v_5io+XNKJtu}xM=H^^wo(`(o@jmy-Z zJU#mxUyRdtIdajYd%Z>6?2Jo`x>A~W?j$!dm>K}3_0 zlV5CwD5*tN97_P(}J0eDl%6oLI|;Ya(o|kK{5D$28J5O!`c`K2#h#|wLaf09JQC*?l4KNr zy-0C^z5{}_Pj&j##`lDlwbaAh^5h`1(`G8y)gN`91!In4$QoOfbR1rI^Z0xUo!x1_ z(7gXd5AI$d?`Zd_;s~WyB)Rt8yJxR+wy`t9iy_o&kNiyJ07o9 z*`n@6Vu02Q@Hlv*(J2t)@~6R!y;`$nT3>b`&uopjx}~c?V5~loy(ajCZ75xNH-(hM z&L{;eCASb<1gg0yTXmVwfW7eK#Kq)^gy?CaMm#Q?PQ2_R_VxsdQc7+kJx$u~nJz`G z=qOsaC;L>`xr8Vj1&1BQHKo0oCA2Q(O-lBfpjh+O1S{??eJ^Io&lSHif zoLIv>(6ZT9vAVMnMpD2BLe@K%(VaHWeS}c(=_(rHw9Di=hwSOb&x5afDZsJ%hzhOn zv3tYLMqHNe*V09^T~XK(4hE#Q7L{E^@MwyDxkrD?Zlf!LN5dqZVNZW5E?7$Q!dA)^ z+Sq61vRD-B{ytKR4XAl^k1WUaGsC5FWXOL2ApHV`%W^125H0pdSo%eAlV@#tTJ%eJ z+n*#=@@0N9;Fo6uZLVlR+?!SJZY2(jt^YzSE?2z_&a?2ah2Kh6`8vj0z>Cj>PKF`V z!g}79dlX+|s2$xWSD?(WFMY{Cp{HLExn){x{42e^BWLZ-&xPNj{0lPeMNC$#Tr@AD zT~LdX&ryc{H1~agnSaKFuP-v%Ql4hY@wF{_RR=$2Nv$Hv3KJ+gG`?WbYU7P6Q85Q$m2 z9IrzEAL8BvKC0q-AD+E;OR}4U03iVa1W@3bh5{lW7EnP^6dNKc0-^|tS9d{$W!I=! zzo4S1hz+s#u3sDWu84{SMHDMw$KLRLo-=c2Zvy)JzwiI|`MhZMo_XfX%$YO2cgC3i z3UvHSirPt`N{>UbdvC%jRXM!?Rf-cFx=j=>g3(_ICYwChaM7M)bG+E9b{MBho`I3=IO}w*8{mG_o#B&A zGNkHoqJdKkXg>Y-;EQRDTbyXn{_)M*j^@tGpuc%5?vY5zlS7 z7$fkXPY7XC~g?yvlm$Z_;%F)Q%x3OFVY_9hrEO|u;_b|n!u1>*( zjS?7s#=RF{TZ*>Y$uiKm_Z-Z*<3T#b+WUm~?j+#m8;F4y8NLDwx?Jn=VIzJ5g}ubd zrtxj4L_dNa`6J+e<`#NJT-%bHUh^wa48E8t5l0k}@o;1>gzoQ%MT`Cp78VJ+{lqL3y;M%Zs)xVZr6VszbG{<%-&xJ zpuSR{^h=lRhL-ysX7ZV6vuB|R+m)FY_Yq@5H!e}jZv?lim$qHq&1w!h`M<%TUFo?& zj?eC--15iy!`!(CcaCPt$DZ9&Ls#0^e;HI(6DcECpDZ6fXuoIPt zmxSD`qf_#>(LE9`+F=BLB1`<1*qYYRLpNO;Zld@&OpD zOGityi(4;+0H)Ih*)55I)6=kuC3O`{TV)Te6gMP>pJ{%LC1OtYU=Q0<3#MvNJ z&XfmrgC0VXL9_8~uxL#06Z)HZ2+mK|&hPn0=VZ`qGDp!GNfNAkXrCgCq|Dw^F4r%i zo~{af)?YIU)v{_~%xIKj(f#2k{~0&fNX|fgJ(#4Y29V~=hhj~v!AKvQF$y4z$AFPt z3v+MeOmK254!<%R8f+^f5Y;<%dOEo8zcu0`uc++>6=6bT79FC&mM=8um4m@)=W(`E z_{5C!b8cH9K&o9xVh8lFGd17(fVT@ zm5BEfWoS$vK-LeS`&rLvEpdz31q5X}h_gXgSranA9JobnPp79${~eK(_oCj27829R z(v~;blqZUCbjn0tuB^ev@ILFK`C$mq$ za30H5t%LDjmYCJC@MYq?8ubi2FCY{X=UZ|Gwt_7k$!ttc!W2(*Ct#9sDm{W! z`X;M3>03COlN}7*y=aS+s_%k#Fqsv#B{#;Q)YD_#dx_>JiW($P*)|sr!;9vR6>E{0 z)&&h|U!q<;^`sp&gODcF&%yZeU(jXI0h-p%Oc#}!V1mw#OoHIGhelYmgYZGy==hb4 zQb{wkP!pYvSV?}k6ye>+cErgN^R|YF^`(fnn0{ua)3m6y0oSk6Liee*Gi?5Wh%K(T zJqn+=KN-KcU>CoJR}`7Af;ieT@NfXTbVZnh?k(9z4d-3o66{at#_1|a`XKv3#w_=Z z>adv`(4uKkTj9b2N{NqjN#Y_JmhDYn&=pDIT3zX32qW$ly#K~@KU;;nE8O#^-!&_8 zWg!zUvuav;*Bn>&Zf9OPvAHMts%k8I$C?YTt#_K1E>`QbQ}T$P&( z1W(xRPG=8WzW)&YpV(2ilaF;g{l(q9S^5SE^BoX^eFq zyiW@x#9ZCNA2;8r1@aU|4N^Jkcg)y)88h{TRr(vC`1Hs4F^{pJt;UX3sZM2NU`>*U zV;$|8IL3sklNrP;63ji_&-{wHC!CZBt#x`kf~PPOinYQ*cArOGNnUyyd5QCSPL>!R z^Er68Bp~(x!>t|qs8Usqz?Vm;CgP7ngu0WX`Ob*EZtbFZP6!2bmk?ePqPvFZZXvpR zh~6SZZyBO{glJBZX|Z){iUz50c?2dVcA<{YcACz{`G_BC{`2^Wkw`F#3%))cAcN_~7?^e6YJJ%WvQ*tpZPbS?Rgv!#)bvL3O%I zrIEXcK8$elo&-;m)E|UcVK~`l&{i#=L3+D2)|f_Vzh(EeD>MEEV|P=`G0juZ&m{;9 zak!YDSZ)CYL8-cwU-q1Y&|@Ih%WN~9EZqbVrHg-QG#zhW$W-4Znm?2!E6Z?v-Zfqu zG^Yh*s#WYlaG}4z`R?3hprwvJ0^wInn_VjkAd`6IWXXdjA4^2X>kDt9dCfx$Ny&U? zj0uwYF8tLY$HlE~7z!7b>SQk@@#XLU>RE(O?Rh~zi=bq_XueKFp><1_S8JD7&}Bj0 zS84Q0equSXWPgPFyR~i!{hL0s^tYi34V8G6rB8B%ASVH8>r{FiRUzHk;0AYE>uyV* zXucj|>jI166zgv!y5#CwSQbXVjhVxcdQFSrG*pdTLnAtQ{OW8FvRpz-sbhXboE~6$ zg|1&PO{6ZvWIb<6NRfrEf+#bZXHM6xWo2pr=Le#p22`g;Lfku9dd4*&Es(w;TKACR zx(jI_=?S&h-3J3TP#J8V@mjL3ab-yhokMnI45XWH+mqHiBqUT^1&VbQ2f(Q2V} zypDP)7_SvINq^@c#Ebu&EP2p0%2&suZd)fy*7{cZYueR1yaIGPn)|{UZDR>qS3=Sa zh~{^P+%+Q!QnyGy~MJo&xZiEpf;0B^d*QmVr@}SfMw6e!k z3wPY$7Gyco;$-PaZuCgS&GkHTrMJ1eBAOY4@bErl@JvCY&6R~V>n4VKZcv_SGI@iY z@q7=IXI-7>zT-cy2lR&Do2;#1g)0E<%tk)MX(u-FAx=BRk>94^+)j4n`xL;BIK`7j zKP}(402bB*`V~MsnGz1&&YFZnxAQ0A(Cti0A@t3y2XM9tiz>HJr5*D(^D{Pc0@IxI zDa6fsKx*rVtd}ugX10Z#O}D}_!%3E=+d#F?^r!IK;it-*4Ifq)_pH=}yyd9Z-zrqw zUaGi3_Qttt7x?vGd{PU?=1zIyB=_)p|QCw~V5mTBc2uuKk_ zsfm!_-qq;h;D$Stx`Mj~c8I;1;D+vQ2P+DBlYG&b>&YX3M}+O&#ln^kZ-cpIN=jP!~IaQfX(8z=$UM zK6rq(p0pc$C#&UPdH}0Lu7@&zK&hP#FvZ)ths*}AJKs|2Y7OH z-q2`pE9=U&`1(Z_9HGE!b60E=QcxpB4D(sD9B-On8AaN;r=x@h76?-6icNhDR4wj~(pN``?&9it#N#29x3bU`^SD^S9LC~#-Aa7Td0mqF9+-JJb;a|#?SbU@ z1G*#W4y4&Op9v1RH|urisGp33=sa|G_f}Y7gsleLfFGRQ72ma&p*w3k!x2WZw5*$k zE*Z`GT9#_sXnrS4gMSHhoa;n5tA8n3_|6!OQpVt-7$UiLbkbhJFei3J79Ca-a%BV7 z1kXc+^oia7fNFl9?F%pHIuhlVeg*viIk&;J4_&_K>E_Su((ivbvn&41vQ?P~R!F8C zQ%TP379{4GUD489NY4I*zR#BFi!-|><#eLqbz`{4jH6rWWSJ@4!fiH~doNrui#51{ zK^F$@T{#AE<9vy^dZj1!N9O+vZ=}}045=YE-Zl{uJaqHzLfAIHf+hb@;BpaN@*3JE zLV}0yWQnQU5NTM4k;TCZv)rj4h2WTE0^+d^;t|WYLNBZE zCWLFAaQI(*3gTf%i97A85stijQTvjWF?yKzZo9t0XD%r+uQ{i4b4~$K6uX;zfu1dB(v`CqJ2@1Ko6Po zQ4n}elx&G;j(j*SO1Cln#zaDVNN*bihU21S3LO`X`J;G)?w#-)ZzL^2F2Wg8^5`?B z;-wLzGi20uvET&?oG85jGK5Z)a;^VH$oDAoo8w;(f6HQ-1^8_8NFkaXdMS@eq!Mjo zl{f^@iH|reD#7l5IcHaded#wqCfxfuhWC}Umd9hU>w^2OvGczUJO6ngvDCqP4|gGu z`VM$Tf#>@g%5e@r{3s6mFk7j3VP@z+0CcMRZWGji%k&-rTXu9x*Mqj*bF_9z=GUD;gYap;Mj};aN$6|3@vE{K? z^Sa_Q2s8A$A`Ua^bFf8D_7NnB7>YJ|#jq%N#ZX?o2p@;lufoc!g++2mt=Xf6darYx zsx^Bs9CeP``9-bk;Or~QHz)U&LdS0YQ3xTm;yqBTuGveAT%GFa;K-{!uo}|`R&l2*+LXf)ArR)o zDmE+{z?@u7?i&x@5Y_qMNHz9xo%XniEz)juB!z7gIJ2tXgOl|HotarNVWr1K1tKqe z?(0NH#k@NpDhPSuvn(1NCGU32RjvEt2`iLbc>+{-M)h6lIc8~8rjoNS*hU)?J!>OBl&()mf=Jf!fr&Bkn<=i%S&kSWjYEnL3ve{a% z6>bA)Woy0Ww*mZHwbx1)F5U*v3bz5YGPeN~Wp+ifN}<5L2h7Jrx!A55MJ# zgY&o+%UY_8_>*D`V4WeKik0EE<5~p>Ez6GG9R_Fh&s@HIx{~h%oHRKgd7t%gi zg>+X;e$H*}hjf1mX;5fOA4jVHZ=^8GKvXrr|EJ-_a18z8j(+cH#DRln>*1=ZTD(wALG+rd7GGv*%Uyprw)pT zQ5UY^R7(B{@b^gRnX$(~JN__6rF~uu4j#B44zu?%{PuSTrEz}`kkfIry*jx%k}Zv2!vANw2ku0@~wEE!Xlgi{TcjFByO*Y^q09-}k?+M=EqVm?5w?}Z>{Jx-Z zUEhBE;Le`?@ol2IGBR07joK98{EnkWAZ-3K3rsSphK6hfbOneLG`Xj!`>6LeAv|r$ z54MM{lyA&?gI~v6jgPk+Kkz^MG{fO6nh*e<2>>AgJR1N)0C+9{gaE)$>DTjtg%AK< z2mm42cf)LydJ+2D{2Y~;j-r3A_-d!4MBl7l-h|we)m=S_#$4|Q<<8g}E0zqFm*yx- zL{P?}_ALsh>*r|2L@SQ>9$DHrJ-pXIbXC}5I9}W62{A2$oN19+F>NNPr^ZAbh$r*w zVtijhe6`@onw@dCXa%YRcpviSKj={4cC4-nGK>d@WX@=!6X^qxFKE{UpJ4V{v$u(x zq$T_g@XBjLB%0_z?gPmkPqZJ8%Xs2`dsxF%4HGh4B~8&p$MJZuPNK*V8M#!Vc8TL+ z%W!Yh;h2Ga1^VX<>`VMcb1#cAo_i7Bpnlv2(j3Tg7)vie@iSG(8dM>2k80>`2meI0 zZ=sjpb)RZ0tk}Oyy<`~}_AUqh>@IX21|O;5pB=D^vBV7TH@ z=+1LA;5^h_>cD5W*!vj4;8JtBD%RVH29`};9P52fQ^JYz(x904DNWctgRb;vB#X^! zHgeH>TkKTf9sRA77@NsrQz%3u`f65S?YJCIv2-kPlh7yd4C7Wbn)D!3c-OaeGGDow z`G~f7R7rwL>7Dx_w}p3b*@4mFxZZaNEyVO4`i^GLzfKnx$k6g$KZM)1dAM!Ov$?MS zDdSk8-#k7Ff@_cJ0^tkC2V9-+Qfevk-7Cy@g;A$|{54QS)cXh?r7D-t4`%4)<%*Jc zz6?^BXFX!AW0e(o4}e+S!^j(Rbnk$DMz`PU$>J@xJPs4JyUfJkw^?|#JTRm4emWb&^f z1R2zR0pByD*(?we+*^!siOC$xaeqnZwE&Zj3G{;sFPm)gYDY<3jZW`G5qdB3a6ssZ z4%=^eUo*w>9juOUzo~hET3_9-Bc#(MCTl%>Gof0}5aag1&1f@TCDUSBd-3+XLZzf< zSflX{(IxSYvCKq7d0k0=$j4?)#8eB zY=_73zCi%zO>uqwm4QtX7Z3^_$J;N&k?VsogTBndxa#vRMlvq??Yl!J{@cu29s|`K z7M&_gM6Pm3%AN+#bq; zgQ-wZP*y@qEHLkx@B93s5E936J2;?;wyyt`F_FjhH_)`i$$U;v$?jynAW2>)^BGAp znxJqDUZ3!K32iTGj#aQixZZLYAzGGZ$9o+nuOqsK6iHaH*Psd=tOo2gkZvMQjkANO zcN!qS@a~~J((yIuH;*OqsQ)gf*76_FKiTR~UuF#4*HF58G_IEbN6&xe=!Xd$v{ATw7I)#L?wBr6#9!dB$nABj7au8O6E_ zQiI3EUJs7b`OlF)b3-}yO*4vkaZUQZXb4PXg=*1fh61P%u8w1fthb9WvfgTl+C&Zf z`�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�>$hq2dyxJN+QNE&0?cW_gNgmb4 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 M6i6xXze$0A0a`foA^-pY diff --git a/lang/csharp/src/apache/ipc/Avro.ipc.csproj b/lang/csharp/src/apache/ipc/Avro.ipc.csproj index ad0821e3..0474cac6 100644 --- a/lang/csharp/src/apache/ipc/Avro.ipc.csproj +++ b/lang/csharp/src/apache/ipc/Avro.ipc.csproj @@ -1,4 +1,4 @@ - + - - - Debug - AnyCPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414} - Library - Properties - Avro.ipc - Avro.ipc - v4.0 - 512 - - - - true - full - false - ..\..\..\build\ipc\Debug\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - - - pdbonly - true - ..\..\..\build\ipc\Release\ - TRACE - prompt - 4 - - - true - - - ..\..\..\Avro.snk - - - - ..\..\..\lib\main\Castle.Core.dll - - - ..\..\..\lib\main\log4net.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {a0a5ca3c-f58c-4d07-98b0-2c7b62ab20f0} - Avro.main - - - - - +--> + + + Debug + AnyCPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414} + Library + Properties + Avro.ipc + Avro.ipc + v4.0 + 512 + + + + true + full + false + ..\..\..\build\ipc\Debug\ + DEBUG;TRACE + prompt + 4 + AllRules.ruleset + + + pdbonly + true + ..\..\..\build\ipc\Release\ + TRACE + prompt + 4 + + + true + + + ..\..\..\Avro.snk + + + + ..\..\..\packages\Castle.Core.3.3.3\lib\net40-client\Castle.Core.dll + True + + + ..\..\..\packages\log4net.2.0.3\lib\net40-full\log4net.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {a0a5ca3c-f58c-4d07-98b0-2c7b62ab20f0} + Avro.main + + + + + - + --> + + --> \ No newline at end of file diff --git a/lang/csharp/src/apache/ipc/packages.config b/lang/csharp/src/apache/ipc/packages.config new file mode 100644 index 00000000..785f1757 --- /dev/null +++ b/lang/csharp/src/apache/ipc/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lang/csharp/src/apache/main/Avro.main.csproj b/lang/csharp/src/apache/main/Avro.main.csproj index 7f41e3ff..68447fb8 100644 --- a/lang/csharp/src/apache/main/Avro.main.csproj +++ b/lang/csharp/src/apache/main/Avro.main.csproj @@ -1,4 +1,4 @@ - + - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} - Library - Properties - Avro - Avro - v3.5 - 512 - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - true - full - false - ..\..\..\build\main\Debug\ - DEBUG;TRACE - prompt - 4 - Off - - - none - true - ..\..\..\build\main\Release\ - - - prompt - 4 - Off - - - true - - - ..\..\..\Avro.snk - - - - ..\..\..\lib\main\log4net.dll - - - ..\..\..\lib\main\Newtonsoft.Json.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - +--> + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} + Library + Properties + Avro + Avro + v3.5 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + true + full + false + ..\..\..\build\main\Debug\ + DEBUG;TRACE + prompt + 4 + Off + + + none + true + ..\..\..\build\main\Release\ + + + prompt + 4 + Off + + + true + + + ..\..\..\Avro.snk + + + + ..\..\..\packages\log4net.2.0.3\lib\net35-full\log4net.dll + True + + + ..\..\..\packages\Newtonsoft.Json.7.0.1\lib\net35\Newtonsoft.Json.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + --> \ No newline at end of file diff --git a/lang/csharp/src/apache/main/packages.config b/lang/csharp/src/apache/main/packages.config new file mode 100644 index 00000000..483c203a --- /dev/null +++ b/lang/csharp/src/apache/main/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/lang/csharp/src/apache/test/Avro.test.csproj b/lang/csharp/src/apache/test/Avro.test.csproj index 34babf7d..412c84ac 100644 --- a/lang/csharp/src/apache/test/Avro.test.csproj +++ b/lang/csharp/src/apache/test/Avro.test.csproj @@ -1,4 +1,4 @@ - + - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA} - Library - Properties - Avro.test - Avro.test - v4.0 - 512 - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - ..\..\..\build\test\Debug\ - DEBUG;TRACE - prompt - 4 - Off - - - none - true - ..\..\..\build\test\Release\ - - - prompt - 4 - Off - - - - False - ..\..\..\..\..\lang\csharp\lib\main\Castle.Core.dll - - - False - ..\..\..\lib\test\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {3b05043a-dc6c-49b6-85bf-9ab055d0b414} - Avro.ipc - - - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} - Avro.main - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - Ipc\mail.avpr - - - - +--> + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA} + Library + Properties + Avro.test + Avro.test + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\build\test\Debug\ + DEBUG;TRACE + prompt + 4 + Off + + + none + true + ..\..\..\build\test\Release\ + + + prompt + 4 + Off + + + + ..\..\..\packages\Castle.Core.3.3.3\lib\net40-client\Castle.Core.dll + True + + + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + Ipc\mail.avpr + + + + + {3b05043a-dc6c-49b6-85bf-9ab055d0b414} + Avro.ipc + + + {a0a5ca3c-f58c-4d07-98b0-2c7b62ab20f0} + Avro.main + + + + + + + --> \ No newline at end of file diff --git a/lang/csharp/src/apache/test/packages.config b/lang/csharp/src/apache/test/packages.config new file mode 100644 index 00000000..55272244 --- /dev/null +++ b/lang/csharp/src/apache/test/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From 537c53404dc8b34a9df79de99ccc275e6377c70a Mon Sep 17 00:00:00 2001 From: Vadim Chekan Date: Wed, 23 Sep 2015 16:03:58 -0700 Subject: [PATCH 20/23] Bug fix: Json WriteRawValue produce invalid json. --- lang/csharp/src/apache/main/Schema/Property.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/csharp/src/apache/main/Schema/Property.cs b/lang/csharp/src/apache/main/Schema/Property.cs index 3901623e..b3ea4d32 100644 --- a/lang/csharp/src/apache/main/Schema/Property.cs +++ b/lang/csharp/src/apache/main/Schema/Property.cs @@ -78,7 +78,7 @@ public void WriteJson(JsonTextWriter writer) if (ReservedProps.Contains(kp.Key)) continue; writer.WritePropertyName(kp.Key); - writer.WriteRawValue(kp.Value); + writer.WriteValue(kp.Value); } } From 40cbc4ea00b2c5e8443bf89c5c42389c7553ece3 Mon Sep 17 00:00:00 2001 From: Vadim Chekan Date: Wed, 23 Sep 2015 17:16:36 -0700 Subject: [PATCH 21/23] DRY: move common assembly attributes to a solution-level file. Add nuspec for Avro.main project --- lang/csharp/Avro.sln | 197 +++++++-------- lang/csharp/GlobalAssemblyInfo.cs | 24 ++ .../src/apache/codegen/Avro.codegen.csproj | 7 +- .../apache/codegen/Properties/AssemblyInfo.cs | 7 - lang/csharp/src/apache/ipc/Avro.ipc.csproj | 3 + .../src/apache/ipc/Properties/AssemblyInfo.cs | 7 - lang/csharp/src/apache/main/Avro.main.csproj | 3 + lang/csharp/src/apache/main/Avro.main.nuspec | 17 ++ .../apache/main/Properties/AssemblyInfo.cs | 10 +- lang/csharp/src/apache/main/make.nuget.cmd | 1 + .../src/apache/msbuild/Avro.msbuild.csproj | 107 +++++---- .../apache/msbuild/Properties/AssemblyInfo.cs | 7 - lang/csharp/src/apache/perf/Avro.perf.csproj | 226 +++++++++--------- lang/csharp/src/apache/test/Avro.test.csproj | 3 + .../apache/test/Properties/AssemblyInfo.cs | 7 - 15 files changed, 322 insertions(+), 304 deletions(-) create mode 100644 lang/csharp/GlobalAssemblyInfo.cs create mode 100644 lang/csharp/src/apache/main/Avro.main.nuspec create mode 100644 lang/csharp/src/apache/main/make.nuget.cmd diff --git a/lang/csharp/Avro.sln b/lang/csharp/Avro.sln index 58687b26..4134b857 100644 --- a/lang/csharp/Avro.sln +++ b/lang/csharp/Avro.sln @@ -1,95 +1,102 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.main", "src\apache\main\Avro.main.csproj", "{A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.test", "src\apache\test\Avro.test.csproj", "{911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.codegen", "src\apache\codegen\Avro.codegen.csproj", "{BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.ipc", "src\apache\ipc\Avro.ipc.csproj", "{3B05043A-DC6C-49B6-85BF-9AB055D0B414}" - ProjectSection(ProjectDependencies) = postProject - {AEB22F94-4ECF-4008-B159-389B3F05D54B} = {AEB22F94-4ECF-4008-B159-389B3F05D54B} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.msbuild", "src\apache\msbuild\Avro.msbuild.csproj", "{AEB22F94-4ECF-4008-B159-389B3F05D54B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.perf", "src\apache\perf\Avro.perf.csproj", "{AC4E1909-2594-4D01-9B2B-B832C07BAFE5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|x86.ActiveCfg = Debug|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Any CPU.Build.0 = Release|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|x86.ActiveCfg = Release|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|x86.ActiveCfg = Debug|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Any CPU.Build.0 = Release|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|x86.ActiveCfg = Release|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|x86.ActiveCfg = Debug|x86 - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|x86.Build.0 = Debug|x86 - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Any CPU.Build.0 = Release|Any CPU - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Mixed Platforms.Build.0 = Release|x86 - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|x86.ActiveCfg = Release|x86 - {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|x86.Build.0 = Release|x86 - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|x86.ActiveCfg = Debug|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Any CPU.Build.0 = Release|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|x86.ActiveCfg = Release|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|x86.ActiveCfg = Debug|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Any CPU.Build.0 = Release|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|x86.ActiveCfg = Release|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|x86.ActiveCfg = Debug|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Any CPU.Build.0 = Release|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|x86.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.main", "src\apache\main\Avro.main.csproj", "{A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.test", "src\apache\test\Avro.test.csproj", "{911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.codegen", "src\apache\codegen\Avro.codegen.csproj", "{BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.ipc", "src\apache\ipc\Avro.ipc.csproj", "{3B05043A-DC6C-49B6-85BF-9AB055D0B414}" + ProjectSection(ProjectDependencies) = postProject + {AEB22F94-4ECF-4008-B159-389B3F05D54B} = {AEB22F94-4ECF-4008-B159-389B3F05D54B} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.msbuild", "src\apache\msbuild\Avro.msbuild.csproj", "{AEB22F94-4ECF-4008-B159-389B3F05D54B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avro.perf", "src\apache\perf\Avro.perf.csproj", "{AC4E1909-2594-4D01-9B2B-B832C07BAFE5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "globals", "globals", "{C230DE2B-3963-4930-81BF-9421BD297BD9}" + ProjectSection(SolutionItems) = preProject + GlobalAssemblyInfo.cs = GlobalAssemblyInfo.cs + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Debug|x86.ActiveCfg = Debug|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Any CPU.Build.0 = Release|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0}.Release|x86.ActiveCfg = Release|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Debug|x86.ActiveCfg = Debug|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Any CPU.Build.0 = Release|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {911D56AB-587B-4E5F-B5EA-D47D8A46F1FA}.Release|x86.ActiveCfg = Release|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|x86.ActiveCfg = Debug|x86 + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Debug|x86.Build.0 = Debug|x86 + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Any CPU.Build.0 = Release|Any CPU + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|Mixed Platforms.Build.0 = Release|x86 + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|x86.ActiveCfg = Release|x86 + {BF0D313C-1AA3-4900-B277-B0F5F9DDCDA8}.Release|x86.Build.0 = Release|x86 + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Debug|x86.ActiveCfg = Debug|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Any CPU.Build.0 = Release|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3B05043A-DC6C-49B6-85BF-9AB055D0B414}.Release|x86.ActiveCfg = Release|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Debug|x86.ActiveCfg = Debug|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Any CPU.Build.0 = Release|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B}.Release|x86.ActiveCfg = Release|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Debug|x86.ActiveCfg = Debug|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Any CPU.Build.0 = Release|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/lang/csharp/GlobalAssemblyInfo.cs b/lang/csharp/GlobalAssemblyInfo.cs new file mode 100644 index 00000000..1ad0fecd --- /dev/null +++ b/lang/csharp/GlobalAssemblyInfo.cs @@ -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. + */ + +using System.Reflection; + +[assembly: AssemblyCompany("Apache")] +[assembly: AssemblyProduct("Avro")] +[assembly: AssemblyCopyright("Copyright © Apache 2013")] +[assembly: AssemblyVersion("1.7.7.0")] \ No newline at end of file diff --git a/lang/csharp/src/apache/codegen/Avro.codegen.csproj b/lang/csharp/src/apache/codegen/Avro.codegen.csproj index fe58ab03..f30287e8 100644 --- a/lang/csharp/src/apache/codegen/Avro.codegen.csproj +++ b/lang/csharp/src/apache/codegen/Avro.codegen.csproj @@ -1,4 +1,4 @@ - + - + \ No newline at end of file diff --git a/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs index 0eeb2366..437020e1 100644 --- a/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs @@ -21,13 +21,6 @@ [assembly: AssemblyTitle("Avro.codegen")] [assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Apache")] -[assembly: AssemblyProduct("Avro.codegen")] -[assembly: AssemblyCopyright("Copyright © Apache 2013")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("3C23DD33-DD4F-42B1-B71F-8F9C86929E58")] -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file diff --git a/lang/csharp/src/apache/ipc/Avro.ipc.csproj b/lang/csharp/src/apache/ipc/Avro.ipc.csproj index 0474cac6..e57f5a0c 100644 --- a/lang/csharp/src/apache/ipc/Avro.ipc.csproj +++ b/lang/csharp/src/apache/ipc/Avro.ipc.csproj @@ -65,6 +65,9 @@ + + Properties\GlobalAssemblyInfo.cs + diff --git a/lang/csharp/src/apache/ipc/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/ipc/Properties/AssemblyInfo.cs index 4875ed1a..372053c1 100644 --- a/lang/csharp/src/apache/ipc/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/ipc/Properties/AssemblyInfo.cs @@ -21,13 +21,6 @@ [assembly: AssemblyTitle("Avro.ipc")] [assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Apache")] -[assembly: AssemblyProduct("Avro.ipc")] -[assembly: AssemblyCopyright("Copyright © Apache 2013")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("CC3EF4B8-52AA-47D9-B170-5BAAA57A38F3")] -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file diff --git a/lang/csharp/src/apache/main/Avro.main.csproj b/lang/csharp/src/apache/main/Avro.main.csproj index 68447fb8..b0d03556 100644 --- a/lang/csharp/src/apache/main/Avro.main.csproj +++ b/lang/csharp/src/apache/main/Avro.main.csproj @@ -87,6 +87,9 @@ + + Properties\GlobalAssemblyInfo.cs + diff --git a/lang/csharp/src/apache/main/Avro.main.nuspec b/lang/csharp/src/apache/main/Avro.main.nuspec new file mode 100644 index 00000000..fe23d978 --- /dev/null +++ b/lang/csharp/src/apache/main/Avro.main.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $title$ + $author$ + $author$ + http://www.apache.org/licenses/#2.0 + https://avro.apache.org/ + https://avro.apache.org/images/avro-logo.png + false + $description$ + Copyright 2015 + apache avro + + \ No newline at end of file diff --git a/lang/csharp/src/apache/main/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/main/Properties/AssemblyInfo.cs index 1ef0b2ef..e16f7b54 100644 --- a/lang/csharp/src/apache/main/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/main/Properties/AssemblyInfo.cs @@ -20,14 +20,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Avro")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Apache")] -[assembly: AssemblyProduct("Avro")] -[assembly: AssemblyCopyright("Copyright © Apache 2013")] -[assembly: AssemblyTrademark("")] +[assembly: AssemblyDescription("Avro C# library")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("152D7B83-9A97-45F3-B4B3-A367AFC090C4")] -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file + diff --git a/lang/csharp/src/apache/main/make.nuget.cmd b/lang/csharp/src/apache/main/make.nuget.cmd new file mode 100644 index 00000000..4363303d --- /dev/null +++ b/lang/csharp/src/apache/main/make.nuget.cmd @@ -0,0 +1 @@ +nuget pack -Build -Symbols -Properties Configuration=Release \ No newline at end of file diff --git a/lang/csharp/src/apache/msbuild/Avro.msbuild.csproj b/lang/csharp/src/apache/msbuild/Avro.msbuild.csproj index f1dd6f8f..d372e400 100644 --- a/lang/csharp/src/apache/msbuild/Avro.msbuild.csproj +++ b/lang/csharp/src/apache/msbuild/Avro.msbuild.csproj @@ -1,4 +1,4 @@ - + - - - - Debug - AnyCPU - {AEB22F94-4ECF-4008-B159-389B3F05D54B} - Library - Properties - Avro.msbuild - Avro.msbuild - v3.5 - 512 - - - - true - full - false - ..\..\..\build\msbuild\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\..\..\build\msbuild\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} - Avro.main - - - +--> + + + + Debug + AnyCPU + {AEB22F94-4ECF-4008-B159-389B3F05D54B} + Library + Properties + Avro.msbuild + Avro.msbuild + v3.5 + 512 + + + + true + full + false + ..\..\..\build\msbuild\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\build\msbuild\Release\ + TRACE + prompt + 4 + + + + + + + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} + Avro.main + + + + --> \ No newline at end of file diff --git a/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs index e46675b1..f90aa264 100644 --- a/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs @@ -21,13 +21,6 @@ [assembly: AssemblyTitle("Avro.msbuild")] [assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Apache")] -[assembly: AssemblyProduct("Avro.msbuild")] -[assembly: AssemblyCopyright("Copyright © Apache 2013")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("A7982FA5-F369-457F-894E-4F90262E4638")] -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file diff --git a/lang/csharp/src/apache/perf/Avro.perf.csproj b/lang/csharp/src/apache/perf/Avro.perf.csproj index 327b6144..9383b286 100644 --- a/lang/csharp/src/apache/perf/Avro.perf.csproj +++ b/lang/csharp/src/apache/perf/Avro.perf.csproj @@ -1,4 +1,4 @@ - + - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {AC4E1909-2594-4D01-9B2B-B832C07BAFE5} - Exe - Properties - Avro.perf - Avro.perf - v4.0 - 512 - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - ..\..\..\build\perf\Debug\ - DEBUG;TRACE - prompt - 4 - Off - - - none - true - ..\..\..\build\perf\Release\ - - - prompt - 4 - Off - - - - - - - False - ..\..\..\..\..\lang\csharp\lib\main\Castle.Core.dll - - - False - ..\..\..\lib\test\nunit.framework.dll - - - - - - - - - - - {3b05043a-dc6c-49b6-85bf-9ab055d0b414} - Avro.ipc - - - {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} - Avro.main - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - - - - - - - - - Code - - - - - - +--> + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {AC4E1909-2594-4D01-9B2B-B832C07BAFE5} + Exe + Properties + Avro.perf + Avro.perf + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\build\perf\Debug\ + DEBUG;TRACE + prompt + 4 + Off + + + none + true + ..\..\..\build\perf\Release\ + + + prompt + 4 + Off + + + + + + + + + + + {3b05043a-dc6c-49b6-85bf-9ab055d0b414} + Avro.ipc + + + {A0A5CA3C-F58C-4D07-98B0-2C7B62AB20F0} + Avro.main + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + Code + + + + + + + --> \ No newline at end of file diff --git a/lang/csharp/src/apache/test/Avro.test.csproj b/lang/csharp/src/apache/test/Avro.test.csproj index 412c84ac..cb058b6d 100644 --- a/lang/csharp/src/apache/test/Avro.test.csproj +++ b/lang/csharp/src/apache/test/Avro.test.csproj @@ -85,6 +85,9 @@ + + Properties\GlobalAssemblyInfo.cs + diff --git a/lang/csharp/src/apache/test/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/test/Properties/AssemblyInfo.cs index 8821f64d..0adcc68b 100644 --- a/lang/csharp/src/apache/test/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/test/Properties/AssemblyInfo.cs @@ -21,13 +21,6 @@ [assembly: AssemblyTitle("Avro.test")] [assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Apache")] -[assembly: AssemblyProduct("Avro.test")] -[assembly: AssemblyCopyright("Copyright © Apache 2013")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("442785CE-3633-4A04-A103-434104F63D55")] -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file From 35dd0eee192f8ef9435035479131511277548aed Mon Sep 17 00:00:00 2001 From: Vadim Chekan Date: Wed, 23 Sep 2015 17:43:34 -0700 Subject: [PATCH 22/23] Nuspec for all projects --- .../src/apache/codegen/Avro.codegen.nuspec | 17 +++++++++++++++++ .../apache/codegen/Properties/AssemblyInfo.cs | 2 +- lang/csharp/src/apache/main/Avro.main.nuspec | 2 +- lang/csharp/src/apache/main/make.nuget.cmd | 1 - lang/csharp/src/apache/make.nuget.cmd | 8 ++++++++ .../src/apache/msbuild/Avro.msbuild.nuspec | 18 ++++++++++++++++++ .../apache/msbuild/Properties/AssemblyInfo.cs | 2 +- 7 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 lang/csharp/src/apache/codegen/Avro.codegen.nuspec delete mode 100644 lang/csharp/src/apache/main/make.nuget.cmd create mode 100644 lang/csharp/src/apache/make.nuget.cmd create mode 100644 lang/csharp/src/apache/msbuild/Avro.msbuild.nuspec diff --git a/lang/csharp/src/apache/codegen/Avro.codegen.nuspec b/lang/csharp/src/apache/codegen/Avro.codegen.nuspec new file mode 100644 index 00000000..5061e3b1 --- /dev/null +++ b/lang/csharp/src/apache/codegen/Avro.codegen.nuspec @@ -0,0 +1,17 @@ + + + + Avro.codegen + $version$ + $title$ + $author$ + $author$ + http://www.apache.org/licenses/#2.0 + https://avro.apache.org/ + https://avro.apache.org/images/avro-logo.png + false + $description$ + Copyright 2015 + apache avro + + \ No newline at end of file diff --git a/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs index 437020e1..fa25aef8 100644 --- a/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/codegen/Properties/AssemblyInfo.cs @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Avro.codegen")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("Avro C# code generator")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("3C23DD33-DD4F-42B1-B71F-8F9C86929E58")] diff --git a/lang/csharp/src/apache/main/Avro.main.nuspec b/lang/csharp/src/apache/main/Avro.main.nuspec index fe23d978..0187f276 100644 --- a/lang/csharp/src/apache/main/Avro.main.nuspec +++ b/lang/csharp/src/apache/main/Avro.main.nuspec @@ -1,7 +1,7 @@ - $id$ + Avro.main $version$ $title$ $author$ diff --git a/lang/csharp/src/apache/main/make.nuget.cmd b/lang/csharp/src/apache/main/make.nuget.cmd deleted file mode 100644 index 4363303d..00000000 --- a/lang/csharp/src/apache/main/make.nuget.cmd +++ /dev/null @@ -1 +0,0 @@ -nuget pack -Build -Symbols -Properties Configuration=Release \ No newline at end of file diff --git a/lang/csharp/src/apache/make.nuget.cmd b/lang/csharp/src/apache/make.nuget.cmd new file mode 100644 index 00000000..2fb66f19 --- /dev/null +++ b/lang/csharp/src/apache/make.nuget.cmd @@ -0,0 +1,8 @@ +cd main +nuget pack -Build -Symbols -Properties Configuration=Release + +cd ..\codegen +nuget pack -Build -Symbols -Properties Configuration=Release + +cd ..\msbuild +nuget pack -Build -Symbols -Properties Configuration=Release diff --git a/lang/csharp/src/apache/msbuild/Avro.msbuild.nuspec b/lang/csharp/src/apache/msbuild/Avro.msbuild.nuspec new file mode 100644 index 00000000..87c378d5 --- /dev/null +++ b/lang/csharp/src/apache/msbuild/Avro.msbuild.nuspec @@ -0,0 +1,18 @@ + + + + $id$ + $version$ + $title$ + $author$ + $author$ + http://www.apache.org/licenses/#2.0 + https://avro.apache.org/ + https://avro.apache.org/images/avro-logo.png + false + $description$ + Copyright 2015 + apache avro + true + + \ No newline at end of file diff --git a/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs b/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs index f90aa264..41d965c2 100644 --- a/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs +++ b/lang/csharp/src/apache/msbuild/Properties/AssemblyInfo.cs @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Avro.msbuild")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("Avro msbuild codegen task")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("A7982FA5-F369-457F-894E-4F90262E4638")] From 9f511d388c75989d91e5e07b934b756b3428c625 Mon Sep 17 00:00:00 2001 From: Vadim Chekan Date: Wed, 23 Sep 2015 17:43:52 -0700 Subject: [PATCH 23/23] References cleanup --- lang/csharp/src/apache/codegen/Avro.codegen.csproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lang/csharp/src/apache/codegen/Avro.codegen.csproj b/lang/csharp/src/apache/codegen/Avro.codegen.csproj index f30287e8..aaef5f52 100644 --- a/lang/csharp/src/apache/codegen/Avro.codegen.csproj +++ b/lang/csharp/src/apache/codegen/Avro.codegen.csproj @@ -115,10 +115,6 @@ - - - -