</dependencies>
<build>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
final BmpExtensionProviderActivator bmpActivator = new BmpActivator(bgpCtx);
bmpActivator.start(ctx);
- return new BmpMockDispatcher(ctx.getBmpMessageRegistry(),
- (channel, sessionListenerFactory) -> new BmpMockSession(arguments.getPeersCount(), arguments.getPrePolicyRoutesCount(), arguments.getPostPolicyRoutesCount()));
+ return new BmpMockDispatcher(ctx.getBmpMessageRegistry(), (channel, sessionListenerFactory) ->
+ new BmpMockSession(arguments.getPeersCount(),
+ arguments.getPrePolicyRoutesCount(), arguments.getPostPolicyRoutesCount()));
}
private static void deployClients(final BmpMockDispatcher dispatcher, final BmpMockArguments arguments) {
final InetSocketAddress localAddress = arguments.getLocalAddress();
- final InetSocketAddress remoteAddress = arguments.getRemoteAddress();
InetAddress currentLocal = localAddress.getAddress();
final int port = localAddress.getPort();
- for (int i = 0; i < arguments.getRoutersCount(); i++) {
- dispatcher.createClient(new InetSocketAddress(currentLocal, port), remoteAddress);
- currentLocal = InetAddresses.increment(currentLocal);
+ for (final InetSocketAddress remoteAddress : arguments.getRemoteAddress()) {
+ for (int i = 0; i < arguments.getRoutersCount(); i++) {
+ dispatcher.createClient(new InetSocketAddress(currentLocal, port), remoteAddress);
+ currentLocal = InetAddresses.increment(currentLocal);
+ }
}
}
import com.google.common.net.InetAddresses;
import java.net.InetAddress;
import java.net.InetSocketAddress;
+import java.util.Collections;
+import java.util.List;
import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.impl.Arguments;
+import net.sourceforge.argparse4j.inf.Argument;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
+import net.sourceforge.argparse4j.inf.ArgumentType;
import net.sourceforge.argparse4j.inf.Namespace;
import org.opendaylight.protocol.util.ArgumentsInput;
+import org.opendaylight.protocol.util.InetSocketAddressUtil;
public final class BmpMockArguments implements ArgumentsInput {
this.parseArgs = parseArgs;
}
- public static BmpMockArguments parseArguments(final String[] args) {
+ static BmpMockArguments parseArguments(final String[] args) {
try {
final Namespace namespace = ARGUMENT_PARSER.parseArgs(args);
return new BmpMockArguments(namespace);
}
}
- public int getRoutersCount() {
+ private interface ArgumentTypeTool<T> extends ArgumentType<T> {
+ default T convert(final ArgumentParser var1, final Argument var2, final String input)
+ throws ArgumentParserException {
+ return convert(input);
+ }
+
+ T convert(String input) throws ArgumentParserException;
+ }
+
+ int getRoutersCount() {
return this.parseArgs.getInt(ROUTERS_COUNT_DST);
}
- public int getPeersCount() {
+ int getPeersCount() {
return this.parseArgs.getInt(PEERS_COUNT_DST);
}
- public int getPrePolicyRoutesCount() {
+ int getPrePolicyRoutesCount() {
return this.parseArgs.getInt(PRE_POLICY_ROUTES_COUNT_DST);
}
- public int getPostPolicyRoutesCount() {
+ int getPostPolicyRoutesCount() {
return this.parseArgs.getInt(POST_POLICY_ROUTES_COUNT_DST);
}
- public InetSocketAddress getLocalAddress() {
+ InetSocketAddress getLocalAddress() {
return this.parseArgs.get(LOCAL_ADDRESS_DST);
}
- public InetSocketAddress getRemoteAddress() {
+ List<InetSocketAddress> getRemoteAddress() {
return this.parseArgs.get(REMOTE_ADDRESS_DST);
}
return this.parseArgs.get(LOG_LEVEL_DST);
}
- public boolean isOnPassiveMode() {
+ boolean isOnPassiveMode() {
return this.parseArgs.get(PASSIVE_MODE_DST);
}
private static ArgumentParser initializeArgumentParser() {
final ArgumentParser parser = ArgumentParsers.newArgumentParser(PROGRAM_NAME);
- parser.addArgument(toArgName(ROUTERS_COUNT_DST)).type(Integer.class).setDefault(1);
- parser.addArgument(toArgName(PEERS_COUNT_DST)).type(Integer.class).setDefault(0);
- parser.addArgument(toArgName(PRE_POLICY_ROUTES_COUNT_DST)).type(Integer.class).setDefault(0);
- parser.addArgument(toArgName(POST_POLICY_ROUTES_COUNT_DST)).type(Integer.class).setDefault(0);
- parser.addArgument(toArgName(PASSIVE_MODE_DST)).action(Arguments.storeTrue());
- parser.addArgument(toArgName(LOCAL_ADDRESS_DST)).type((parser13, arg, value) -> getInetSocketAddress(value, DEFAULT_LOCAL_PORT)).setDefault(LOCAL_ADDRESS);
- parser.addArgument(toArgName(REMOTE_ADDRESS_DST)).type((parser12, arg, value) -> getInetSocketAddress(value, DEFAULT_REMOTE_PORT)).setDefault(REMOTE_ADDRESS);
- parser.addArgument(toArgName(LOG_LEVEL_DST)).type((parser1, arg, value) -> Level.toLevel(value)).setDefault(Level.INFO);
+ parser.addArgument(toArgName(ROUTERS_COUNT_DST))
+ .type(Integer.class)
+ .setDefault(1);
+ parser.addArgument(toArgName(PEERS_COUNT_DST))
+ .type(Integer.class)
+ .setDefault(0);
+ parser.addArgument(toArgName(PRE_POLICY_ROUTES_COUNT_DST))
+ .type(Integer.class)
+ .setDefault(0);
+ parser.addArgument(toArgName(POST_POLICY_ROUTES_COUNT_DST))
+ .type(Integer.class).setDefault(0);
+ parser.addArgument(toArgName(PASSIVE_MODE_DST))
+ .action(Arguments.storeTrue());
+ parser.addArgument(toArgName(LOCAL_ADDRESS_DST))
+ .type((parser13, arg, value) -> getInetSocketAddress(value, DEFAULT_LOCAL_PORT))
+ .setDefault(LOCAL_ADDRESS);
+ parser.addArgument("-ra", toArgName(REMOTE_ADDRESS_DST))
+ .type((ArgumentTypeTool<List<InetSocketAddress>>) input ->
+ InetSocketAddressUtil.parseAddresses(input, DEFAULT_REMOTE_PORT))
+ .setDefault(Collections.singletonList(REMOTE_ADDRESS));
+ parser.addArgument(toArgName(LOG_LEVEL_DST))
+ .type((parser1, arg, value) -> Level.toLevel(value))
+ .setDefault(Level.INFO);
return parser;
}
@Override
public void channelActive(final ChannelHandlerContext ctx) {
this.channel = ctx.channel();
- this.channel.closeFuture().addListener((ChannelFutureListener) future -> LOG.info("BMP session {} final successfully established.", BmpMockSession.this.channel));
+ this.channel.closeFuture().addListener((ChannelFutureListener) future ->
+ LOG.info("BMP session {} final successfully established.", BmpMockSession.this.channel));
LOG.info("BMP session {} successfully established.", this.channel);
final InetSocketAddress localAddress = (InetSocketAddress) this.channel.localAddress();
this.remoteAddress = (InetSocketAddress) this.channel.remoteAddress();
throw new UnsupportedOperationException();
}
- public static InitiationMessage createInitiation() {
+ static InitiationMessage createInitiation() {
final InitiationMessageBuilder msgBuilder = new InitiationMessageBuilder();
msgBuilder.setTlvs(
new TlvsBuilder()
return msgBuilder.build();
}
- public static PeerUpNotification createPeerUp(final Ipv4Address peerIp, final InetAddress localAddress) {
+ static PeerUpNotification createPeerUp(final Ipv4Address peerIp, final InetAddress localAddress) {
final PeerUpNotificationBuilder msgBuilder = new PeerUpNotificationBuilder();
msgBuilder.setLocalAddress(new IpAddress(new Ipv4Address(localAddress.getHostAddress())));
msgBuilder.setLocalPort(PEER_PORT);
.build();
}
- public static RouteMonitoringMessage createRouteMonitoring(final Ipv4Address bgpId, final AdjRibInType ribType, final Ipv4Prefix prefix) {
+ static RouteMonitoringMessage createRouteMonitoring(final Ipv4Address bgpId, final AdjRibInType ribType,
+ final Ipv4Prefix prefix) {
final RouteMonitoringMessageBuilder routeMonitMsgBuilder = new RouteMonitoringMessageBuilder()
.setPeerHeader(createPeerHeader(bgpId, ribType))
.setUpdate(createUpdate(prefix));
private static Update createUpdate(final Ipv4Prefix prefix) {
final UpdateBuilder updateBuilder = new UpdateBuilder()
.setAttributes(new AttributesBuilder().setOrigin(ORIGIN).setAsPath(AS_PATH).setCNextHop(
- new Ipv4NextHopCaseBuilder().setIpv4NextHop(new Ipv4NextHopBuilder().setGlobal(NEXT_HOP).build()).build()).build())
+ new Ipv4NextHopCaseBuilder().setIpv4NextHop(new Ipv4NextHopBuilder().setGlobal(NEXT_HOP).build())
+ .build()).build())
.setNlri(new NlriBuilder().setNlri(Collections.singletonList(prefix)).build());
return updateBuilder.build();
}
import ch.qos.logback.classic.Level;
import java.net.InetSocketAddress;
+import java.util.Collections;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import org.junit.Test;
@Test
public void testDefaultArguments() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{});
assertEquals(1, arguments.getRoutersCount());
assertEquals(0, arguments.getPeersCount());
assertEquals(0, arguments.getPrePolicyRoutesCount());
assertEquals(0, arguments.getPostPolicyRoutesCount());
assertEquals(Level.INFO, arguments.getLogLevel());
assertEquals(new InetSocketAddress("127.0.0.1", 0), arguments.getLocalAddress());
- assertEquals(new InetSocketAddress("127.0.0.1", 12345), arguments.getRemoteAddress());
+ assertEquals(Collections.singletonList(new InetSocketAddress("127.0.0.1", 12345)),
+ arguments.getRemoteAddress());
}
- @Test(expected=IllegalArgumentException.class)
+ @Test(expected = IllegalArgumentException.class)
public void testWrongArgument() {
- BmpMockArguments.parseArguments(new String[] {"--routers_count", "abcd"});
+ BmpMockArguments.parseArguments(new String[]{"--routers_count", "abcd"});
}
@Test
public void testGetRoutersCount() throws ArgumentParserException {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--routers_count", "10"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--routers_count", "10"});
assertEquals(10, arguments.getRoutersCount());
}
@Test
public void testGetPeersCount() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--peers_count", "5"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--peers_count", "5"});
assertEquals(5, arguments.getPeersCount());
}
@Test
public void testGetPrePolicyRoutesCount() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--pre_policy_routes", "20"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--pre_policy_routes", "20"});
assertEquals(20, arguments.getPrePolicyRoutesCount());
}
@Test
public void testGetPostPolicyRoutesCount() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--post_policy_routes", "100"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--post_policy_routes", "100"});
assertEquals(100, arguments.getPostPolicyRoutesCount());
}
@Test
public void testGetLocalAddress() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--local_address", "1.2.3.4"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--local_address", "1.2.3.4"});
assertEquals(new InetSocketAddress("1.2.3.4", 0), arguments.getLocalAddress());
}
@Test
public void testGetRemoteAddress() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--remote_address", "4.5.6.7:1025"});
- assertEquals(new InetSocketAddress("4.5.6.7", 1025), arguments.getRemoteAddress());
+ final BmpMockArguments arguments = BmpMockArguments
+ .parseArguments(new String[]{"--remote_address", "4.5.6.7:1025"});
+ assertEquals(Collections.singletonList(new InetSocketAddress("4.5.6.7", 1025)),
+ arguments.getRemoteAddress());
}
@Test
public void testGetLogLevel() {
- final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[] {"--log_level", "TRACE"});
+ final BmpMockArguments arguments = BmpMockArguments.parseArguments(new String[]{"--log_level", "TRACE"});
assertEquals(Level.TRACE, arguments.getLogLevel());
}
import static org.opendaylight.protocol.bmp.mock.BmpMockTest.waitFutureComplete;
-import com.google.common.base.Optional;
import com.google.common.net.InetAddresses;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import org.opendaylight.protocol.bmp.api.BmpSessionListenerFactory;
import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
import org.opendaylight.protocol.bmp.spi.registry.BmpMessageRegistry;
+import org.opendaylight.protocol.concepts.KeyMapping;
import org.opendaylight.protocol.util.InetSocketAddressUtil;
public class BmpMockDispatcherTest {
final BmpMockDispatcher dispatcher = new BmpMockDispatcher(this.registry, this.sessionFactory);
final int port = InetSocketAddressUtil.getRandomPort();
final InetSocketAddress serverAddr = InetSocketAddressUtil.getRandomLoopbackInetSocketAddress(port);
- final BmpDispatcherImpl serverDispatcher = new BmpDispatcherImpl(new NioEventLoopGroup(), new NioEventLoopGroup(),
- this.registry, this.sessionFactory);
- final ChannelFuture futureServer = serverDispatcher.createServer(serverAddr, this.slf, Optional.absent());
+ final BmpDispatcherImpl serverDispatcher = new BmpDispatcherImpl(
+ new NioEventLoopGroup(), new NioEventLoopGroup(), this.registry, this.sessionFactory);
+ final ChannelFuture futureServer = serverDispatcher
+ .createServer(serverAddr, this.slf, KeyMapping.getKeyMapping());
waitFutureComplete(futureServer);
- final ChannelFuture channelFuture = dispatcher.createClient(InetSocketAddressUtil.getRandomLoopbackInetSocketAddress(0),
- serverAddr);
+ final ChannelFuture channelFuture = dispatcher.createClient(InetSocketAddressUtil
+ .getRandomLoopbackInetSocketAddress(0), serverAddr);
waitFutureComplete(channelFuture);
final Channel channel = channelFuture.sync().channel();
public void testCreateServer() throws InterruptedException {
final BmpMockDispatcher dispatcher = new BmpMockDispatcher(this.registry, this.sessionFactory);
final int port = InetSocketAddressUtil.getRandomPort();
- final BmpDispatcherImpl serverDispatcher = new BmpDispatcherImpl(new NioEventLoopGroup(), new NioEventLoopGroup(),
- this.registry, this.sessionFactory);
- final ChannelFuture futureServer = dispatcher.createServer(new InetSocketAddress(InetAddresses.forString("0.0.0.0"), port));
+ final BmpDispatcherImpl serverDispatcher = new BmpDispatcherImpl(
+ new NioEventLoopGroup(), new NioEventLoopGroup(), this.registry, this.sessionFactory);
+ final ChannelFuture futureServer = dispatcher.createServer(
+ new InetSocketAddress(InetAddresses.forString("0.0.0.0"), port));
waitFutureComplete(futureServer);
- final ChannelFuture channelFuture = serverDispatcher.createClient(InetSocketAddressUtil.getRandomLoopbackInetSocketAddress(port), this.slf, Optional.absent());
+ final ChannelFuture channelFuture = serverDispatcher.createClient(
+ InetSocketAddressUtil.getRandomLoopbackInetSocketAddress(port), this.slf, KeyMapping.getKeyMapping());
waitFutureComplete(channelFuture);
final Channel channel = channelFuture.sync().channel();
package org.opendaylight.protocol.bmp.mock;
-import com.google.common.base.Optional;
import com.google.common.util.concurrent.Uninterruptibles;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator;
import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext;
import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpExtensionProviderContext;
+import org.opendaylight.protocol.concepts.KeyMapping;
import org.opendaylight.protocol.util.InetSocketAddressUtil;
import org.opendaylight.yangtools.yang.binding.Notification;
public void setUp() {
final BmpExtensionProviderContext ctx = new SimpleBmpExtensionProviderContext();
this.bmpActivator = new BmpActivator(
- ServiceLoaderBGPExtensionProviderContext.getSingletonInstance());
+ ServiceLoaderBGPExtensionProviderContext.getSingletonInstance());
this.bmpActivator.start(ctx);
- this.bmpDispatcher = new BmpDispatcherImpl(new NioEventLoopGroup(), new NioEventLoopGroup(), ctx.getBmpMessageRegistry(),
- new DefaultBmpSessionFactory());
+ this.bmpDispatcher = new BmpDispatcherImpl(new NioEventLoopGroup(), new NioEventLoopGroup(),
+ ctx.getBmpMessageRegistry(),
+ new DefaultBmpSessionFactory());
}
@After
final InetSocketAddress serverAddr = InetSocketAddressUtil.getRandomLoopbackInetSocketAddress();
final BmpSessionListenerFactory bmpSessionListenerFactory = () -> BmpMockTest.this.sessionListener;
final ChannelFuture futureServer = this.bmpDispatcher.createServer(serverAddr,
- bmpSessionListenerFactory, Optional.absent());
+ bmpSessionListenerFactory, KeyMapping.getKeyMapping());
waitFutureComplete(futureServer);
- Channel serverChannel;
- int sessionUpWait;
+ final Channel serverChannel;
+ final int sessionUpWait;
if (futureServer.isSuccess()) {
serverChannel = futureServer.channel();
sessionUpWait = 10;
sessionUpWait = 40;
}
- BmpMock.main(new String[]{"--remote_address", InetSocketAddressUtil.toHostAndPort(serverAddr).toString(), "--peers_count", "3", "--pre_policy_routes", "3"});
+ BmpMock.main(new String[]{
+ "--remote_address",
+ InetSocketAddressUtil.toHostAndPort(serverAddr).toString(),
+ "--peers_count", "3",
+ "--pre_policy_routes",
+ "3"});
- Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(sessionUpWait))).onSessionUp(Mockito.any(BmpSession.class));
+ Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(sessionUpWait)))
+ .onSessionUp(Mockito.any(BmpSession.class));
//1 * Initiate message + 3 * PeerUp Notification + 9 * Route Monitoring message
- Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(10)).times(13)).onMessage(Mockito.any(Notification.class));
+ Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(10))
+ .times(13))
+ .onMessage(Mockito.any(Notification.class));
if (serverChannel != null) {
serverChannel.close().sync();
BmpMock.main(new String[]{"--local_address", InetSocketAddressUtil.toHostAndPort(serverAddr).toString(),
"--peers_count", "3", "--pre_policy_routes", "3", "--passive"});
final ChannelFuture futureServer = this.bmpDispatcher.createClient(serverAddr,
- bmpSessionListenerFactory, Optional.absent());
+ bmpSessionListenerFactory, KeyMapping.getKeyMapping());
waitFutureComplete(futureServer);
- Channel serverChannel;
- int sessionUpWait;
+ final Channel serverChannel;
+ final int sessionUpWait;
if (futureServer.isSuccess()) {
serverChannel = futureServer.channel();
sessionUpWait = 10;
sessionUpWait = 40;
}
- Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(sessionUpWait))).onSessionUp(Mockito.any(BmpSession.class));
+ Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(sessionUpWait)))
+ .onSessionUp(Mockito.any(BmpSession.class));
//1 * Initiate message + 3 * PeerUp Notification + 9 * Route Monitoring message
- Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(10)).times(13)).onMessage(Mockito.any(Notification.class));
+ Mockito.verify(this.sessionListener, Mockito.timeout(TimeUnit.SECONDS.toMillis(10))
+ .times(13))
+ .onMessage(Mockito.any(Notification.class));
if (serverChannel != null) {
serverChannel.close().sync();
import static org.junit.Assert.assertNull;
import com.google.common.net.InetAddresses;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
@Test
public void testCreateRouteMonitoringPrePolicy() {
- final RouteMonitoringMessage routeMonitoring = BmpMockUtil.createRouteMonitoring(PEER_IP, AdjRibInType.PrePolicy, PREFIX);
+ final RouteMonitoringMessage routeMonitoring = BmpMockUtil
+ .createRouteMonitoring(PEER_IP, AdjRibInType.PrePolicy, PREFIX);
final PeerHeader peerHeader = routeMonitoring.getPeerHeader();
assertEquals(PEER_IP, peerHeader.getAddress().getIpv4Address());
assertEquals(65431L, peerHeader.getAs().getValue().longValue());
assertEquals(AdjRibInType.PrePolicy, peerHeader.getAdjRibInType());
final Update update = routeMonitoring.getUpdate();
assertEquals(PREFIX, update.getNlri().getNlri().get(0));
- assertEquals("1.2.3.4", ((Ipv4NextHopCase)update.getAttributes().getCNextHop()).getIpv4NextHop().getGlobal().getValue());
+ assertEquals("1.2.3.4", ((Ipv4NextHopCase) update.getAttributes()
+ .getCNextHop()).getIpv4NextHop().getGlobal().getValue());
}
@Test
public void testCreateRouteMonitoringPostPolicy() {
- final RouteMonitoringMessage routeMonitoring = BmpMockUtil.createRouteMonitoring(PEER_IP, AdjRibInType.PostPolicy, PREFIX);
+ final RouteMonitoringMessage routeMonitoring = BmpMockUtil
+ .createRouteMonitoring(PEER_IP, AdjRibInType.PostPolicy, PREFIX);
assertEquals(AdjRibInType.PostPolicy, routeMonitoring.getPeerHeader().getAdjRibInType());
}
-
- @Test(expected=UnsupportedOperationException.class)
- public void testPrivateConstructor() throws Throwable {
- final Constructor<BmpMockUtil> c = BmpMockUtil.class.getDeclaredConstructor();
- c.setAccessible(true);
- try {
- c.newInstance();
- } catch (final InvocationTargetException e) {
- throw e.getCause();
- }
- }
}