# Java iControl Objects - LTM Pool

**URL:** <https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550>\
**Category:** F5 Technical Articles\
**Tags:** icontrol, automation, irules, dev, news, devops, application-delivery, tech-tip, isv\
**Created:** [September 22, 2010, 12:00pm UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550 "2010-09-22T12:00:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joe\_Pruitt](https://d1p9zq3aats0t8.cloudfront.net/user_avatar/community.f5.com/joe_pruitt/32/8438_2.png) [@Joe\_Pruitt](https://community.f5.com/u/Joe_Pruitt)\
**Post date:** [September 22, 2010, 12:00pm UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550/1 "2010-09-22T12:00:00Z")

</div>

The first comment I usually get when developers look at the [iControl API](https://community.f5.com/wiki/default.aspx/iControl.APIReference) has something to do with it’s “flat” nature.&nbsp; Developers are used to working with “objects”.&nbsp; They create an instance of an object and then get and set attributes on that object.&nbsp; In iControl-speak, they would create a pool object and then get and set the load balancing method on that pool they were holding on to.

iControl was meant to be a very low level API to give you access to every type of object and it’s attributes.&nbsp; But iControl was designed as a Web Services API, and thus, it was exposed as a set of methods, not as objects.

But, that doesn’t mean we can’t make iControl look like a set of objects, does it!

### **Rounding The Flatness**

Fortunately, iControl is grouped into a set of “interfaces” that, in most cases, can be treated as objects. [Pools](https://community.f5.com/wiki/default.aspx/iControl/LocalLB__Pool.html), [PoolMembers](https://community.f5.com/wiki/default.aspx/iControl/LocalLB__PoolMember.html), [VLANs](https://community.f5.com/wiki/default.aspx/iControl/Networking__VLAN.html), and [WideIPs](https://community.f5.com/wiki/default.aspx/iControl/GlobalLB__WideIP.html), can all be thought of as objects.

This is the first article in a series centered around creating a object library around the various types of iControl objects.&nbsp; In this article I will start with where most of the initial iControl applications begin with: [Pools](https://community.f5.com/wiki/default.aspx/iControl/LocalLB__Pool.html).&nbsp; I would have started with Pool Members, but a Pool Member needs to belong to a Pool and I couldn’t create the PoolMember object without first defining the Pool object.&nbsp; So, be on the lookout for that one coming next time around.

### **Prerequisites**

The code in this article, relies on the [iControl library for Java](https://community.f5.com/Community/GroupDetails/tabid/1082223/asg/2/Default.aspx) that can be downloaded in it’s [DevCentral labs project](https://community.f5.com/Community/GroupDetails/tabid/1082223/asg/2/Default.aspx).&nbsp; If you haven’t watched it already, check out my previous article on [Configuring Eclipse for iControl development with Java](https://community.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/1086380/Getting-Started-With-iControl-And-Java-ndash-Setting-Up-Eclipse.aspx).

### **The Class**

I’ll be using the package “iControl.Objects” for this code library I’m building.&nbsp; The classes will be in sub packages for the product (LTM, GTM, ASM, etc) and the class names will be the same as the existing iControl interfaces.&nbsp; For the Pool class, we need the underlying iControl.Interfaces object from the iControl Library for Java as well as a name for the pool.

```auto
<span id="lnum1" style="color: rgb(96,96,96);"> 1:</span> package iControl.Objects.LTM;

```

```auto
<span id="lnum2" style="color: rgb(96,96,96);"> 2:</span> 

```

```auto
<span id="lnum3" style="color: rgb(96,96,96);"> 3:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">class</span> Pool {

```

```auto
<span id="lnum4" style="color: rgb(96,96,96);"> 4:</span> <span style="color: rgb(0,0,255);">private</span> iControl.Interfaces _interfaces = <span style="color: rgb(0,0,255);">null</span>;

```

```auto
<span id="lnum5" style="color: rgb(96,96,96);"> 5:</span> <span style="color: rgb(0,0,255);">private</span> String _name = <span style="color: rgb(0,0,255);">null</span>;

```

```auto
<span id="lnum6" style="color: rgb(96,96,96);"> 6:</span>

```

```auto
<span id="lnum7" style="color: rgb(96,96,96);"> 7:</span>

```

```auto
<span id="lnum8" style="color: rgb(96,96,96);"> 8:</span> <span style="color: rgb(0,128,0);">//-----------------------------------------------------------------------</span>

```

```auto
<span id="lnum9" style="color: rgb(96,96,96);"> 9:</span> <span style="color: rgb(0,128,0);">// Member Accessors</span>

```

```auto
<span id="lnum10" style="color: rgb(96,96,96);"> 10:</span> <span style="color: rgb(0,128,0);">//-----------------------------------------------------------------------</span>

```

```auto
<span id="lnum11" style="color: rgb(96,96,96);"> 11:</span> <span style="color: rgb(0,0,255);">public</span> iControl.Interfaces getInterfaces() { <span style="color: rgb(0,0,255);">return</span> _interfaces; }

```

```auto
<span id="lnum12" style="color: rgb(96,96,96);"> 12:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">void</span> setInterfaces(iControl.Interfaces interfaces) { _interfaces = interfaces; }

```

```auto
<span id="lnum13" style="color: rgb(96,96,96);"> 13:</span> 

```

```auto
<span id="lnum14" style="color: rgb(96,96,96);"> 14:</span> <span style="color: rgb(0,0,255);">public</span> String getName() { <span style="color: rgb(0,0,255);">return</span> _name; }

```

```auto
<span id="lnum15" style="color: rgb(96,96,96);"> 15:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">void</span> setName(String name) { _name = name; }

```

```auto
<span id="lnum16" style="color: rgb(96,96,96);"> 16:</span>

```

```auto
<span id="lnum17" style="color: rgb(96,96,96);"> 17:</span> <span style="color: rgb(0,128,0);">//-----------------------------------------------------------------------</span>

```

```auto
<span id="lnum18" style="color: rgb(96,96,96);"> 18:</span> <span style="color: rgb(0,128,0);">// Constructors</span>

```

```auto
<span id="lnum19" style="color: rgb(96,96,96);"> 19:</span> <span style="color: rgb(0,128,0);">//-----------------------------------------------------------------------</span>

```

```auto
<span id="lnum20" style="color: rgb(96,96,96);"> 20:</span> <span style="color: rgb(0,0,255);">public</span> Pool(iControl.Interfaces interfaces, String name)

```

```auto
<span id="lnum21" style="color: rgb(96,96,96);"> 21:</span> {

```

```auto
<span id="lnum22" style="color: rgb(96,96,96);"> 22:</span> _interfaces = interfaces;

```

```auto
<span id="lnum23" style="color: rgb(96,96,96);"> 23:</span> _name = name;

```

```auto
<span id="lnum24" style="color: rgb(96,96,96);"> 24:</span> }

```

```auto
<span id="lnum25" style="color: rgb(96,96,96);"> 25:</span> ...

```

Above, I’ve defined the member variables, the accessor methods for those variables, and the constructor that takes as input the defining values of the Pool.

### **Object Attribute Accessors**

If you look at the iControl API methods in the Pool interface, you’ll see lots of “get\_\*” and “set\_\*” methods.&nbsp; We defined the API in this way to make it very easy to know which attributes you can set and which you can retrieve.&nbsp; Some are read-only and, in that case, will only have a get\_\* method.&nbsp; The next section of the class will include all the get\_ and set\_ methods.&nbsp; Here’s the code for the get\_lb\_method() and set\_lb\_method() methods.

```auto
<span id="lnum1" style="color: rgb(96,96,96);"> 1:</span> <span style="color: rgb(0,128,0);">// lb_method</span>

```

```auto
<span id="lnum2" style="color: rgb(96,96,96);"> 2:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">void</span> setLBMethod(iControl.LocalLBLBMethod lbMethod) throws Exception

```

```auto
<span id="lnum3" style="color: rgb(96,96,96);"> 3:</span> {

```

```auto
<span id="lnum4" style="color: rgb(96,96,96);"> 4:</span> validateMembers();

```

```auto
<span id="lnum5" style="color: rgb(96,96,96);"> 5:</span>

```

```auto
<span id="lnum6" style="color: rgb(96,96,96);"> 6:</span> String [] pool_names = { _name };

```

```auto
<span id="lnum7" style="color: rgb(96,96,96);"> 7:</span> iControl.LocalLBLBMethod [] lb_methods = { lbMethod};

```

```auto
<span id="lnum8" style="color: rgb(96,96,96);"> 8:</span>

```

```auto
<span id="lnum9" style="color: rgb(96,96,96);"> 9:</span> _interfaces.getLocalLBPool().set_lb_method(pool_names, lb_methods);

```

```auto
<span id="lnum10" style="color: rgb(96,96,96);"> 10:</span> }

```

```auto
<span id="lnum11" style="color: rgb(96,96,96);"> 11:</span> <span style="color: rgb(0,0,255);">public</span> iControl.LocalLBLBMethod getLBMethod() throws Exception

```

```auto
<span id="lnum12" style="color: rgb(96,96,96);"> 12:</span> {

```

```auto
<span id="lnum13" style="color: rgb(96,96,96);"> 13:</span> validateMembers();

```

```auto
<span id="lnum14" style="color: rgb(96,96,96);"> 14:</span>

```

```auto
<span id="lnum15" style="color: rgb(96,96,96);"> 15:</span> String [] pool_names = { _name };

```

```auto
<span id="lnum16" style="color: rgb(96,96,96);"> 16:</span> iControl.LocalLBLBMethod [] lb_methods =

```

```auto
<span id="lnum17" style="color: rgb(96,96,96);"> 17:</span> _interfaces.getLocalLBPool().get_lb_method(pool_names);

```

```auto
<span id="lnum18" style="color: rgb(96,96,96);"> 18:</span>

```

```auto
<span id="lnum19" style="color: rgb(96,96,96);"> 19:</span> <span style="color: rgb(0,0,255);">return</span> lb_methods[0];

```

```auto
<span id="lnum20" style="color: rgb(96,96,96);"> 20:</span> }

```

You’ll notice that I’ve chosen to abstract away all the arrays in the method calls.&nbsp; This removes the burden of packaging up single and two-dimensional arrays before making method calls for a single object.

I’ve repeated this type of methodology for all the other get\_\* and set\_\* methods in the LocalLB.Pool interface.

### **Action Methods**

Each iControl interface has a set of actions you can perform.&nbsp; Whether it’s creating a new pool, removing a pool, or adding members to a pool, these methods need to be exposed to the user.&nbsp; Below is how I chose to expose the ability to add new members to the Pool.&nbsp; It essentially wraps the iControl LocalLB.Pool.add\_member() method.

```auto
<span id="lnum1" style="color: rgb(96,96,96);"> 1:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">void</span> addMembers(iControl.CommonIPPortDefinition [] members) throws Exception

```

```auto
<span id="lnum2" style="color: rgb(96,96,96);"> 2:</span> {

```

```auto
<span id="lnum3" style="color: rgb(96,96,96);"> 3:</span> validateMembers();

```

```auto
<span id="lnum4" style="color: rgb(96,96,96);"> 4:</span>

```

```auto
<span id="lnum5" style="color: rgb(96,96,96);"> 5:</span> String [] pool_names = { _name };

```

```auto
<span id="lnum6" style="color: rgb(96,96,96);"> 6:</span> iControl.CommonIPPortDefinition [][] membersAofA = { members };

```

```auto
<span id="lnum7" style="color: rgb(96,96,96);"> 7:</span>

```

```auto
<span id="lnum8" style="color: rgb(96,96,96);"> 8:</span> _interfaces.getLocalLBPool().add_member(pool_names, membersAofA);

```

```auto
<span id="lnum9" style="color: rgb(96,96,96);"> 9:</span> }

```

I’ve also included methods that allow you to create the pool, delete the pool, delete persistence records, querying the pool members, removing pool members, and querying statistics.

### **Static Methods**

Static methods are meant to be able to be used without an instance of the object.&nbsp; Querying the list of available pools on the system seems to fit into this category.&nbsp; You need to know the name of a pool to be able to create the instance, but it is also part of the Pool class.&nbsp; This is illustrated below.

```auto
<span id="lnum1" style="color: rgb(96,96,96);"> 1:</span> <span style="color: rgb(0,0,255);">public</span> <span style="color: rgb(0,0,255);">static</span> String [] getList(iControl.Interfaces interfaces) throws Exception

```

```auto
<span id="lnum2" style="color: rgb(96,96,96);"> 2:</span> {

```

```auto
<span id="lnum3" style="color: rgb(96,96,96);"> 3:</span> String [] pool_list = <span style="color: rgb(0,0,255);">null</span>;

```

```auto
<span id="lnum4" style="color: rgb(96,96,96);"> 4:</span>

```

```auto
<span id="lnum5" style="color: rgb(96,96,96);"> 5:</span> <span style="color: rgb(0,0,255);">if</span> ( <span style="color: rgb(0,0,255);">null</span> != interfaces )

```

```auto
<span id="lnum6" style="color: rgb(96,96,96);"> 6:</span> {

```

```auto
<span id="lnum7" style="color: rgb(96,96,96);"> 7:</span> pool_list = interfaces.getLocalLBPool().get_list();

```

```auto
<span id="lnum8" style="color: rgb(96,96,96);"> 8:</span> }

```

```auto
<span id="lnum9" style="color: rgb(96,96,96);"> 9:</span>

```

```auto
<span id="lnum10" style="color: rgb(96,96,96);"> 10:</span> <span style="color: rgb(0,0,255);">return</span> pool_list;

```

```auto
<span id="lnum11" style="color: rgb(96,96,96);"> 11:</span> }

```

### **An Example Usage**

Using the above class is very straightforward.&nbsp; First you must create the core iControl.Interfaces object defined in the iControl Library for Java.&nbsp; This must be initialized with the connection information (hostname, username, and password) to the BIG-IP.&nbsp; I’ve then included some code to create a new pool, query some of it’s attributes, and then delete it.

```auto
<span id="lnum1" style="color: rgb(96,96,96);"> 1:</span> <span style="color: rgb(0,128,0);">// Initialize the iControl Interfaces Object</span>

```

```auto
<span id="lnum2" style="color: rgb(96,96,96);"> 2:</span> iControl.Interfaces interfaces = <span style="color: rgb(0,0,255);">new</span> iControl.Interfaces();

```

```auto
<span id="lnum3" style="color: rgb(96,96,96);"> 3:</span> interfaces.initialize(<span style="color: rgb(0,96,128);">"bigip_addr"</span>, <span style="color: rgb(0,96,128);">"username"</span>, <span style="color: rgb(0,96,128);">"password"</span>);

```

```auto
<span id="lnum4" style="color: rgb(96,96,96);"> 4:</span> 

```

```auto
<span id="lnum5" style="color: rgb(96,96,96);"> 5:</span> <span style="color: rgb(0,128,0);">// Call the static getList method to return the list of existing pools.</span>

```

```auto
<span id="lnum6" style="color: rgb(96,96,96);"> 6:</span> String [] poolList = iControl.Objects.LTM.Pool.getList(interfaces);

```

```auto
<span id="lnum7" style="color: rgb(96,96,96);"> 7:</span> 

```

```auto
<span id="lnum8" style="color: rgb(96,96,96);"> 8:</span> <span style="color: rgb(0,128,0);">// Create a new Pool object with the name dummyPool.</span>

```

```auto
<span id="lnum9" style="color: rgb(96,96,96);"> 9:</span> iControl.Objects.LTM.Pool pool = <span style="color: rgb(0,0,255);">new</span> iControl.Objects.LTM.Pool(interfaces, <span style="color: rgb(0,96,128);">"dummyPool"</span>);

```

```auto
<span id="lnum10" style="color: rgb(96,96,96);"> 10:</span> 

```

```auto
<span id="lnum11" style="color: rgb(96,96,96);"> 11:</span> <span style="color: rgb(0,128,0);">// Create pool</span>

```

```auto
<span id="lnum12" style="color: rgb(96,96,96);"> 12:</span> iControl.CommonIPPortDefinition[] membersToAdd = <span style="color: rgb(0,0,255);">new</span> iControl.CommonIPPortDefinition[1];

```

```auto
<span id="lnum13" style="color: rgb(96,96,96);"> 13:</span> membersToAdd[0] = <span style="color: rgb(0,0,255);">new</span> iControl.CommonIPPortDefinition(<span style="color: rgb(0,96,128);">"10.10.10.10"</span>, 80);

```

```auto
<span id="lnum14" style="color: rgb(96,96,96);"> 14:</span> pool.create(iControl.LocalLBLBMethod.LB_METHOD_ROUND_ROBIN, membersToAdd);

```

```auto
<span id="lnum15" style="color: rgb(96,96,96);"> 15:</span> 

```

```auto
<span id="lnum16" style="color: rgb(96,96,96);"> 16:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">"Pool "</span> + poolName + <span style="color: rgb(0,96,128);">" created..."</span>);

```

```auto
<span id="lnum17" style="color: rgb(96,96,96);"> 17:</span> 

```

```auto
<span id="lnum18" style="color: rgb(96,96,96);"> 18:</span> <span style="color: rgb(0,128,0);">// Query LB Method</span>

```

```auto
<span id="lnum19" style="color: rgb(96,96,96);"> 19:</span> iControl.LocalLBLBMethod lbMethod = pool.getLBMethod();

```

```auto
<span id="lnum20" style="color: rgb(96,96,96);"> 20:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">" + LB Method : "</span> + lbMethod.toString());

```

```auto
<span id="lnum21" style="color: rgb(96,96,96);"> 21:</span> 

```

```auto
<span id="lnum22" style="color: rgb(96,96,96);"> 22:</span> 

```

```auto
<span id="lnum23" style="color: rgb(96,96,96);"> 23:</span> <span style="color: rgb(0,128,0);">// Query pool members</span>

```

```auto
<span id="lnum24" style="color: rgb(96,96,96);"> 24:</span> iControl.CommonIPPortDefinition [] membersInPool = pool.getMembers();

```

```auto
<span id="lnum25" style="color: rgb(96,96,96);"> 25:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">" + Members"</span>);

```

```auto
<span id="lnum26" style="color: rgb(96,96,96);"> 26:</span> <span style="color: rgb(0,0,255);">for</span>(<span style="color: rgb(0,0,255);">int</span> i=0; i<membersInPool.length; i++)

```

```auto
<span id="lnum27" style="color: rgb(96,96,96);"> 27:</span> {

```

```auto
<span id="lnum28" style="color: rgb(96,96,96);"> 28:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">" ["</span> + i + <span style="color: rgb(0,96,128);">"] : "</span> +

```

```auto
<span id="lnum29" style="color: rgb(96,96,96);"> 29:</span> membersInPool[i].getAddress() + <span style="color: rgb(0,96,128);">":"</span> + membersInPool[i].getPort());

```

```auto
<span id="lnum30" style="color: rgb(96,96,96);"> 30:</span> }

```

```auto
<span id="lnum31" style="color: rgb(96,96,96);"> 31:</span> 

```

```auto
<span id="lnum32" style="color: rgb(96,96,96);"> 32:</span> <span style="color: rgb(0,128,0);">// Query statistics</span>

```

```auto
<span id="lnum33" style="color: rgb(96,96,96);"> 33:</span> iControl.CommonStatistic [] poolStatistics = pool.getStatistics(<span style="color: rgb(0,0,255);">null</span>);

```

```auto
<span id="lnum34" style="color: rgb(96,96,96);"> 34:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">" + Statistics"</span>);

```

```auto
<span id="lnum35" style="color: rgb(96,96,96);"> 35:</span> <span style="color: rgb(0,0,255);">for</span>(<span style="color: rgb(0,0,255);">int</span> i=0; i<poolStatistics.length; i++)

```

```auto
<span id="lnum36" style="color: rgb(96,96,96);"> 36:</span> {

```

```auto
<span id="lnum37" style="color: rgb(96,96,96);"> 37:</span> iControl.CommonStatisticType type = poolStatistics[i].getType();

```

```auto
<span id="lnum38" style="color: rgb(96,96,96);"> 38:</span> iControl.CommonULong64 ul64 = poolStatistics[i].getValue();

```

```auto
<span id="lnum39" style="color: rgb(96,96,96);"> 39:</span> StatisticValue sv = <span style="color: rgb(0,0,255);">new</span> StatisticValue(ul64);

```

```auto
<span id="lnum40" style="color: rgb(96,96,96);"> 40:</span>

```

```auto
<span id="lnum41" style="color: rgb(96,96,96);"> 41:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">" ["</span> + type + <span style="color: rgb(0,96,128);">"] : "</span> + sv.doubleValue());

```

```auto
<span id="lnum42" style="color: rgb(96,96,96);"> 42:</span> }

```

```auto
<span id="lnum43" style="color: rgb(96,96,96);"> 43:</span> 

```

```auto
<span id="lnum44" style="color: rgb(96,96,96);"> 44:</span> <span style="color: rgb(0,128,0);">// Delete pool</span>

```

```auto
<span id="lnum45" style="color: rgb(96,96,96);"> 45:</span> pool.remove();

```

```auto
<span id="lnum46" style="color: rgb(96,96,96);"> 46:</span> System.<span style="color: rgb(0,0,255);">out</span>.println(<span style="color: rgb(0,96,128);">"Pool "</span> + poolName + <span style="color: rgb(0,96,128);">" deleted..."</span>);

```

### **View The Source**

The source code can be found in the [iControl CodeShare](https://community.f5.com/wiki/default.aspx/iControl/CodeShare.html) under [JavaObjectLtmPool](https://community.f5.com/wiki/default.aspx/iControl/JavaObjectLtmPool.html).

_Related Articles on [DevCentral](https://community.f5.com/t5/)_

- [DevCentral Wiki: iControl Wiki Home](http://links.f5.com/b0fdyN)
- [Audio White Paper - F5 iControl](http://links.f5.com/caHqnc)
- [DevCentral Wiki: Java Pool Member Control](http://links.f5.com/9XCAAb)
- [Custom BIG-IP Object MetaData With Data Groups \> DevCentral \> F5 …](http://links.f5.com/9sxwF3)
- [Getting Started With iControl And Java – Setting Up Eclipse …](http://links.f5.com/cYaLhU)
- [SSL Trust Provider for Java](http://links.f5.com/b8XORN)
- [iControl 101 #22 - GTM Data Centers \> DevCentral \> F5 DevCentral …](http://links.f5.com/du9Og9)
- [How to instrument your Java EE applications for a virtualized …](http://links.f5.com/aknHh0)

Technorati Tags: [Java](http://technorati.com/tags/Java), [iControl](http://technorati.com/tags/iControl), [Object](http://technorati.com/tags/Object), [Joe Pruitt](http://technorati.com/tags/Joe+Pruitt)

---

<div class="post-metadata">

**Author:** ![George\_Moberly1](https://avatars.discourse-cdn.com/v4/letter/g/dec6dc/32.png) [@George\_Moberly1](https://community.f5.com/u/George_Moberly1)\
**Post date:** [November 12, 2010, 11:48am UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550/2 "2010-11-12T11:48:27Z")

</div>

Importing this into my Eclipse project I get a reference problem on the class StatisticValue. Where is that class defined? Do I need to import a jar?

---

<div class="post-metadata">

**Author:** ![Joe\_Pruitt](https://d1p9zq3aats0t8.cloudfront.net/user_avatar/community.f5.com/joe_pruitt/32/8438_2.png) [@Joe\_Pruitt](https://community.f5.com/u/Joe_Pruitt)\
**Post date:** [November 12, 2010, 8:33pm UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550/3 "2010-11-12T20:33:58Z")

</div>

Sorry, forgot I had that helper class. Eventually I’ll zip them all up into a project. In the mean time, here’s the helper class.

[http://devcentral.f5.com/wiki/default.aspx/iControl/JavaObjectStatisticValue.html](http://devcentral.f5.com/wiki/default.aspx/iControl/JavaObjectStatisticValue.html)

---

<div class="post-metadata">

**Author:** ![ParveenLamba\_18](https://avatars.discourse-cdn.com/v4/letter/p/ec9cab/32.png) [@ParveenLamba\_18](https://community.f5.com/u/ParveenLamba_18)\
**Post date:** [January 3, 2015, 11:57am UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550/4 "2015-01-03T11:57:18Z")

</div>

Hi, Getting error on // Query pool members 24: iControl.CommonIPPortDefinition [] membersInPool = pool.getMembers(); where getMembers is defined. Thanks

---

<div class="post-metadata">

**Author:** ![Travis\_Dunham\_2](https://avatars.discourse-cdn.com/v4/letter/t/e56c9b/32.png) [@Travis\_Dunham\_2](https://community.f5.com/u/Travis_Dunham_2)\
**Post date:** [July 9, 2015, 9:16pm UTC](https://community.f5.com/t/java-icontrol-objects-ltm-pool/66550/5 "2015-07-09T21:16:00Z")

</div>

Where can I download the complete source for the java code on this page?
