2014/1/1 Oliver Heger <oliver.he...@oliver-heger.de> > Am 01.01.2014 17:40, schrieb Benedikt Ritter: > > Hello Oliver, > > > > this looks strange to me. Exceptions should be packaged at API level, not > > by their nature. In other words: one shoot put exceptions next to the > > classes that throw them. > In any case I want to avoid cyclic dependencies - there are currently a > lot in the code base. The exceptions being defined in the top-level > package and thrown by classes in multiple sub packages are a source of > this. >
I agree that cycles should be avoided in most cases. However I also think that creating and exception package is also wrong. Think of it this way: you wouldn't create a "class" or "interface" package to break cycles. I'll try to have a look at configuration later this week. Maybe I see some way to avoid the exception package while also avoiding cycles. Benedikt > > Oliver > > > > > Benedikt > > > > > > 2014/1/1 <ohe...@apache.org> > > > >> Author: oheger > >> Date: Wed Jan 1 16:35:37 2014 > >> New Revision: 1554633 > >> > >> URL: http://svn.apache.org/r1554633 > >> Log: > >> Added a new package for exception classes. > >> > >> Currently, exception classes defined by this library are located in the > >> top-level package. If sub packages throw exceptions of these types, this > >> may > >> cause cyclic dependencies. To avoid this, all exceptions classes are > moved > >> into > >> a separate package. > >> > >> Added: > >> > >> > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/ > >> > >> > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/package.html > >> > >> Added: > >> > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/package.html > >> URL: > >> > http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/package.html?rev=1554633&view=auto > >> > >> > ============================================================================== > >> --- > >> > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/package.html > >> (added) > >> +++ > >> > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ex/package.html > >> Wed Jan 1 16:35:37 2014 > >> @@ -0,0 +1,36 @@ > >> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> > >> +<!-- > >> +Licensed to the Apache Software Foundation (ASF) under one or more > >> +contributor license agreements. See the NOTICE file distributed with > >> +this work for additional information regarding copyright ownership. > >> +The ASF licenses this file to You under the Apache License, Version 2.0 > >> +(the "License"); you may not use this file except in compliance with > >> +the License. You may obtain a copy of the License at > >> + > >> + http://www.apache.org/licenses/LICENSE-2.0 > >> + > >> +Unless required by applicable law or agreed to in writing, software > >> +distributed under the License is distributed on an "AS IS" BASIS, > >> +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > >> +See the License for the specific language governing permissions and > >> +limitations under the License. > >> +--> > >> +<html> > >> +<head> > >> +</head> > >> +<body> > >> + > >> +<p> > >> +This package contains all exception classes used by this library. > >> +</p> > >> +<p> > >> +<em>Commons Configuration</em> defines a small number of exception > >> classes. > >> +Because these classes are referenced by multiple other packages, they > are > >> +located in their own package to avoid cyclic dependencies. > >> +</p> > >> +<p> > >> +<font size="-2">$Id$</font> > >> +</p> > >> + > >> +</body> > >> +</html> > >> > >> > >> > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > -- http://people.apache.org/~britter/ http://www.systemoutprintln.de/ http://twitter.com/BenediktRitter http://github.com/britter