Return-Path: X-Original-To: apmail-metamodel-dev-archive@minotaur.apache.org Delivered-To: apmail-metamodel-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4F0D3CB0E for ; Thu, 7 Aug 2014 16:52:33 +0000 (UTC) Received: (qmail 56000 invoked by uid 500); 7 Aug 2014 16:52:33 -0000 Delivered-To: apmail-metamodel-dev-archive@metamodel.apache.org Received: (qmail 55964 invoked by uid 500); 7 Aug 2014 16:52:33 -0000 Mailing-List: contact dev-help@metamodel.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@metamodel.incubator.apache.org Delivered-To: mailing list dev@metamodel.incubator.apache.org Received: (qmail 55950 invoked by uid 99); 7 Aug 2014 16:52:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Aug 2014 16:52:32 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of i.am.kasper.sorensen@gmail.com designates 209.85.212.180 as permitted sender) Received: from [209.85.212.180] (HELO mail-wi0-f180.google.com) (209.85.212.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Aug 2014 16:52:28 +0000 Received: by mail-wi0-f180.google.com with SMTP id n3so5319066wiv.1 for ; Thu, 07 Aug 2014 09:52:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=8OvxN7GGpHLycS6CqsGj5v/8S0nonY702lJ/ttuUE5U=; b=n56aZjf5ANwUaHjZiTdot0yN7sdrh/e32kjbvXXeZ0/NvuY85tpEEi43bX+xxI4Usd JtkIBzVJLmN8CkkUlAGyBr17QsEsxgwKf66HL2sKcRAqJhL+J5TRQIIPwa6R+ETFk9C+ Z41mLvalfFMijUdH3O/Tmphm3xFWWU0WazEa0cHc+3VMtq2rWBJxcN4yGFUXdHQCP6hT a72A+q0cJlPUpqxAWc5E0xPO1+KBleVF/1plnJvOnWx7BV/KqIsyYNd/ORoaZORqZFEt j+6yeTIlaYBB7O4/gBCGCnSHu/tqTtIjUd0jiin4Xc2TMq84WVJEZ6m1cVbX8alrhbwr +WLQ== MIME-Version: 1.0 X-Received: by 10.194.47.208 with SMTP id f16mr4777146wjn.130.1407430327392; Thu, 07 Aug 2014 09:52:07 -0700 (PDT) Received: by 10.194.163.7 with HTTP; Thu, 7 Aug 2014 09:52:07 -0700 (PDT) Date: Thu, 7 Aug 2014 18:52:07 +0200 Message-ID: Subject: Sharing experiences of upgrading to Apache MetaModel From: =?UTF-8?Q?Kasper_S=C3=B8rensen?= To: "dev@metamodel.incubator.apache.org" Content-Type: multipart/alternative; boundary=047d7bacb090b5e1b505000ce8de X-Virus-Checked: Checked by ClamAV on apache.org --047d7bacb090b5e1b505000ce8de Content-Type: text/plain; charset=UTF-8 Hi all, Just wanna share some experiences of upgrading the "old" eobjects.org MetaModel to Apache MetaModel. Although obviously Human Inference has been contributing quite a lot to Apache MetaModel, actually it was only recently that we ourselves upgraded to use this new major version of MetaModel (sorry about that, but we had too much risk involved and too much other stuff to do, but the good news is that now we have massive systems running on top of Apache MetaModel). This week I have been doing the finalization of the migration. The experience so far is that for 90% of the codebase we can simply just do a search-replace of "org.eobjects.metamodel" with "org.apache.metamodel". That's in itself pretty good news. So what didn't just work? Well, the recent change of ColumnType to be an interface instead of an enum meant that a couple of switch-case statements didn't work anymore. That was a minor thing. A more intricate change was deserialization. The provided LegacyObjectInputStream of Apache MetaModel mostly works like a charm. But it needs to be applied at all kinds of places, and subclassed as well. This caused us a lot of "funny" issues. Especially in our open source engine library AnalyzerBeans where we have the class ChangeAwareObjectInputStream . Most of this experience fortunately fed back into the 4.2.0 release of Apache MetaModel, so if you try the same you should be fine! The last thing that caused some issues, and are honestly still causing a few issues, is the schema and table naming of Excel and CSV based DataContexts. We changed the naming convention (for the better) in Apache MetaModel, but i a lot of legacy code we refer to the old naming of schemas and tables. This is something I think we should maybe consider offering a utility for in Apache MetaModel. Maybe we can offer a few methods to "get table by legacy name", "get schema by legacy name", "get column by legacy qualified name" etc. Over and out from here. Hope these experiences can somehow be beneficial for others! - Kasper --047d7bacb090b5e1b505000ce8de--