http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ComponentLifecycle.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentLifecycle.java b/utils/src/com/cloud/utils/component/ComponentLifecycle.java deleted file mode 100644 index 897ddb1..0000000 --- a/utils/src/com/cloud/utils/component/ComponentLifecycle.java +++ /dev/null @@ -1,64 +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. -// - -package com.cloud.utils.component; - -import java.util.Map; - -import javax.naming.ConfigurationException; - -public interface ComponentLifecycle extends Named { - public static final int RUN_LEVEL_SYSTEM_BOOTSTRAP = 0; // for system level bootstrap components - public static final int RUN_LEVEL_SYSTEM = 1; // for system level service components (i.e., DAOs) - public static final int RUN_LEVEL_FRAMEWORK_BOOTSTRAP = 2; // for framework startup checkers (i.e., DB migration check) - public static final int RUN_LEVEL_FRAMEWORK = 3; // for framework bootstrap components(i.e., clustering management components) - public static final int RUN_LEVEL_COMPONENT_BOOTSTRAP = 4; // general manager components - public static final int RUN_LEVEL_COMPONENT = 5; // regular adapters, plugin components - public static final int RUN_LEVEL_APPLICATION_MAINLOOP = 6; - public static final int MAX_RUN_LEVELS = 7; - - @Override - String getName(); - - void setName(String name); - - void setConfigParams(Map<String, Object> params); - - Map<String, Object> getConfigParams(); - - int getRunLevel(); - - void setRunLevel(int level); - - public boolean configure(String name, Map<String, Object> params) throws ConfigurationException; - - /** - * Start any background tasks. - * - * @return true if the tasks were started, false otherwise. - */ - public boolean start(); - - /** - * Stop any background tasks. - * - * @return true background tasks were stopped, false otherwise. - */ - public boolean stop(); -}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java deleted file mode 100644 index 829dc9b..0000000 --- a/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java +++ /dev/null @@ -1,87 +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. -// - -package com.cloud.utils.component; - -import java.util.HashMap; -import java.util.Map; - -import javax.naming.ConfigurationException; - -import org.apache.log4j.Logger; - -public class ComponentLifecycleBase implements ComponentLifecycle { - private static final Logger s_logger = Logger.getLogger(ComponentLifecycleBase.class); - - protected String _name; - protected int _runLevel; - protected Map<String, Object> _configParams = new HashMap<String, Object>(); - - public ComponentLifecycleBase() { - _name = this.getClass().getSimpleName(); - _runLevel = RUN_LEVEL_COMPONENT; - } - - @Override - public String getName() { - return _name; - } - - @Override - public void setName(String name) { - _name = name; - } - - @Override - public void setConfigParams(Map<String, Object> params) { - _configParams = params; - } - - @Override - public Map<String, Object> getConfigParams() { - return _configParams; - } - - @Override - public int getRunLevel() { - return _runLevel; - } - - @Override - public void setRunLevel(int level) { - _runLevel = level; - } - - @Override - public boolean configure(String name, Map<String, Object> params) throws ConfigurationException { - _name = name; - _configParams = params; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java b/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java deleted file mode 100644 index 4d94391..0000000 --- a/utils/src/com/cloud/utils/component/ComponentMethodInterceptable.java +++ /dev/null @@ -1,27 +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. -// - -package com.cloud.utils.component; - -/** - * Marker interface to work with CGLIB based CloudStack legacy AOP - * - */ -public interface ComponentMethodInterceptable { -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java b/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java deleted file mode 100644 index dca688a..0000000 --- a/utils/src/com/cloud/utils/component/ComponentMethodInterceptor.java +++ /dev/null @@ -1,32 +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. -// - -package com.cloud.utils.component; - -import java.lang.reflect.Method; - -public interface ComponentMethodInterceptor { - boolean needToIntercept(Method method); - - Object interceptStart(Method method, Object target); - - void interceptComplete(Method method, Object target, Object objReturnedInInterceptStart); - - void interceptException(Method method, Object target, Object objReturnedInInterceptStart); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java b/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java deleted file mode 100644 index 33d1dd4..0000000 --- a/utils/src/com/cloud/utils/component/ComponentNamingPolicy.java +++ /dev/null @@ -1,65 +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. -// - -package com.cloud.utils.component; - -import net.sf.cglib.core.NamingPolicy; -import net.sf.cglib.core.Predicate; - -/** - * Copied/Modified from Spring source - * - */ -public class ComponentNamingPolicy implements NamingPolicy { - - public static final ComponentNamingPolicy INSTANCE = new ComponentNamingPolicy(); - - @Override - public String getClassName(String prefix, String source, Object key, Predicate names) { - if (prefix == null) { - prefix = "net.sf.cglib.empty.Object"; - } else if (prefix.startsWith("java")) { - prefix = "_" + prefix; - } - String base = prefix + "_" + source.substring(source.lastIndexOf('.') + 1) + getTag() + "_" + Integer.toHexString(key.hashCode()); - String attempt = base; - int index = 2; - while (names.evaluate(attempt)) - attempt = base + "_" + index++; - return attempt; - } - - /** - * Returns a string which is incorporated into every generated class name. - * By default returns "ByCloudStack" - */ - protected String getTag() { - return "ByCloudStack"; - } - - @Override - public int hashCode() { - return getTag().hashCode(); - } - - @Override - public boolean equals(Object o) { - return (o instanceof ComponentNamingPolicy) && ((ComponentNamingPolicy)o).getTag().equals(getTag()); - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/Manager.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/Manager.java b/utils/src/com/cloud/utils/component/Manager.java deleted file mode 100644 index 3200b46..0000000 --- a/utils/src/com/cloud/utils/component/Manager.java +++ /dev/null @@ -1,27 +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. -// - -package com.cloud.utils.component; - -/** - * - * For now we only expose some simple methods. In the future, we can use this - **/ -public interface Manager extends ComponentLifecycle { -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/ManagerBase.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/ManagerBase.java b/utils/src/com/cloud/utils/component/ManagerBase.java deleted file mode 100644 index 01e4f40..0000000 --- a/utils/src/com/cloud/utils/component/ManagerBase.java +++ /dev/null @@ -1,28 +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. -// - -package com.cloud.utils.component; - -public class ManagerBase extends ComponentLifecycleBase implements ComponentMethodInterceptable { - public ManagerBase() { - super(); - // set default run level for manager components - setRunLevel(ComponentLifecycle.RUN_LEVEL_COMPONENT_BOOTSTRAP); - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/Named.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/Named.java b/utils/src/com/cloud/utils/component/Named.java deleted file mode 100644 index 60835b0..0000000 --- a/utils/src/com/cloud/utils/component/Named.java +++ /dev/null @@ -1,26 +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. -// - -package com.cloud.utils.component; - -public interface Named { - - String getName(); - -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/PluggableService.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/PluggableService.java b/utils/src/com/cloud/utils/component/PluggableService.java deleted file mode 100644 index 60c64bf..0000000 --- a/utils/src/com/cloud/utils/component/PluggableService.java +++ /dev/null @@ -1,29 +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. -// - -package com.cloud.utils.component; - -import java.util.List; - -// This interface defines methods for pluggable code within the Cloud Stack. -public interface PluggableService { - // The config command properties filenames that lists allowed API commands - // and role masks supported by this pluggable service - List<Class<?>> getCommands(); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/Registry.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/Registry.java b/utils/src/com/cloud/utils/component/Registry.java deleted file mode 100644 index d3a48df..0000000 --- a/utils/src/com/cloud/utils/component/Registry.java +++ /dev/null @@ -1,51 +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. -// - -package com.cloud.utils.component; - -import java.util.List; - -/** - * Simple interface to represents a registry of items - * - * @param <T> - */ -public interface Registry<T> extends Named { - - /** - * Registers an item. If the item has already been registered the implementation - * should detect that it is registered and not re-register it. - * - * @param type - * @return true if register, false if not registered or already exists - */ - boolean register(T type); - - void unregister(T type); - - /** - * Returns a list that will dynamically change as items are registered/unregister. - * The list is thread safe to iterate upon. Traversing the list using an index - * would not be safe as the size may changed during traversal. - * - * @return Unmodifiable list of registered items - */ - List<T> getRegistered(); - -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/component/SystemIntegrityChecker.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/component/SystemIntegrityChecker.java b/utils/src/com/cloud/utils/component/SystemIntegrityChecker.java deleted file mode 100644 index a0e2581..0000000 --- a/utils/src/com/cloud/utils/component/SystemIntegrityChecker.java +++ /dev/null @@ -1,30 +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. -// - -package com.cloud.utils.component; - -/** - * before any other components are loaded. Within ComponentLocator - * database upgrades and other verification to make sure it works. - */ -public interface SystemIntegrityChecker { - public static final String Name = "system-integrity-checker"; - - void check(); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/concurrency/NamedThreadFactory.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/concurrency/NamedThreadFactory.java b/utils/src/com/cloud/utils/concurrency/NamedThreadFactory.java deleted file mode 100644 index ed4d6b0..0000000 --- a/utils/src/com/cloud/utils/concurrency/NamedThreadFactory.java +++ /dev/null @@ -1,38 +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. -// - -package com.cloud.utils.concurrency; - -import java.util.concurrent.ThreadFactory; - -public class NamedThreadFactory implements ThreadFactory { - private int _number; - private final String _name; - - public NamedThreadFactory(String name) { - _name = name; - _number = 1; - } - - @Override - public synchronized Thread newThread(Runnable r) { - return new Thread(r, _name + "-" + _number++); - } - -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/concurrency/Scheduler.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/concurrency/Scheduler.java b/utils/src/com/cloud/utils/concurrency/Scheduler.java deleted file mode 100644 index e0dba24..0000000 --- a/utils/src/com/cloud/utils/concurrency/Scheduler.java +++ /dev/null @@ -1,31 +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. -// - -package com.cloud.utils.concurrency; - -import java.util.Date; - -public interface Scheduler { - - /** - * This is called from the TimerTask thread periodically about every one minute. - * - */ - public void poll(Date currentTimestamp); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java b/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java deleted file mode 100644 index 5207ad4..0000000 --- a/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java +++ /dev/null @@ -1,89 +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. -// - -package com.cloud.utils.concurrency; - -import org.apache.log4j.Logger; - -public class SynchronizationEvent { - protected final static Logger s_logger = Logger.getLogger(SynchronizationEvent.class); - - private boolean signalled; - - public SynchronizationEvent() { - signalled = false; - } - - public SynchronizationEvent(boolean signalled) { - this.signalled = signalled; - } - - public void setEvent() { - synchronized (this) { - signalled = true; - notifyAll(); - } - } - - public void resetEvent() { - synchronized (this) { - signalled = false; - } - } - - public boolean waitEvent() throws InterruptedException { - synchronized (this) { - if (signalled) - return true; - - while (true) { - try { - wait(); - assert (signalled); - return signalled; - } catch (InterruptedException e) { - s_logger.debug("unexpected awaken signal in wait()"); - throw e; - } - } - } - } - - public boolean waitEvent(long timeOutMiliseconds) throws InterruptedException { - synchronized (this) { - if (signalled) - return true; - - try { - wait(timeOutMiliseconds); - return signalled; - } catch (InterruptedException e) { - // TODO, we don't honor time out semantics when the waiting thread is interrupted - s_logger.debug("unexpected awaken signal in wait(...)"); - throw e; - } - } - } - - public boolean isSignalled() { - synchronized (this) { - return signalled; - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/concurrency/TestClock.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/concurrency/TestClock.java b/utils/src/com/cloud/utils/concurrency/TestClock.java deleted file mode 100644 index 43fe56f..0000000 --- a/utils/src/com/cloud/utils/concurrency/TestClock.java +++ /dev/null @@ -1,161 +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. -// - -package com.cloud.utils.concurrency; - -import java.util.Calendar; -import java.util.Date; -import java.util.TimerTask; - -/** - * A test clock which is also a TimerTask. The task calls a Scheduler's poll method - * - */ -public class TestClock extends TimerTask { - private int _minute = 0; - private int _hour = 0; - private int _day = 0; - private int _week = 0; - private int _month = 0; - private int _year = 0; - private Calendar _cal = null; - private final int _minutesPerHour; - private final int _hoursPerDay; - private final int _daysPerWeek; - private final int _daysPerMonth; - private final int _weeksPerMonth; - private final int _monthsPerYear; - private final Scheduler _scheduler; - - public TestClock(Scheduler scheduler, int minutesPerHour, int hoursPerDay, int daysPerWeek, int daysPerMonth, int weeksPerMonth, int monthsPerYear) { - _minutesPerHour = minutesPerHour; - _hoursPerDay = hoursPerDay; - _daysPerWeek = daysPerWeek; - _daysPerMonth = daysPerMonth; - _weeksPerMonth = weeksPerMonth; - _monthsPerYear = monthsPerYear; - _cal = Calendar.getInstance(); - _year = _cal.get(Calendar.YEAR); - _month = _cal.get(Calendar.MONTH); - _day = _cal.get(Calendar.DAY_OF_MONTH); - _week = _cal.get(Calendar.WEEK_OF_MONTH); - _hour = _cal.get(Calendar.HOUR_OF_DAY); - _minute = _cal.get(Calendar.MINUTE); - _scheduler = scheduler; - } - - public int getMinute() { - synchronized (this) { - return _minute; - } - } - - public int getHour() { - synchronized (this) { - return _hour; - } - } - - public int getDay() { - synchronized (this) { - return _day; - } - } - - public int getWeek() { - synchronized (this) { - return _week; - } - } - - public int getMonth() { - synchronized (this) { - return _month; - } - } - - public int getYear() { - synchronized (this) { - return _year; - } - } - - public int getMinutesPerHour() { - return _minutesPerHour; - } - - public int getHoursPerDay() { - return _hoursPerDay; - } - - public int getDaysPerMonth() { - return _daysPerMonth; - } - - public int getDaysPerWeek() { - return _daysPerWeek; - } - - public int getWeeksPerMonth() { - return _weeksPerMonth; - } - - public int getMonthsPerYear() { - return _monthsPerYear; - } - - @Override - public void run() { - synchronized (this) { - _minute++; - if ((_minute > 0) && ((_minute % _minutesPerHour) == 0)) { - _minute = 0; - _hour++; - } - - if ((_hour > 0) && ((_hour % _hoursPerDay) == 0)) { - _hour = 0; - _day++; - } - - if ((_day > 0) && ((_day % _daysPerWeek) == 0)) { - _week++; - } - - if ((_day > 0) && ((_day % _daysPerMonth) == 0)) { - _day = 0; - _week = 0; - _month++; - } - - if ((_month > 0) && ((_month % _monthsPerYear) == 0)) { - _month = 0; - _year++; - } - if (_scheduler != null) { - // XXX: Creating new date is hugely inefficient for every minute. - // Later the time in the database will be changed to currentTimeInMillis. - // Then we can use System.getCurrentTimeInMillis() which is damn cheap. - _cal.set(_year, _month, _day, _hour, _minute); - Date currentTimestamp = _cal.getTime(); - _scheduler.poll(currentTimestamp); - } - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/crypt/DBEncryptionUtil.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/crypt/DBEncryptionUtil.java b/utils/src/com/cloud/utils/crypt/DBEncryptionUtil.java deleted file mode 100644 index 52f2034..0000000 --- a/utils/src/com/cloud/utils/crypt/DBEncryptionUtil.java +++ /dev/null @@ -1,87 +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. -// - -package com.cloud.utils.crypt; - -import java.util.Properties; - -import org.apache.log4j.Logger; -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; -import org.jasypt.exceptions.EncryptionOperationNotPossibleException; - -import com.cloud.utils.db.DbProperties; -import com.cloud.utils.exception.CloudRuntimeException; - -public class DBEncryptionUtil { - - public static final Logger s_logger = Logger.getLogger(DBEncryptionUtil.class); - private static StandardPBEStringEncryptor s_encryptor = null; - - public static String encrypt(String plain) { - if (!EncryptionSecretKeyChecker.useEncryption() || (plain == null) || plain.isEmpty()) { - return plain; - } - if (s_encryptor == null) { - initialize(); - } - String encryptedString = null; - try { - encryptedString = s_encryptor.encrypt(plain); - } catch (EncryptionOperationNotPossibleException e) { - s_logger.debug("Error while encrypting: " + plain); - throw e; - } - return encryptedString; - } - - public static String decrypt(String encrypted) { - if (!EncryptionSecretKeyChecker.useEncryption() || (encrypted == null) || encrypted.isEmpty()) { - return encrypted; - } - if (s_encryptor == null) { - initialize(); - } - - String plain = null; - try { - plain = s_encryptor.decrypt(encrypted); - } catch (EncryptionOperationNotPossibleException e) { - s_logger.debug("Error while decrypting: " + encrypted); - throw e; - } - return plain; - } - - private static void initialize() { - final Properties dbProps = DbProperties.getDbProperties(); - - if (EncryptionSecretKeyChecker.useEncryption()) { - String dbSecretKey = dbProps.getProperty("db.cloud.encrypt.secret"); - if (dbSecretKey == null || dbSecretKey.isEmpty()) { - throw new CloudRuntimeException("Empty DB secret key in db.properties"); - } - - s_encryptor = new StandardPBEStringEncryptor(); - s_encryptor.setAlgorithm("PBEWithMD5AndDES"); - s_encryptor.setPassword(dbSecretKey); - } else { - throw new CloudRuntimeException("Trying to encrypt db values when encrytion is not enabled"); - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java b/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java deleted file mode 100644 index 6524987..0000000 --- a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java +++ /dev/null @@ -1,146 +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. -// - -package com.cloud.utils.crypt; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.Properties; - -import javax.annotation.PostConstruct; - -import org.apache.log4j.Logger; -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; -import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; - -import com.cloud.utils.db.DbProperties; -import com.cloud.utils.exception.CloudRuntimeException; - -public class EncryptionSecretKeyChecker { - - private static final Logger s_logger = Logger.getLogger(EncryptionSecretKeyChecker.class); - - // Two possible locations with the new packaging naming - private static final String s_altKeyFile = "key"; - private static final String s_keyFile = "key"; - private static final String s_envKey = "CLOUD_SECRET_KEY"; - private static StandardPBEStringEncryptor s_encryptor = new StandardPBEStringEncryptor(); - private static boolean s_useEncryption = false; - - @PostConstruct - public void init() { - /* This will call DbProperties, which will call this to initialize the encryption. Yep, - * round about and annoying */ - DbProperties.getDbProperties(); - } - - public void check(Properties dbProps) throws IOException { - String encryptionType = dbProps.getProperty("db.cloud.encryption.type"); - - s_logger.debug("Encryption Type: " + encryptionType); - - if (encryptionType == null || encryptionType.equals("none")) { - return; - } - - if (s_useEncryption) { - s_logger.warn("Encryption already enabled, is check() called twice?"); - return; - } - - s_encryptor.setAlgorithm("PBEWithMD5AndDES"); - String secretKey = null; - - SimpleStringPBEConfig stringConfig = new SimpleStringPBEConfig(); - - if (encryptionType.equals("file")) { - InputStream is = this.getClass().getClassLoader().getResourceAsStream(s_keyFile); - if (is == null) { - is = this.getClass().getClassLoader().getResourceAsStream(s_altKeyFile); - } - if(is == null) { //This is means we are not able to load key file from the classpath. - throw new CloudRuntimeException(s_keyFile + " File containing secret key not found in the classpath: "); - } - - try (BufferedReader in = new BufferedReader(new InputStreamReader(is));) { - secretKey = in.readLine(); - //Check for null or empty secret key - } catch (IOException e) { - throw new CloudRuntimeException("Error while reading secret key from: " + s_keyFile, e); - } - - if (secretKey == null || secretKey.isEmpty()) { - throw new CloudRuntimeException("Secret key is null or empty in file " + s_keyFile); - } - - } else if (encryptionType.equals("env")) { - secretKey = System.getenv(s_envKey); - if (secretKey == null || secretKey.isEmpty()) { - throw new CloudRuntimeException("Environment variable " + s_envKey + " is not set or empty"); - } - } else if (encryptionType.equals("web")) { - int port = 8097; - try (ServerSocket serverSocket = new ServerSocket(port);) { - s_logger.info("Waiting for admin to send secret key on port " + port); - try ( - Socket clientSocket = serverSocket.accept(); - PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); - BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); - ) { - String inputLine; - if ((inputLine = in.readLine()) != null) { - secretKey = inputLine; - } - } catch (IOException e) { - throw new CloudRuntimeException("Accept failed on " + port); - } - } catch (IOException ioex) { - throw new CloudRuntimeException("Error initializing secret key reciever", ioex); - } - } else { - throw new CloudRuntimeException("Invalid encryption type: " + encryptionType); - } - - stringConfig.setPassword(secretKey); - s_encryptor.setConfig(stringConfig); - s_useEncryption = true; - } - - public static StandardPBEStringEncryptor getEncryptor() { - return s_encryptor; - } - - public static boolean useEncryption() { - return s_useEncryption; - } - - //Initialize encryptor for migration during secret key change - public static void initEncryptorForMigration(String secretKey) { - s_encryptor.setAlgorithm("PBEWithMD5AndDES"); - SimpleStringPBEConfig stringConfig = new SimpleStringPBEConfig(); - stringConfig.setPassword(secretKey); - s_encryptor.setConfig(stringConfig); - s_useEncryption = true; - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/crypt/EncryptionSecretKeySender.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeySender.java b/utils/src/com/cloud/utils/crypt/EncryptionSecretKeySender.java deleted file mode 100644 index ed44ac6..0000000 --- a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeySender.java +++ /dev/null @@ -1,65 +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. -// - -package com.cloud.utils.crypt; - - -import java.io.PrintWriter; -import java.net.InetAddress; -import java.net.Socket; -import com.cloud.utils.NumbersUtil; - - -public class EncryptionSecretKeySender { - public static void main(String args[]) { - try { - // Create a socket to the host - String hostname = "localhost"; - int port = 8097; - - if (args.length == 2) { - hostname = args[0]; - port = NumbersUtil.parseInt(args[1], port); - } - InetAddress addr = InetAddress.getByName(hostname); - try(Socket socket = new Socket(addr, port); - PrintWriter out = new PrintWriter(socket.getOutputStream(), true);) - { - java.io.BufferedReader stdin = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); - String validationWord = "cloudnine"; - String validationInput = ""; - while (!validationWord.equals(validationInput)) { - System.out.print("Enter Validation Word:"); - validationInput = stdin.readLine(); - System.out.println(); - } - System.out.print("Enter Secret Key:"); - String input = stdin.readLine(); - if (input != null) { - out.println(input); - } - }catch (Exception e) - { - System.out.println("Exception " + e.getMessage()); - } - } catch (Exception e) { - System.out.print("Exception while sending secret key " + e); - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/crypt/RSAHelper.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/crypt/RSAHelper.java b/utils/src/com/cloud/utils/crypt/RSAHelper.java deleted file mode 100644 index 692ac22..0000000 --- a/utils/src/com/cloud/utils/crypt/RSAHelper.java +++ /dev/null @@ -1,90 +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. -// - -package com.cloud.utils.crypt; - -import java.io.ByteArrayInputStream; -import java.io.DataInput; -import java.io.DataInputStream; -import java.io.IOException; -import java.math.BigInteger; -import java.security.KeyFactory; -import java.security.SecureRandom; -import java.security.Security; -import java.security.interfaces.RSAPublicKey; -import java.security.spec.KeySpec; -import java.security.spec.RSAPublicKeySpec; - -import javax.crypto.Cipher; - -import org.apache.commons.codec.binary.Base64; -import org.apache.log4j.Logger; -import org.bouncycastle.jce.provider.BouncyCastleProvider; - -public class RSAHelper { - final static Logger s_logger = Logger.getLogger(RSAHelper.class); - - static { - BouncyCastleProvider provider = new BouncyCastleProvider(); - if (Security.getProvider(provider.getName()) == null) - Security.addProvider(provider); - } - - private static RSAPublicKey readKey(String key) throws Exception { - byte[] encKey = Base64.decodeBase64(key.split(" ")[1]); - DataInputStream dis = new DataInputStream(new ByteArrayInputStream(encKey)); - - byte[] header = readElement(dis); - String pubKeyFormat = new String(header); - if (!pubKeyFormat.equals("ssh-rsa")) - throw new RuntimeException("Unsupported format"); - - byte[] publicExponent = readElement(dis); - byte[] modulus = readElement(dis); - - KeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus), new BigInteger(publicExponent)); - KeyFactory keyFactory = KeyFactory.getInstance("RSA", BouncyCastleProvider.PROVIDER_NAME); - RSAPublicKey pubKey = (RSAPublicKey)keyFactory.generatePublic(spec); - - return pubKey; - } - - private static byte[] readElement(DataInput dis) throws IOException { - int len = dis.readInt(); - byte[] buf = new byte[len]; - dis.readFully(buf); - return buf; - } - - public static String encryptWithSSHPublicKey(String sshPublicKey, String content) { - String returnString = null; - try { - RSAPublicKey publicKey = readKey(sshPublicKey); - Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding", BouncyCastleProvider.PROVIDER_NAME); - cipher.init(Cipher.ENCRYPT_MODE, publicKey, new SecureRandom()); - byte[] encrypted = cipher.doFinal(content.getBytes()); - returnString = Base64.encodeBase64String(encrypted); - } catch (Exception e) { - s_logger.info("[ignored]" - + "error during public key encryption: " + e.getLocalizedMessage()); - } - - return returnString; - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/db/DbProperties.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/db/DbProperties.java b/utils/src/com/cloud/utils/db/DbProperties.java deleted file mode 100644 index 8420614..0000000 --- a/utils/src/com/cloud/utils/db/DbProperties.java +++ /dev/null @@ -1,109 +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. -// - -package com.cloud.utils.db; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import org.apache.commons.io.IOUtils; -import org.apache.log4j.Logger; -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; -import org.jasypt.properties.EncryptableProperties; - -import com.cloud.utils.PropertiesUtil; -import com.cloud.utils.crypt.EncryptionSecretKeyChecker; - -public class DbProperties { - - private static final Logger log = Logger.getLogger(DbProperties.class); - - private static Properties properties = new Properties(); - private static boolean loaded = false; - - protected static Properties wrapEncryption(Properties dbProps) throws IOException { - EncryptionSecretKeyChecker checker = new EncryptionSecretKeyChecker(); - checker.check(dbProps); - - if (EncryptionSecretKeyChecker.useEncryption()) { - return dbProps; - } else { - EncryptableProperties encrProps = new EncryptableProperties(EncryptionSecretKeyChecker.getEncryptor()); - encrProps.putAll(dbProps); - return encrProps; - } - } - - public synchronized static Properties getDbProperties() { - if (!loaded) { - Properties dbProps = new Properties(); - InputStream is = null; - try { - File props = PropertiesUtil.findConfigFile("db.properties"); - if (props != null && props.exists()) { - is = new FileInputStream(props); - } - - if (is == null) { - is = PropertiesUtil.openStreamFromURL("db.properties"); - } - - if (is == null) { - System.err.println("Failed to find db.properties"); - log.error("Failed to find db.properties"); - } - - if (is != null) { - dbProps.load(is); - } - - EncryptionSecretKeyChecker checker = new EncryptionSecretKeyChecker(); - checker.check(dbProps); - - if (EncryptionSecretKeyChecker.useEncryption()) { - StandardPBEStringEncryptor encryptor = EncryptionSecretKeyChecker.getEncryptor(); - EncryptableProperties encrDbProps = new EncryptableProperties(encryptor); - encrDbProps.putAll(dbProps); - dbProps = encrDbProps; - } - } catch (IOException e) { - throw new IllegalStateException("Failed to load db.properties", e); - } finally { - IOUtils.closeQuietly(is); - } - - properties = dbProps; - loaded = true; - } - - return properties; - } - - public synchronized static Properties setDbProperties(Properties props) throws IOException { - if (loaded) { - throw new IllegalStateException("DbProperties has already been loaded"); - } - properties = wrapEncryption(props); - loaded = true; - return properties; - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/db/EntityManager.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/db/EntityManager.java b/utils/src/com/cloud/utils/db/EntityManager.java deleted file mode 100644 index 8f4e385..0000000 --- a/utils/src/com/cloud/utils/db/EntityManager.java +++ /dev/null @@ -1,84 +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. -// - -package com.cloud.utils.db; - -import java.io.Serializable; -import java.util.List; - -/** - * Generic Entity Manager to retrieve database objects. - * - */ -public interface EntityManager { - /** - * Finds an entity by its id. - * @param <T> class of the entity you're trying to find. - * @param <K> class of the id that the entity uses. - * @param entityType Type of the entity. - * @param id id value - * @return T if found; null if not. - */ - public <T, K extends Serializable> T findById(Class<T> entityType, K id); - - /** - * Finds a unique entity by uuid string - * @param <T> entity class - * @param entityType type of entity you're looking for. - * @param uuid the unique id - * @return T if found, null if not. - */ - public <T> T findByUuid(Class<T> entityType, String uuid); - - /** - * Finds a unique entity by uuid string, including those removed entries - * @param <T> entity class - * @param entityType type of entity you're looking for. - * @param uuid the unique id - * @return T if found, null if not. - */ - public <T> T findByUuidIncludingRemoved(Class<T> entityType, String uuid); - - /** - * Finds an entity by external id which is always String - * @param <T> entity class - * @param entityType type of entity you're looking for. - * @param xid external id - * @return T if found, null if not. - */ - public <T> T findByXId(Class<T> entityType, String xid); - - /** - * Lists all entities. Use this method at your own risk. - * @param <T> entity class - * @param entityType type of entity you're looking for. - * @return List<T> - */ - public <T> List<? extends T> list(Class<T> entityType); - - public <T, K extends Serializable> void remove(Class<T> entityType, K id); - - public <T, K extends Serializable> T findByIdIncludingRemoved(Class<T> entityType, K id); - - public static final String MESSAGE_REMOVE_ENTITY_EVENT = "Message.RemoveEntity.Event"; - - public static final String MESSAGE_GRANT_ENTITY_EVENT = "Message.GrantEntity.Event"; - public static final String MESSAGE_REVOKE_ENTITY_EVENT = "Message.RevokeEntity.Event"; - public static final String MESSAGE_ADD_DOMAIN_WIDE_ENTITY_EVENT = "Message.AddDomainWideEntity.Event"; -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/db/UUIDManager.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/db/UUIDManager.java b/utils/src/com/cloud/utils/db/UUIDManager.java deleted file mode 100644 index cac1876..0000000 --- a/utils/src/com/cloud/utils/db/UUIDManager.java +++ /dev/null @@ -1,48 +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. -// - -package com.cloud.utils.db; - - -public interface UUIDManager { - - /** - * Generates a new uuid or uses the customId - * @param entityType the type of entity - * @param customId optional custom uuid of the object. - * @return newly created uuid. - */ - public <T> String generateUuid(Class<T> entityType, String customId); - - /** - * Checks the uuid for correct format, uniqueness and permissions. - * @param uuid uuid to check - * @param entityType the type of entity - * . - */ - <T> void checkUuid(String uuid, Class<T> entityType); - - /** - * Checks the uuid for correct format, uniqueness, without checking permissions - * @param uuid uuid to check - * @param entityType the type of entity - * . - */ - <T> void checkUuidSimple(String uuid, Class<T> entityType); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/encoding/URLEncoder.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/encoding/URLEncoder.java b/utils/src/com/cloud/utils/encoding/URLEncoder.java deleted file mode 100644 index 58971e7..0000000 --- a/utils/src/com/cloud/utils/encoding/URLEncoder.java +++ /dev/null @@ -1,113 +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. -// - -package com.cloud.utils.encoding; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.nio.charset.Charset; -import java.nio.charset.CharsetEncoder; -import java.util.BitSet; - -/** - * - * This class is very similar to the java.net.URLEncoder class. - * - * Unfortunately, with java.net.URLEncoder there is no way to specify to the - * java.net.URLEncoder which characters should NOT be encoded. - * - * This code was moved from DefaultServlet.java - * - * @author Craig R. McClanahan - * @author Remy Maucherat - */ - -public class URLEncoder { - protected static final char[] hexadecimal = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; - - static CharsetEncoder asciiEncoder = Charset.forName("US-ASCII").newEncoder(); // or "ISO-8859-1" for ISO Latin 1 - - //Array containing the safe characters set. - protected BitSet safeCharacters = new BitSet(256); - - public URLEncoder() { - for (char i = 'a'; i <= 'z'; i++) { - addSafeCharacter(i); - } - for (char i = 'A'; i <= 'Z'; i++) { - addSafeCharacter(i); - } - for (char i = '0'; i <= '9'; i++) { - addSafeCharacter(i); - } - } - - private void addSafeCharacter(char c) { - safeCharacters.set(c); - } - - public String encode(String path) { - int maxBytesPerChar = 10; - StringBuffer rewrittenPath = new StringBuffer(path.length()); - ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar); - OutputStreamWriter writer = null; - try { - writer = new OutputStreamWriter(buf, "UTF8"); - } catch (Exception e) { - e.printStackTrace(); - writer = new OutputStreamWriter(buf); - } - - for (int i = 0; i < path.length(); i++) { - int c = path.charAt(i); - // NOTICE - !isPureAscii(path.charAt(i)) check was added by - // CloudStack - if (safeCharacters.get(c) || !isPureAscii(path.charAt(i))) { - rewrittenPath.append((char)c); - } else { - // convert to external encoding before hex conversion - try { - writer.write((char)c); - writer.flush(); - } catch (IOException e) { - buf.reset(); - continue; - } - byte[] ba = buf.toByteArray(); - for (int j = 0; j < ba.length; j++) { - // Converting each byte in the buffer - byte toEncode = ba[j]; - rewrittenPath.append('%'); - int low = toEncode & 0x0f; - int high = (toEncode & 0xf0) >> 4; - rewrittenPath.append(hexadecimal[high]); - rewrittenPath.append(hexadecimal[low]); - } - buf.reset(); - } - } - return rewrittenPath.toString(); - } - - // NOTICE - this part was added by CloudStack - public static boolean isPureAscii(Character v) { - return asciiEncoder.canEncode(v); - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/events/EventArgs.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/events/EventArgs.java b/utils/src/com/cloud/utils/events/EventArgs.java deleted file mode 100644 index 5c06b4b..0000000 --- a/utils/src/com/cloud/utils/events/EventArgs.java +++ /dev/null @@ -1,44 +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. -// - -package com.cloud.utils.events; - -import java.io.Serializable; - -public class EventArgs implements Serializable { - private static final long serialVersionUID = 30659016120504139L; - public static final EventArgs Empty = new EventArgs(); - - private String subject; - - public EventArgs() { - } - - public EventArgs(String subject) { - this.subject = subject; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/events/SubscriptionMgr.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/events/SubscriptionMgr.java b/utils/src/com/cloud/utils/events/SubscriptionMgr.java deleted file mode 100644 index 254c27d..0000000 --- a/utils/src/com/cloud/utils/events/SubscriptionMgr.java +++ /dev/null @@ -1,164 +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. -// - -package com.cloud.utils.events; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; - -public class SubscriptionMgr { - protected final static Logger s_logger = Logger.getLogger(SubscriptionMgr.class); - - private static SubscriptionMgr s_instance = new SubscriptionMgr(); - - private Map<String, List<SubscriberInfo>> registry; - - private SubscriptionMgr() { - registry = new HashMap<String, List<SubscriberInfo>>(); - } - - public static SubscriptionMgr getInstance() { - return s_instance; - } - - public <T> void subscribe(String subject, T subscriber, String listenerMethod) throws SecurityException, NoSuchMethodException { - - synchronized (this) { - List<SubscriberInfo> l = getAndSetSubscriberList(subject); - - Class<?> clazz = subscriber.getClass(); - SubscriberInfo subscribeInfo = new SubscriberInfo(clazz, subscriber, listenerMethod); - - if (!l.contains(subscribeInfo)) - l.add(subscribeInfo); - } - } - - public <T> void unsubscribe(String subject, T subscriber, String listenerMethod) { - synchronized (this) { - List<SubscriberInfo> l = getSubscriberList(subject); - if (l != null) { - for (SubscriberInfo info : l) { - if (info.isMe(subscriber.getClass(), subscriber, listenerMethod)) { - l.remove(info); - return; - } - } - } - } - } - - public void notifySubscribers(String subject, Object sender, EventArgs args) { - - List<SubscriberInfo> l = getExecutableSubscriberList(subject); - if (l != null) { - for (SubscriberInfo info : l) { - try { - info.execute(sender, args); - } catch (IllegalArgumentException e) { - s_logger.warn("Exception on notifying event subscribers: ", e); - } catch (IllegalAccessException e) { - s_logger.warn("Exception on notifying event subscribers: ", e); - } catch (InvocationTargetException e) { - s_logger.warn("Exception on notifying event subscribers: ", e); - } - } - } - } - - private List<SubscriberInfo> getAndSetSubscriberList(String subject) { - List<SubscriberInfo> l = registry.get(subject); - if (l == null) { - l = new ArrayList<SubscriberInfo>(); - registry.put(subject, l); - } - - return l; - } - - private List<SubscriberInfo> getSubscriberList(String subject) { - return registry.get(subject); - } - - private synchronized List<SubscriberInfo> getExecutableSubscriberList(String subject) { - List<SubscriberInfo> l = registry.get(subject); - if (l != null) { - // do a shadow clone - ArrayList<SubscriberInfo> clonedList = new ArrayList<SubscriberInfo>(l.size()); - for (SubscriberInfo info : l) - clonedList.add(info); - - return clonedList; - } - return null; - } - - private static class SubscriberInfo { - private Class<?> clazz; - private Object subscriber; - private String methodName; - private Method method; - - public SubscriberInfo(Class<?> clazz, Object subscriber, String methodName) throws SecurityException, NoSuchMethodException { - - this.clazz = clazz; - this.subscriber = subscriber; - this.methodName = methodName; - for (Method method : clazz.getMethods()) { - if (method.getName().equals(methodName)) { - Class<?>[] paramTypes = method.getParameterTypes(); - if (paramTypes != null && paramTypes.length == 2 && paramTypes[0] == Object.class && EventArgs.class.isAssignableFrom(paramTypes[1])) { - this.method = method; - - break; - } - } - } - if (this.method == null) - throw new NoSuchMethodException(); - } - - public void execute(Object sender, EventArgs args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - - method.invoke(subscriber, sender, args); - } - - public boolean isMe(Class<?> clazz, Object subscriber, String methodName) { - return this.clazz == clazz && this.subscriber == subscriber && this.methodName.equals(methodName); - } - - @Override - public boolean equals(Object o) { - if (o == null) - return false; - - if (o instanceof SubscriberInfo) { - return this.clazz == ((SubscriberInfo)o).clazz && this.subscriber == ((SubscriberInfo)o).subscriber && - this.methodName.equals(((SubscriberInfo)o).methodName); - } - return false; - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java b/utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java deleted file mode 100644 index 62af14e..0000000 --- a/utils/src/com/cloud/utils/exception/CSExceptionErrorCode.java +++ /dev/null @@ -1,100 +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. -// - -package com.cloud.utils.exception; - -import java.util.HashMap; - -import org.apache.log4j.Logger; - -/** - * CSExceptionErrorCode lists the CloudStack error codes that correspond - * to a each exception thrown by the CloudStack API. - */ - -public class CSExceptionErrorCode { - - public static final Logger s_logger = Logger.getLogger(CSExceptionErrorCode.class.getName()); - - // Declare a hashmap of CloudStack Error Codes for Exceptions. - protected static final HashMap<String, Integer> ExceptionErrorCodeMap; - - static { - try { - ExceptionErrorCodeMap = new HashMap<String, Integer>(); - ExceptionErrorCodeMap.put("com.cloud.utils.exception.CloudRuntimeException", 4250); - ExceptionErrorCodeMap.put("com.cloud.utils.exception.ExecutionException", 4260); - ExceptionErrorCodeMap.put("com.cloud.utils.exception.HypervisorVersionChangedException", 4265); - ExceptionErrorCodeMap.put("com.cloud.exception.CloudException", 4275); - ExceptionErrorCodeMap.put("com.cloud.exception.AccountLimitException", 4280); - ExceptionErrorCodeMap.put("com.cloud.exception.AgentUnavailableException", 4285); - ExceptionErrorCodeMap.put("com.cloud.exception.CloudAuthenticationException", 4290); - ExceptionErrorCodeMap.put("com.cloud.exception.ConcurrentOperationException", 4300); - ExceptionErrorCodeMap.put("com.cloud.exception.ConflictingNetworkSettingsException", 4305); - ExceptionErrorCodeMap.put("com.cloud.exception.DiscoveredWithErrorException", 4310); - ExceptionErrorCodeMap.put("com.cloud.exception.HAStateException", 4315); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientAddressCapacityException", 4320); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientCapacityException", 4325); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientNetworkCapacityException", 4330); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientVirtualNetworkCapacityException", 4331); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientServerCapacityException", 4335); - ExceptionErrorCodeMap.put("com.cloud.exception.InsufficientStorageCapacityException", 4340); - ExceptionErrorCodeMap.put("com.cloud.exception.InternalErrorException", 4345); - ExceptionErrorCodeMap.put("com.cloud.exception.InvalidParameterValueException", 4350); - ExceptionErrorCodeMap.put("com.cloud.exception.ManagementServerException", 4355); - ExceptionErrorCodeMap.put("com.cloud.exception.NetworkRuleConflictException", 4360); - ExceptionErrorCodeMap.put("com.cloud.exception.PermissionDeniedException", 4365); - ExceptionErrorCodeMap.put("com.cloud.exception.ResourceAllocationException", 4370); - ExceptionErrorCodeMap.put("com.cloud.exception.ResourceInUseException", 4375); - ExceptionErrorCodeMap.put("com.cloud.exception.ResourceUnavailableException", 4380); - ExceptionErrorCodeMap.put("com.cloud.exception.StorageUnavailableException", 4385); - ExceptionErrorCodeMap.put("com.cloud.exception.UnsupportedServiceException", 4390); - ExceptionErrorCodeMap.put("com.cloud.exception.VirtualMachineMigrationException", 4395); - ExceptionErrorCodeMap.put("com.cloud.async.AsyncCommandQueued", 4540); - ExceptionErrorCodeMap.put("com.cloud.exception.RequestLimitException", 4545); - ExceptionErrorCodeMap.put("com.cloud.exception.StorageConflictException", 4550); - - // Have a special error code for ServerApiException when it is - // thrown in a standalone manner when failing to detect any of the above - // standard exceptions. - ExceptionErrorCodeMap.put("org.apache.cloudstack.api.ServerApiException", 9999); - } catch (Exception e) { - e.printStackTrace(); - throw new ExceptionInInitializerError(e); - } - } - - public static HashMap<String, Integer> getErrCodeList() { - return ExceptionErrorCodeMap; - } - - public static int getCSErrCode(String exceptionName) { - if (ExceptionErrorCodeMap.containsKey(exceptionName)) { - return ExceptionErrorCodeMap.get(exceptionName); - } else { - s_logger.info("Could not find exception: " + exceptionName + " in error code list for exceptions"); - return -1; - } - } - - public static String getCurMethodName() { - StackTraceElement stackTraceCalls[] = (new Throwable()).getStackTrace(); - return stackTraceCalls[1].toString(); - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/exception/CloudRuntimeException.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/exception/CloudRuntimeException.java b/utils/src/com/cloud/utils/exception/CloudRuntimeException.java deleted file mode 100644 index dd5abc8..0000000 --- a/utils/src/com/cloud/utils/exception/CloudRuntimeException.java +++ /dev/null @@ -1,141 +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. -// - -package com.cloud.utils.exception; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.ArrayList; -import java.util.List; - -import com.cloud.utils.Pair; -import com.cloud.utils.SerialVersionUID; - -/** - * wrap exceptions that you know there's no point in dealing with. - */ -public class CloudRuntimeException extends RuntimeException implements ErrorContext { - - private static final long serialVersionUID = SerialVersionUID.CloudRuntimeException; - - // This holds a list of uuids and their descriptive names. - transient protected ArrayList<ExceptionProxyObject> idList = new ArrayList<ExceptionProxyObject>(); - - transient protected ArrayList<Pair<Class<?>, String>> uuidList = new ArrayList<Pair<Class<?>, String>>(); - - protected int csErrorCode; - - public CloudRuntimeException(String message) { - super(message); - setCSErrorCode(CSExceptionErrorCode.getCSErrCode(this.getClass().getName())); - } - - public CloudRuntimeException(String message, Throwable th) { - super(message, th); - setCSErrorCode(CSExceptionErrorCode.getCSErrCode(this.getClass().getName())); - } - - protected CloudRuntimeException() { - super(); - - setCSErrorCode(CSExceptionErrorCode.getCSErrCode(this.getClass().getName())); - } - - public void addProxyObject(ExceptionProxyObject obj) { - idList.add(obj); - } - - public void addProxyObject(String uuid) { - idList.add(new ExceptionProxyObject(uuid, null)); - } - - public void addProxyObject(String voObjUuid, String description) { - ExceptionProxyObject proxy = new ExceptionProxyObject(voObjUuid, description); - idList.add(proxy); - } - - @Override - public CloudRuntimeException add(Class<?> entity, String uuid) { - uuidList.add(new Pair<Class<?>, String>(entity, uuid)); - return this; - } - - public ArrayList<ExceptionProxyObject> getIdProxyList() { - return idList; - } - - public void setCSErrorCode(int cserrcode) { - csErrorCode = cserrcode; - } - - public int getCSErrorCode() { - return csErrorCode; - } - - public CloudRuntimeException(Throwable t) { - super(t.getMessage(), t); - } - - @Override - public List<Pair<Class<?>, String>> getEntitiesInError() { - return uuidList; - } - - private void writeObject(ObjectOutputStream out) throws IOException { - out.defaultWriteObject(); - - int idListSize = idList.size(); - out.writeInt(idListSize); - for (ExceptionProxyObject proxy : idList) { - out.writeObject(proxy); - } - - int uuidListSize = uuidList.size(); - out.writeInt(uuidListSize); - for (Pair<Class<?>, String> entry : uuidList) { - out.writeObject(entry.first().getCanonicalName()); - out.writeObject(entry.second()); - } - } - - private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { - in.defaultReadObject(); - - int idListSize = in.readInt(); - if (idList == null) - idList = new ArrayList<ExceptionProxyObject>(); - if (uuidList == null) - uuidList = new ArrayList<Pair<Class<?>, String>>(); - - for (int i = 0; i < idListSize; i++) { - ExceptionProxyObject proxy = (ExceptionProxyObject)in.readObject(); - - idList.add(proxy); - } - - int uuidListSize = in.readInt(); - for (int i = 0; i < uuidListSize; i++) { - String clzName = (String)in.readObject(); - String val = (String)in.readObject(); - - uuidList.add(new Pair<Class<?>, String>(Class.forName(clzName), val)); - } - } -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/exception/ErrorContext.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/exception/ErrorContext.java b/utils/src/com/cloud/utils/exception/ErrorContext.java deleted file mode 100644 index 5391373..0000000 --- a/utils/src/com/cloud/utils/exception/ErrorContext.java +++ /dev/null @@ -1,31 +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. -// - -package com.cloud.utils.exception; - -import java.util.List; - -import com.cloud.utils.Pair; - -public interface ErrorContext { - - ErrorContext add(Class<?> entity, String uuid); - - List<Pair<Class<?>, String>> getEntitiesInError(); -} http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83fd8f60/utils/src/com/cloud/utils/exception/ExceptionProxyObject.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/exception/ExceptionProxyObject.java b/utils/src/com/cloud/utils/exception/ExceptionProxyObject.java deleted file mode 100644 index 5a689d4..0000000 --- a/utils/src/com/cloud/utils/exception/ExceptionProxyObject.java +++ /dev/null @@ -1,55 +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. -// - -package com.cloud.utils.exception; - -import java.io.Serializable; - - -public class ExceptionProxyObject implements Serializable { - private static final long serialVersionUID = -7514266713085362352L; - - private String uuid; - private String description; - - public ExceptionProxyObject(){ - - } - - public ExceptionProxyObject(String uuid, String desc){ - this.uuid = uuid; - description = desc; - } - - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } -}
