[jira] [Assigned] (FELIX-2689) Upgrade Descriptor generator to new parent POM and adapt legal files

2012-08-13 Thread Carsten Ziegeler (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-2689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carsten Ziegeler reassigned FELIX-2689:
---

Assignee: Carsten Ziegeler  (was: Felix Meschberger)

 Upgrade Descriptor generator to new parent POM and adapt legal files
 

 Key: FELIX-2689
 URL: https://issues.apache.org/jira/browse/FELIX-2689
 Project: Felix
  Issue Type: Task
  Components: Maven SCR Plugin
Affects Versions:  maven-scr-plugin-1.6.0, scr ant task 1.0.0, scr 
 generator 1.0.0, scr annotations 1.4.0
Reporter: Felix Meschberger
Assignee: Carsten Ziegeler

 Legal files of the SCR/Metatype descriptor generator modules must be reviewed 
 and adapted for the new parent POM using remote resources for the legal file 
 generation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (FELIX-2689) Upgrade Descriptor generator to new parent POM and adapt legal files

2012-08-13 Thread Carsten Ziegeler (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-2689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carsten Ziegeler resolved FELIX-2689.
-

   Resolution: Fixed
Fix Version/s: scr annotations 1.7.0
   scr generator 1.2.0
   scr ant task 1.2.0
   maven-scr-plugin-1.8.0

Updated to parent pom 2.1 and adapted legal files

 Upgrade Descriptor generator to new parent POM and adapt legal files
 

 Key: FELIX-2689
 URL: https://issues.apache.org/jira/browse/FELIX-2689
 Project: Felix
  Issue Type: Task
  Components: Maven SCR Plugin
Affects Versions:  maven-scr-plugin-1.6.0, scr ant task 1.0.0, scr 
 generator 1.0.0, scr annotations 1.4.0
Reporter: Felix Meschberger
Assignee: Carsten Ziegeler
 Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr 
 generator 1.2.0, scr annotations 1.7.0


 Legal files of the SCR/Metatype descriptor generator modules must be reviewed 
 and adapted for the new parent POM using remote resources for the legal file 
 generation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SheldonShao updated FELIX-3624:
---

Attachment: ResolverImpl.diff

Patch for ResolverImpl.java

 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, ResolverImpl.diff, ResolverImpl.java, 
 ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   resource = locals[i];
   Capability[] capabilities = resource.getCapabilities();
   if (capabilities != null  capabilities.length  0) {
   initCache(capabilities, resource);
   }
 

[jira] [Updated] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SheldonShao updated FELIX-3624:
---

Attachment: ResolverImplTest.diff

Patch for ResolverImplTest.java

 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, ResolverImpl.diff, ResolverImpl.java, 
 ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   resource = locals[i];
   Capability[] capabilities = resource.getCapabilities();
   if (capabilities != null  capabilities.length  0) {
   initCache(capabilities, resource);
  

[jira] [Updated] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SheldonShao updated FELIX-3624:
---

Attachment: repo_for_resolver_perf.xml

Performance tuning test data
Please put into src/test/resources


 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, repo_for_resolver_perf.xml, ResolverImpl.diff, 
 ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   resource = locals[i];
   Capability[] capabilities = resource.getCapabilities();
   if (capabilities != null  capabilities.length  0) {
   

[jira] [Updated] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SheldonShao updated FELIX-3624:
---

Attachment: (was: ResolverImpl.java)

 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, repo_for_resolver_perf.xml, ResolverImpl.diff, 
 ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   resource = locals[i];
   Capability[] capabilities = resource.getCapabilities();
   if (capabilities != null  capabilities.length  0) {
   initCache(capabilities, resource);
   }
   }
 

[jira] [Updated] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SheldonShao updated FELIX-3624:
---

Attachment: ResolverImpl.java

Java file after change

 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, repo_for_resolver_perf.xml, ResolverImpl.diff, 
 ResolverImpl.java, ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   resource = locals[i];
   Capability[] capabilities = resource.getCapabilities();
   if (capabilities != null  capabilities.length  0) {
   initCache(capabilities, resource);
   

[jira] [Commented] (FELIX-3624) Performance tuning solution for BundleRepository/ResolverImpl

2012-08-13 Thread SheldonShao (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13432972#comment-13432972
 ] 

SheldonShao commented on FELIX-3624:


Uploaded patch files for ResolverImpl.java  ResolverImplTest.java
Also I added a test case for this performance tuning and a data file 
repo_for_resolver_perf.xml.
Here is the result of the benchmark,

Has cache:2012 ms
No cache:5643 ms




 Performance tuning solution for BundleRepository/ResolverImpl
 -

 Key: FELIX-3624
 URL: https://issues.apache.org/jira/browse/FELIX-3624
 Project: Felix
  Issue Type: Improvement
  Components: Bundle Repository (OBR)
 Environment: Geronimo3 + BundleRepository 1.6.6
Reporter: SheldonShao
Priority: Critical
 Attachments: Felix_ResolverImpl_AfterTuning.png, 
 Felix_ResolverImpl.png, repo_for_resolver_perf.xml, ResolverImpl.diff, 
 ResolverImpl.java, ResolverImplTest.diff


 There are too many numebers of method calling about checking whether 
 capabities are matched with requiment in ResolverImpl.searchResources.
 This is a performance issue of ResolverImpl.resolve.
 If it creates a capabity to resource+capabity mapping first. Then leverage 
 this cache to do requirment matching.  It will get better performance.
 Here is part of code.  More details please check attachments.
   private final Map m_capabilitiesCache = new HashMap(8192);
   private String getKey(String filter, String prefix) {
   if (filter != null) {
   int index = filter.indexOf(prefix);
   if (index  0) {
   int end = filter.indexOf(SUFFIX, index + 
 prefix.length());
   if (end  index) {
   return filter.substring(index, end);
   }
   }
   }
   return null;
   }
   private String getKey(Requirement requirement) {
   String key = null;
   String name = requirement.getName();
   String filter = requirement.getFilter();
   if (Capability.BUNDLE.equals(name)) {
   key = getKey(filter, PREFIX_SYMBOLICNAME);
   } else if (Capability.PACKAGE.equals(name)) {
   key = getKey(filter, PREFIX_PACKAGE);
   } else if (Capability.SERVICE.equals(name)) {
   key = getKey(filter, PREFIX_SERVICE);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = getKey(filter, PREFIX_HOST);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   return key;
   }
   private static final String PREFIX_SYMBOLICNAME = symbolicname=;
   private static final String PREFIX_PACKAGE = package=;
   private static final String PREFIX_SERVICE = service=;
   private static final String PREFIX_HOST = host=;
   private static final String PREFIX_CAPABILITY = capability=;
   private static final char SUFFIX = ')';
   private void initCache(Capability[] capabilities, Resource resource) {
   Capability cap;
   Map properties;
   String name;
   for (int j = 0; j  capabilities.length; j++) {
   cap = capabilities[j];
   String key = null;
   properties = cap.getPropertiesAsMap();
   name = cap.getName();
   if (Capability.BUNDLE.equals(name)) {
   key = PREFIX_SYMBOLICNAME + 
 properties.get(symbolicname);
   } else if (Capability.PACKAGE.equals(name)) {
   key = PREFIX_PACKAGE + 
 properties.get(package);
   } else if (Capability.SERVICE.equals(name)) {
   key = PREFIX_SERVICE + 
 properties.get(service);
   } else if (Capability.FRAGMENT.equals(name)) {
   key = PREFIX_HOST + properties.get(host);
   } else {
   key = PREFIX_CAPABILITY + name;
   }
   List caps = (List) m_capabilitiesCache.get(key);
   if (caps == null) {
   caps = new ArrayList(2);
   m_capabilitiesCache.put(key, caps);
   }
   caps.add(new ResourceCapabilityImpl(resource, cap));
   }
   }
   private void initCache(Resource[] locals) {
   Resource resource;
   for (int i = 0; i  locals.length; i++) {
   

[jira] [Assigned] (FELIX-3626) Issue of felix on android 4.1

2012-08-13 Thread Karl Pauls (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-3626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karl Pauls reassigned FELIX-3626:
-

Assignee: Karl Pauls

 Issue of felix on android 4.1
 -

 Key: FELIX-3626
 URL: https://issues.apache.org/jira/browse/FELIX-3626
 Project: Felix
  Issue Type: Bug
  Components: Bundle Repository (OBR), Felix Commons, Gogo Command, 
 Gogo Runtime, Gogo Shell
 Environment: felix 4.0.3 on android 4.1
Reporter: orga shih
Assignee: Karl Pauls
  Labels: features, newbie

 I am trying to put apache felix to android 4.1, but all default bundles can't 
 be installed.
 At first, I follow the tutorial 
 http://felix.apache.org/site/apache-felix-framework-and-google-android.html;.
 Using the felix-framework-4.0.3 for android 4.1 emulator. because I want to 
 port it to Nexus 7.
 then I get the error as below:
 Problem creating boot delegation class loader: 
 java.lang.reflect.InvocationTargetException
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.bundlerepository-1.6.6.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.command-0.12.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.runtime-0.10.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.shell-0.10.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 It looks like all bundles can't be installed. Are there any suggestion about 
 this?
 update:
 When add property felix.service.urlhandlers=false, get another exception
 Problem creating boot delegation class loader: 
 java.lang.reflect.InvocationTargetException
 gogo: MalformedURLException: Unknown protocol: bundle
 java.net.MalformedURLException: Unknown protocol: bundle
   at java.net.URL.init(URL.java:184)
   at java.net.URL.init(URL.java:127)
   at java.net.URI.toURL(URI.java:1357)
   at org.apache.felix.gogo.shell.Shell.readScript(Shell.java:209)
   at org.apache.felix.gogo.shell.Shell.source(Shell.java:192)
   at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:109)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
   at 
 org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
   at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
   at 
 org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
   at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
   at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
   at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
   at 
 org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
   at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
   at java.lang.Thread.run(Thread.java:856)
 Detail step:
 1.download felix-framework-4.0.3 and osgi-android - felix 1.4, android SDK 
 1.0.zip and extract them.
 2.do dx and aapt for jar files in felix-framework-4.0.3.
 3.copy felix.sh from osgi-android - felix 1.4, android SDK 1.0 to 
 felix-framework-4.0.3
 4.start emulator of android 4.1
 5.push felix-framework-4.0.3 to android(/data/felix)
 6.adb shell and cd to /data/felix
 7.sh felix.sh
 More info:
 I have tried different versions of android and felix.
 1.osgi-android - felix 1.4, android SDK 1.0.zip  works normally on android 
 4.1 with it bundles.
 2. felix-framework-4.0.3 is work on android 4.03 and 2.3.3 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (FELIX-3626) Issue of felix on android 4.1

2012-08-13 Thread Karl Pauls (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13432988#comment-13432988
 ] 

Karl Pauls commented on FELIX-3626:
---

I'll have to look into it some more - i'll try to get to it asap but it might 
take a while

 Issue of felix on android 4.1
 -

 Key: FELIX-3626
 URL: https://issues.apache.org/jira/browse/FELIX-3626
 Project: Felix
  Issue Type: Bug
  Components: Bundle Repository (OBR), Felix Commons, Gogo Command, 
 Gogo Runtime, Gogo Shell
 Environment: felix 4.0.3 on android 4.1
Reporter: orga shih
Assignee: Karl Pauls
  Labels: features, newbie

 I am trying to put apache felix to android 4.1, but all default bundles can't 
 be installed.
 At first, I follow the tutorial 
 http://felix.apache.org/site/apache-felix-framework-and-google-android.html;.
 Using the felix-framework-4.0.3 for android 4.1 emulator. because I want to 
 port it to Nexus 7.
 then I get the error as below:
 Problem creating boot delegation class loader: 
 java.lang.reflect.InvocationTargetException
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.bundlerepository-1.6.6.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.command-0.12.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.runtime-0.10.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 Auto-deploy install: org.osgi.framework.BundleException: Unable to cache 
 bundle: file:/data/felix/bundle/org.apache.felix.gogo.shell-0.10.0.jar - 
 java.net.MalformedURLException: java.lang.IllegalStateException: Unknown 
 protocol: file
 It looks like all bundles can't be installed. Are there any suggestion about 
 this?
 update:
 When add property felix.service.urlhandlers=false, get another exception
 Problem creating boot delegation class loader: 
 java.lang.reflect.InvocationTargetException
 gogo: MalformedURLException: Unknown protocol: bundle
 java.net.MalformedURLException: Unknown protocol: bundle
   at java.net.URL.init(URL.java:184)
   at java.net.URL.init(URL.java:127)
   at java.net.URI.toURL(URI.java:1357)
   at org.apache.felix.gogo.shell.Shell.readScript(Shell.java:209)
   at org.apache.felix.gogo.shell.Shell.source(Shell.java:192)
   at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:109)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
   at 
 org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
   at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
   at 
 org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
   at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
   at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
   at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
   at 
 org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
   at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
   at java.lang.Thread.run(Thread.java:856)
 Detail step:
 1.download felix-framework-4.0.3 and osgi-android - felix 1.4, android SDK 
 1.0.zip and extract them.
 2.do dx and aapt for jar files in felix-framework-4.0.3.
 3.copy felix.sh from osgi-android - felix 1.4, android SDK 1.0 to 
 felix-framework-4.0.3
 4.start emulator of android 4.1
 5.push felix-framework-4.0.3 to android(/data/felix)
 6.adb shell and cd to /data/felix
 7.sh felix.sh
 More info:
 I have tried different versions of android and felix.
 1.osgi-android - felix 1.4, android SDK 1.0.zip  works normally on android 
 4.1 with it bundles.
 2. felix-framework-4.0.3 is work on android 4.03 and 2.3.3 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (FELIX-3627) Web Console Shell plugin is not released

2012-08-13 Thread Valentin Valchev (JIRA)
Valentin Valchev created FELIX-3627:
---

 Summary: Web Console Shell plugin is not released
 Key: FELIX-3627
 URL: https://issues.apache.org/jira/browse/FELIX-3627
 Project: Felix
  Issue Type: Bug
  Components: Web Console
Affects Versions: webconsole-shell-plugin-1.0.0
Reporter: Valentin Valchev
Priority: Minor


We've decided that we will separate web console and remove non-core osgi 
services in different plugins. It seems that the shell plugin is not released - 
there is no either download entry from Felix download page, nor artifact in 
maven repository.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Updating jquery in web console

2012-08-13 Thread Carsten Ziegeler
We're using a fairly old version of jquery in the web console.

Can we update this one to a newer version? What about the ui?

Regards
Carsten

-- 
Carsten Ziegeler
cziege...@apache.org


Re: Updating jquery in web console

2012-08-13 Thread Felix Meschberger
Hi,

An update has been on the plate since JQuery 1.4 came out (we didn't update 
back then due to incompatibilities with JQuery UI 1.7.2 and JQuery UI 1.8 has 
not been released yet). We lost track on that since then.

So, I am all for updating ...

BTW: We also might want to set a Provide-Capability header indicating the 
JQuery and JQuery UI versions the web console provides to its plugins.

Regards
Felix

Am 13.08.2012 um 17:35 schrieb Carsten Ziegeler:

 We're using a fairly old version of jquery in the web console.
 
 Can we update this one to a newer version? What about the ui?
 
 Regards
 Carsten
 
 -- 
 Carsten Ziegeler
 cziege...@apache.org



Re: Updating jquery in web console

2012-08-13 Thread Valentin Valchev
Well the latest jQuery UI is incompatible with the one we use. So this
means, that we need to change every plugin if we decide to move on with
the update.

Regards,
Valentin

On 13.8.2012 г. 18:35 ч., Carsten Ziegeler wrote:
 We're using a fairly old version of jquery in the web console.

 Can we update this one to a newer version? What about the ui?

 Regards
 Carsten



-- 

-
Valentin Valchev · Lead Software Engineer
ProSyst Labs EOOD
1606 Sofia, Bulgaria · 48 Vladajska Str.
Tel. +359 (0)2 952 35 81; Fax +359 (0)2 953 26 17
http://www.prosyst.com · v.valc...@prosyst.bg
-
stay in touch with your product.
-

attachment: v_valchev.vcf

signature.asc
Description: OpenPGP digital signature


Re: Updating jquery in web console

2012-08-13 Thread Carsten Ziegeler
2012/8/13 Valentin Valchev v.valc...@prosyst.bg:
 Well the latest jQuery UI is incompatible with the one we use. So this
 means, that we need to change every plugin if we decide to move on with
 the update.

That's bad, but I think updating makes sense and we should use
capabilities like Felix suggests.

Carsten


 Regards,
 Valentin

 On 13.8.2012 г. 18:35 ч., Carsten Ziegeler wrote:
 We're using a fairly old version of jquery in the web console.

 Can we update this one to a newer version? What about the ui?

 Regards
 Carsten



 --

 -
 Valentin Valchev · Lead Software Engineer
 ProSyst Labs EOOD
 1606 Sofia, Bulgaria · 48 Vladajska Str.
 Tel. +359 (0)2 952 35 81; Fax +359 (0)2 953 26 17
 http://www.prosyst.com · v.valc...@prosyst.bg
 -
 stay in touch with your product.
 -




-- 
Carsten Ziegeler
cziege...@apache.org